main.js 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import { createApp ,unref} from 'vue';
  2. import App from './App.vue'
  3. import router from './router'
  4. import ElementPlus from 'element-plus'
  5. import locale from 'element-ui/lib/locale/lang/zh-CN'
  6. import '@/request/setupAxios'
  7. import '@/assets/style/public.scss'
  8. import user from '@/state/user'
  9. const app = createApp(App);
  10. app.use(router)
  11. app.use(ElementPlus, { locale })
  12. app.mount('#app')
  13. // 挂在全局方法
  14. app.config.globalProperties.$power = (fun,val) =>{
  15. let replacelist = {
  16. 'organizationlist':'organization',
  17. }
  18. let routeName = router.currentRoute._value.name
  19. let roleKeyList = user._value.roleKeyList
  20. let rokeName = `${replacelist[routeName] || routeName}:${val}`
  21. if(roleKeyList.includes(rokeName)){
  22. fun()
  23. }else{
  24. console.warn('暂无权限',routeName)
  25. }
  26. }
  27. app.directive('power',{
  28. mounted(el,binding) {
  29. let replacelist = {
  30. 'organizationlist':'organization',
  31. }
  32. let routeName = router.currentRoute._value.name
  33. let {roleKeyList,roleData,info} = unref(user);
  34. let item = null,type,{value} = binding,qxdj=false,rokeName=''
  35. if(typeof(value)=='string'){
  36. rokeName = `${replacelist[routeName] || routeName}:${type}`
  37. type = value
  38. }else{
  39. rokeName = `${replacelist[routeName] || routeName}:${value.roleType}`
  40. type = value.roleType
  41. item = value
  42. switch(roleData[rokeName]){
  43. case 4://所属组织内部数据
  44. if(item.deptId != info.deptId){
  45. qxdj = true;
  46. }
  47. break;
  48. case 5:
  49. if(item.creatorId != info.id){
  50. qxdj = true;
  51. }
  52. break;
  53. }
  54. }
  55. console.log('power',roleKeyList.includes(rokeName),qxdj,rokeName)
  56. var klses = el.className;
  57. if((!roleKeyList.includes(rokeName))){//判断无权
  58. el.className = klses + ' disable'
  59. }else if(qxdj){//判断有权查询是否权限足够
  60. el.className = klses + ' disable'
  61. }
  62. }
  63. })