• Day105.尚医通: 后台前端搭建、Elementui、增删改查、分页条件查询、批量删除


    目录

    一、后台前端搭建

    前台开发步骤:

    二、登录改造

    1、后端添加方法

    2、修改前端

    三、医院设置列表基本实现

    实现分页 

    分页条件查询实现

    四、删除医院设置

    五、新增医院设置

    六、医院设置修改实现

    七、医院设置批量删除


    一、后台前端搭建

    1、确认前端所在位置

    2、前端工程选型:Elementui

    而 vue-element-admin 是基于element-ui 的一套后台管理系统集成方案。

    饿了么UI:Elementui

    官网:Element - The world's most popular Vue UI framework

    功能:https://panjiachen.github.io/vue-element-admin-site/zh/guide/#功能

    GitHub地址:GitHub - PanJiaChen/vue-element-admin: A magical vue admin https://panjiachen.github.io/vue-element-admin

    项目在线预览:https://panjiachen.gitee.io/vue-element-admin

    3、工程搭建

    标准方式

    (1)工程包解压后复制到工程目录,重命名为 yygh-admin

    (2)进入工程目录,根据配置文件下载依赖:npm install

    (3)运行命令启动:npm run dev

    已经下好依赖方式

    (1)工程包解压后复制到工程目录,重命名为 yygh-admin

    (2)运行命令启动:npm run dev

    修改总配置文件中30行,语法检查

    4、项目目录介绍

    ├── build // 构建脚本
    ├── mock // 所有模拟数据
    ├── node_modules // 项目依赖模块

    ├── public // 通用页面元素
    ├── src //项目源代码
    └── tests  //测试目录

    env.development:开发环境配置

    env.production:运行时配置文件(生产环境)

    vue.config.js:总配置文件

    src 
    ├── api // 前后端对接接口方法目录
    ├── assets // 静态资源目录(图片等)
    ├── components // 各种公共组件,非公共组件在各自view下维护 
    ├── icons // 小图标

    ├── layout // 页面布局
    ├── router // 路由表,路由配置目录
    ├── store // 存储
    ├── styles // 各种样式 
    ├── utils // 公共工具,非公共工具,在各自view下维护 
    ├── views // 前端所有页面组件,视图目录
    ├── App.vue //***项目顶层组件*** 
    ├── main.js //***项目入口文件***
    └── permission.js //认证入口

    前台开发步骤:

    二、登录改造


    1、后端添加方法

    根据请求信息,添加方法

    1. //实现模拟登录
    2. @ApiOperation(value = "模拟登录")
    3. @PostMapping("login")//注意请求方式
    4. // {"code":20000,"data":{"token":"admin-token"}}
    5. public R login(){
    6. return R.ok().data("token","admin-token");
    7. }
    8. @ApiOperation(value = "模拟获取用户信息")
    9. @GetMapping("info")
    10. //{"code":20000,"data":{"roles":["admin"],
    11. //"introduction":"I am a super administrator",
    12. //"avatar":"https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif",
    13. //"name":"Super Admin"}}
    14. public R info(){
    15. Map map = new HashMap<>();
    16. map.put("roles","admin");
    17. map.put("introduction","I am a super administrator");
    18. map.put("avatar","https://wpimg.wallstcn.com/f778738c-e4f8-4870-b634-56703b4acafe.gif");//头像
    19. map.put("name","Super Admin");
    20. return R.ok().data(map);
    21. }

    2、修改前端

    1. 修改env.development 请求路径

    VUE_APP_BASE_API = 'http://localhost:8201/'

    2. 修改api接口方法 请求路径

    原因:工具类中进行了封装,根据启动指令读取配置文件 

    3、测试

    分析:跨域问题
    1. 请求路径拼错了(排除) 

    2. 跨域问题:在访问中、协议、ip地址、端口号中有一个发生变化,就会发生跨域问题

    出于浏览器的同源策略限制:同源策略是一种约定,它是浏览器最核心也是最基本的安全功能

    同源策略会阻止一个域的JavaScript脚本和另一个域的内容进行交互

    跨域请求出现错误的条件: 浏览器同源策略 && 请求是ajax类型

    解决:controller 类上添加 @CrossOrigin 注解

    成功

    三、医院设置列表基本实现

    1. 添加路由设置菜单 router

    1. {
    2. path: '/yygh/hospset',
    3. component: Layout,
    4. redirect: '/yygh/hospset/list',
    5. name: 'hosp',
    6. meta: { title: '医院管理', icon: 'el-icon-s-help' },
    7. children: [
    8. {
    9. path: 'list',
    10. name: '医院设置列表',
    11. component: () => import('@/views/yygh/hospset/list'),
    12. meta: { title: '医院设置列表', icon: 'table' }
    13. },
    14. {
    15. path: 'add',
    16. name: '医院设置表单',
    17. component: () => import('@/views/yygh/hospset/add'),
    18. meta: { title: '添加医院设置', icon: 'tree' }
    19. }
    20. ]
    21. },

    2. 创建页面,修改路由 

    3. api 方法搭建

    1. import request from '@/utils/request'
    2. //提取请求路径
    3. const api_name = '/admin/hosp/hospitalSet'
    4. export default{
    5. //分页条件查询医院设置
    6. pageQuery(page,limit,searchObj){
    7. return request({
    8. url: `${api_name}/pageQuery/${page}/${limit}`,//插值表达式
    9. method: 'post',
    10. data:searchObj //使用json方式传递数据
    11. })
    12. }
    13. }

    4. 实现页面

    (1) 添加页面元素