# 其他模块集成
- 回顾(权限管理: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 }
]
最终,我们将得到一个较为完整的系统业务。