1234567891011121314151617181920212223242526272829 |
- import { UserStore } from '@/store/user'
- import { get, isArray } from 'lodash-es'
- import router from '@/router'
- const InitDirective = (app) => {
- app.directive('method', {
- mounted(el, binding) {
- const { user } = UserStore()
- const { value: code } = binding
- const rUser = toRaw(user)
- // 超级管理员不进行检查
- if (get(rUser, 'role') === 'Admin' && get(rUser, 'is_super') === '0') return
- const roleCode = get(rUser, 'role_code')
- // 需要判断roleCode中是否有这个权限.但是权限又需要路由拼接起来,最少也得有上层级组合
- const cr = router.currentRoute.value
- // 拼接当前路由和层级的name
- const rArr = cr.matched.filter((f) => f.name !== 'Layout').map((i) => i.name)
- rArr.push(code)
- const thisMethodCode = `${rArr.join('.')}`
- if (!isArray(roleCode)) {
- el.parentNode.removeChild(el)
- }
- if (!roleCode.includes(thisMethodCode)) {
- el.parentNode.removeChild(el)
- }
- }
- })
- }
- export { InitDirective }
|