auth.js 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. // 权限按钮展示指令
  2. import { useUserStore } from '@/pinia/modules/user'
  3. export default {
  4. install: (app) => {
  5. const userStore = useUserStore()
  6. app.directive('auth', {
  7. // 当被绑定的元素插入到 DOM 中时……
  8. mounted: function(el, binding) {
  9. const userInfo = userStore.userInfo
  10. let type = ''
  11. switch (Object.prototype.toString.call(binding.value)) {
  12. case '[object Array]':
  13. type = 'Array'
  14. break
  15. case '[object String]':
  16. type = 'String'
  17. break
  18. case '[object Number]':
  19. type = 'Number'
  20. break
  21. default:
  22. type = ''
  23. break
  24. }
  25. if (type === '') {
  26. el.parentNode.removeChild(el)
  27. return
  28. }
  29. const waitUse = binding.value.toString().split(',')
  30. let flag = waitUse.some(item => Number(item) === userInfo.authorityId)
  31. if (binding.modifiers.not) {
  32. flag = !flag
  33. }
  34. if (!flag) {
  35. el.parentNode.removeChild(el)
  36. }
  37. }
  38. })
  39. }
  40. }