index.js 1.1 KB

123456789101112131415161718192021222324252627282930313233343536
  1. /**
  2. * 自定义权限按钮指令
  3. * 使用方法 v-permission="'companyAdmin:add'"
  4. * @param {*} store 权限数组
  5. * @returns
  6. */
  7. import { lookPermissionUser } from '@/config'
  8. export default function createPermissionDirective(store) {
  9. function getPermissionCodes(store) {
  10. const userId = store.state.user.info?.userId || ''
  11. // 写死判断用户ID是 888 的用户隐藏掉所有操作
  12. if (lookPermissionUser.includes(userId)) {
  13. return []
  14. } else {
  15. return ['permission']
  16. }
  17. /* const all = store.state.user.info?.permissionList || []
  18. return all
  19. .filter(item => item?.type === 'permission' && item?.permissionCode)
  20. .map(item => item.permissionCode) */
  21. }
  22. return {
  23. mounted(el, binding) {
  24. const requiredCode = binding.value
  25. const permissionCodes = getPermissionCodes(store)
  26. if (!permissionCodes.includes(requiredCode)) {
  27. el.parentNode && el.parentNode.removeChild(el)
  28. }
  29. }
  30. }
  31. }