分布式医疗挂号系统之搭建后台管理系统页面

目录
  • 前言
  • 一、搭建前端环境
    • (1)引入项目到项目工作区
    • (2)根据package.json下载依赖
    • (3)启动创建好的前端项目
  • 二、前端环境目录结构
    • (1)总体目录概览
    • (2)关键文件
      • package.js
      • build/webpack.dev.conf.js
      • index.html
      • src/main.js
      • config/dev.env.js
      • src/utils/request.js
      • src/api/login.js
  • 三、登录改造
    • (1)登入方法改造
    • 获取用户信息方法改造
    • 登出方法改造
    • 前端登出方法改造
  • 四、测试

前言

项目已同步至gitHub:

https://github.com/Guoqianliang/yygh_admin

在《基于分布式的医疗挂号系统》中,后台管理的接口在之前的文章中已经写好,接下来开发后台管理的前端页面,前端页面这里选用github上开源的vue-element-admin进行搭建。

这套前端页面主要使用了Vue.jselement-ui技术。

一、搭建前端环境

(1)引入项目到项目工作区

使用vscode打开空文件夹yygh_admin,将文件夹另存为工作区yygh_admin。然后将下载好的前端模板放入工作区。完成后vscode中的目录结构如下:

(2)根据package.json下载依赖

将vue-element-admin项目使用终端打开后,使用npm install 命令,下载js依赖。

(3)启动创建好的前端项目

使用npm run dev 命令启动前端项目,

项目启动后,默认访问本地9528端口:

二、前端环境目录结构

前端项目启动时,使用npm run dev命令后,经过一系列的调用,最终会去调用main.js入口:

(1)总体目录概览

(2)关键文件

package.js

类似于后端Maven的pom.xml文件,包含项目信息,项目依赖,项目启动相关脚本。启动项目的命令:

npm run dev

dev脚本:

webpack-dev-server --inline --progress --config build/webpack.dev.conf.js

webpack-dev-server:一个小型的基于Node.js的http服务器,可以运行前端项目

--inline:一种启动模式

--progress:显示启动进度

--config build/webpack.dev.conf.js:指定webpack配置文件所在位置

build/webpack.dev.conf.js

webpack的配置文件,包含项目在开发环境打包和运行的相关配置。

引用了 webpack.base.conf.js

定义了项目打包的入口文件main.js,和打包后的文件,默认是app.js。

HtmlWebpackPlugin配置html模板,生成的js就会自动插入到模板中。如下面的配置,
生成的js文件会被自动插入到名为index.html的页面中。

index.html

此文件为项目默认的html页面。

src/main.js

项目js入口文件,项目的所有前端功能都在这个文件中引入和定义,并初始化全局的Vue对象。

config/dev.env.js

定义全局常量值。

因此,在项目中的任意位置可以直接使用 process.env.BASE_API 常量表示后端接口的主机地址。

src/utils/request.js

引入axios模块,定义全局的axios实例,并导出模块。

src/api/login.js

引用request模块,调用远程api。

三、登录改造

下面将登陆相关请求接口改为静态数据,不请求接口。修改文件\src\store\modules\user.js 修改Login、GetInfo、LogOut、FedLogOut四个方法,具体修改如下。

(1)登入方法改造

    // 登入
    Login({ commit }, userInfo) {
      // 硬编码
      const data = { 'token': 'admin' }
      // 将token存储在cookie中
      setToken(data.token)
      commit('SET_TOKEN', data.token)
      // const username = userInfo.username.trim()
      // return new Promise((resolve, reject) => {
      //   login(username, userInfo.password).then(response => {
      //     const data = response.data
      //     setToken(data.token)
      //     commit('SET_TOKEN', data.token)
      //     resolve()
      //   }).catch(error => {
      //     reject(error)
      //   })
      // })
    }

获取用户信息方法改造

// 获取用户信息
    GetInfo({ commit, state }) {
      // 硬编码
      const data = { 'roles': 'admin', 'name': 'admin', 'avatar': 'https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif' }
      if (data.roles && data.roles.length > 0) { // 验证返回的roles是否是一个非空数组
        commit('SET_ROLES', data.roles)
      } else {
        reject('getInfo: roles must be a non-null array !')
      }
      commit('SET_NAME', data.name)
      commit('SET_AVATAR', data.avatar)
      // return new Promise((resolve, reject) => {
      //   getInfo(state.token).then(response => {
      //     const data = response.data
      //     if (data.roles && data.roles.length > 0) { // 验证返回的roles是否是一个非空数组
      //       commit('SET_ROLES', data.roles)
      //     } else {
      //       reject('getInfo: roles must be a non-null array !')
      //     }
      //     commit('SET_NAME', data.name)
      //     commit('SET_AVATAR', data.avatar)
      //     resolve(response)
      //   }).catch(error => {
      //     reject(error)
      //   })
      // })
    }

登出方法改造

// 登出
    LogOut({ commit, state }) {
      // 硬编码
      commit('SET_TOKEN', '')
      commit('SET_ROLES', [])
      removeToken()
      // return new Promise((resolve, reject) => {
      //   logout(state.token).then(() => {
      //     commit('SET_TOKEN', '')
      //     commit('SET_ROLES', [])
      //     removeToken()
      //     resolve()
      //   }).catch(error => {
      //     reject(error)
      //   })
      // })
    }

前端登出方法改造

// 前端 登出
    FedLogOut({ commit }) {
      // 硬编码
      commit('SET_TOKEN', '')
      removeToken()
      resolve()
      // return new Promise(resolve => {
      //   commit('SET_TOKEN', '')
      //   removeToken()
      //   resolve()
      // })
    }

最后修改\src\util\request.js文件:

四、测试

可以将index.js文件中的useEslint属性改为false,关闭检测机制,然后重启前端项目,

以上就是分布式医疗挂号系统之搭建后台管理系统页面的详细内容,更多关于分布式医疗挂号系统后台管理页面搭建的资料请关注我们其它相关文章!

(0)

相关推荐

  • vue跳转页面打开新窗口,并携带与接收参数方式

    目录 1.携带普通类型参数 2.携带复杂类型参数 vue页面跳转并传参的八种方式 方法一 方法二 方法三 方法四 方法五 方法六 方法七 方法八 1.携带普通类型参数 字符串.数字等. path:要跳转新页面的路由链接 query:要携带的参数 let pathInfo = this.$router.resolve({   path:'/product_detail',      query:{          productId:'11'      }  })  window.open(pa

  • vue实现弹窗引用另一个页面窗口

    目录 弹窗引用另一个页面窗口 弹窗如何嵌入其它页面 A页面(父页面) B页面(子页面) 弹窗引用另一个页面窗口 需求:在一个主页面A.vue上点击按钮时弹出一个窗口,该窗口的定义在B.vue,比如修改,需要从A.vue传参到B.vue,修改完成后,刷新A.vue. 实现 页面定义,有2个文件,在index.vue上有个[修改]按钮,点击弹出testDialog.vue定义的窗口,如下 testDialog.vue <template>   <!-- 添加或修改业务对话框 -->  

  • vue多页面项目开发实战指南

    目录 单页应用和多页应用 单页应用 多页应用 优缺点 配置多页应用 1. 修改vue.config.js 2. 修改title 3. 合并第三方库 4. 打包第三方scss 5. 其它常见设置 总结 单页应用和多页应用 单页应用 SPA(single page application): 单页面应用,即一个web项目就只有一个页面(即一个HTML文件). 就是把整个项目的所有页面的所有内容分成了很多的小块(就是组件),可以重复利用的,可以任意调整的组件,每个组件就是一个独立的部分(包括html,

  • vuex页面刷新数据丢失问题的四种解决方式

    目录 为什么说刷新页面vuex的数据会丢失 第一种方法用sessionStorage 第二种方法是 vuex-along 示例如下 第三种方法是 vuex-persistedstate 示例如下 第四种方法是 vuex-persist 示例如下 结语: 为什么说刷新页面vuex的数据会丢失 刷新页面vuex的数据会丢失属于正常现象,因为JS的数据都是保存在浏览器的堆栈内存里面的,刷新浏览器页面,以前堆栈申请的内存被释放,这就是浏览器的运行机制,那么堆栈里的数据自然就清空了. 第一种方法用sess

  • Vue页面内公共的多类型附件图片上传区域并适用折叠面板(示例代码)

    在前端项目中,附件上传是很常用的功能,几乎所有的app相关项目中都会使用到,一般在选择使用某个前端UI框架时,可以查找其内封装好的图片上传组件,但某些情况下可能并不适用于自身的项目需求,本文中实现的附件上传区域支持超多类型附件分类型上传,并且可根据特定条件具体展示某些类型的附件上传,本文中是直接摘自具体的页面,后面会抽时间单独封装出来一个附件上传的组件. 一.Vue页面内附件展示区域代码 <div class="retuinfo"> <div class="

  • vue如何实现跨页面传递与接收数组并赋值

    目录 跨页面传递与接收数组并赋值 1.界面A:question-edit 2.界面B:add-question 数组赋值踩过的坑 跨页面传递与接收数组并赋值 为更好让大家理解拿自己的项目做例子并附上动图效果,可以看到将第一行数据选中的一行赋值到了另一个界面:为了更好让大家理解拿去附用将我每个界面和方法属性的命名都介绍给大家: 兄弟界面跳转:question-edit——>add-question 1.界面A:question-edit 想要将本行的数据赋值过去,因为不是一个所以要用到数组,将它们

  • 分布式医疗挂号系统之搭建后台管理系统页面

    目录 前言 一.搭建前端环境 (1)引入项目到项目工作区 (2)根据package.json下载依赖 (3)启动创建好的前端项目 二.前端环境目录结构 (1)总体目录概览 (2)关键文件 package.js build/webpack.dev.conf.js index.html src/main.js config/dev.env.js src/utils/request.js src/api/login.js 三.登录改造 (1)登入方法改造 获取用户信息方法改造 登出方法改造 前端登出方

  • VUE搭建分布式医疗挂号系统后台管理页面示例步骤

    目录 前言 一.搭建前端环境 (1)引入项目到项目工作区 (2)根据package.json下载依赖 (3)启动创建好的前端项目 二.前端环境目录结构 (1)总体目录概览 (2)关键文件 package.js build/webpack.dev.conf.js index.html src/main.js config/dev.env.js src/utils/request.js src/api/login.js 三.登录改造 登入方法改造 获取用户信息方法改造 登出方法改造 前端登出方法改造

  • 实战分布式医疗挂号系统之设置微服务搭建医院模块

    目录 文章导读 一.项目模块划分图 二.开发前的准备工作 1.医院设置数据库表设计 2.搭建医院设置微服务模块 三.医院设置微服务模块开发 步骤1:生成表对应的实体类 步骤2:创建Mapper 步骤3:创建Service 步骤4:创建Controller 四.测试开发环境 文章导读 本系列文章介绍从0开始搭建一个基于分布式的医疗挂号系统.本次四篇文章完成了医院设置微服务模块的后端接口,为了方便开发,对接口的返回结果.全局异常.全局日志进行了统一处理. 同时,为了方便进行访问测试,还整合了Swag

  • VUE搭建分布式医疗挂号系统的前台预约挂号步骤详情

    目录 一.预约挂号系统前台搭建 (1)服务端渲染技术SSR 服务器端渲染SSR的优点: (2)使用Nuxt.js搭建前端环境 1.下载并解压Nuxt 2.修改package.json 3.修改nuxt.config.js 4.终端中进入项目目录安装依赖 5.引入element-ui 6.启动测试 (3)NUXT目录结构 (4)封装axios 一.预约挂号系统前台搭建 (1)服务端渲染技术SSR SSR (服务端渲染)是一种在关注何处渲染 HTML 页面的模式,代表在服务器端完成把数据和模板转换成

  • 实战分布式医疗挂号系统之整合Swagger2到通用模块

    目录 通用模块整合swagger2步骤 2.配置Swagger2 3.启动类添加包扫描 测试 swagger常用注解 本系列文章介绍从0开始搭建一个基于分布式的医疗挂号系统.本次四篇文章完成了医院设置微服务模块的后端接口,为了方便开发,对接口的返回结果.全局异常.全局日志进行了统一处理. 同时,为了方便进行访问测试,还整合了Swagger2工具,这些通用的模块中,除了全局日志被放在医院设置微服务模块的配置资源中,其余都统一被抽取在common模块中.具体实现可参考下面文章: 医院设置微服务 |

  • VUE开发分布式医疗挂号系统的医院设置页面步骤

    目录 一.显示记录列表功能 1.显示列表组件 2.分页组件 3.条件查询组件 二.删除记录功能 1.删除单条记录 2.批量删除记录 三.锁定和解锁功能 四.添加记录功能 五.修改功能 六.解决组件重用问题 分布式医疗挂号系统 | 开发医院设置页面 在分布式医疗挂号系统中,前端主要使用的两个技术是Vue和ElementUI.医院设置微服务模块的后端之前已经完成,现在需要借助Vue+ElementUI完成医院设置微服务模块的前端页面: 一.显示记录列表功能 1.显示列表组件 带斑马纹表格开发文档:

  • 实战分布式医疗挂号系统之设置微服务接口开发模块

    目录 文章导读 一.框架调用流程 二.医院设置表接口开发 1.增 2.删 (1)逻辑删除记录 (2)批量删除记录 3.改 (1)修改记录 4.查 (1)查询所有记录 (2)条件查询带分页 (3)根据id获取记录 5.锁定和解锁表 6.发送签名密钥 文章导读 本系列文章介绍从0开始搭建一个基于分布式的医疗挂号系统.本次四篇文章完成了医院设置微服务模块的后端接口,为了方便开发,对接口的返回结果.全局异常.全局日志进行了统一处理. 同时,为了方便进行访问测试,还整合了Swagger2工具,这些通用的模

  • 分布式医疗挂号系统整合Gateway网关解决跨域问题

    目录 一.Gateway网关简介 二.Gateway使用步骤 步骤1:搭建模块并引入依赖 步骤2:添加配置文件 步骤3:创建启动类 网关初步测试 三.Gateway解决跨域问题 一.Gateway网关简介 API 网关是介于客户端和服务器端之间的中间层,所有的外部请求都会先经过API 网关这一层.也就是说,API 的实现方面更多的考虑业务逻辑,而安全.性能.监控可以交由 API 网关来做,这样既提高业务灵活性又不缺安全性. Spring cloud gateway是spring官方基于Sprin

  • 分布式医疗挂号系统EasyExcel导入导出数据字典的使用

    目录 一.导出数据字典到Excel 1.创建导出实体类 2.后台接口代码 Controller层 Service层 3.页面导出按钮 4.测试数据导出到Excel 二.导入数据字典到网页 1.后台接口代码 Controller层 Service层 配置监听器 2.页面导入按钮 3.测试数据导入到网页 一.导出数据字典到Excel 1.创建导出实体类 这里导出数据时,只导出网页上每条记录的id.父id.名称.编码.值. @Data public class DictEeVo { @ExcelPro

  • 实战分布式医疗挂号系统登录接口整合阿里云短信详情

    目录 步骤1:搭建service-user用户模块 1.启动类&配置网关 步骤2:整合JWT 步骤3: 搭建service-msm短信模块(整合阿里云短信) 1.启动类&配置网关 4.三层调用 步骤4:登录页面前端 1.封装api请求 2.添加登录组件 3.登录全局事件 附加:用户认证与网关整合 1.在服务网关添加fillter 2.调整前端代码 本篇文章完成的需求: 1,登录采取弹出层的形式. 2,登录方式: (1)手机号码+手机验证码 (2)微信扫描(后文完成) 3,无注册界面,第一次

随机推荐