# 其他模块集成

  • 回顾(权限管理:RBAC)
    • 用户-角色-权限(目标:不同的用户拥有不同的权限)
      • 把角色分配给用户
      • 把权限分配给角色
      • 注意:引入角色的目的是简化授权的操作
    • 权限的验证
      • 登录成功后,需要通过接口获取当前用户所拥有的权限信息(menus一级权限/points二级权限)
      • 控制一级路由权限的验证
        • 控制左侧动态路由的条件过滤(所有的动态路由和menus提供权限标识)
        • router.addRoutes(动态路由)
        • 防止出现死循环(保证动态添加路由的操作仅仅执行一次)
      • 控制二级权限功能点的验证
        • 判断某个菜单是否拥有操作行为(基于points作为判断的条件;基于菜单的本身的标识)
        • 封装一个判断方法,检测当前按钮的标识是否在points里面

目标: 将其他业务模块代码集成到该项目中

到目前为止,我们已经完成了一个基本项目框架 + 组织架构 + 公司 + 员工 + 权限的 业务联调,

时间关系,我们不可能将所有的业务都去编写一遍,这里提供大家 其余模块的集成代码,

最终的目的是让大家得到一个完成的业务模块

要集成的模块业务,包括工资模块,社保模块,考勤模块,审批模块

在我们提供的资源集成模块中,我们提供了四个模块的**路由/页面/api*, 按照下面的路径拷贝即可

路由 => src/router/modules

页面 => src/views

api => src/api

filters => src/filters

除此之外,我们需要将 router/modules/user.js 导入到静态路由中,

因为这个模块是所有用户都可以访问的

import user from './modules/user'

export const constantRoutes = [
  ...,
  // 上传excel页
  {
    path: '/import',
    component: Layout,
    hidden: true,
    children: [
      {
        path: '',
        name: 'import',
        component: () => import('@/views/import/index')
      }
    ]
  },
  user
  // 如果前面的路由都没有匹配到, 那么就会被 * 匹配, 重定向到了 /404
  // { path: '*', redirect: '/404', hidden: true }
]

最终,我们将得到一个较为完整的系统业务。