index.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. import { localST_UserInfo } from '../../base/storage';
  2. function hasPermissionDirective(el, binding) {
  3. try {
  4. // 确保 localST_UserInfo 和 getItem 方法存在
  5. if (typeof localST_UserInfo === 'undefined' || typeof localST_UserInfo.getItem !== 'function') {
  6. console.error('localST_UserInfo 或 getItem 方法未定义');
  7. return;
  8. }
  9. // 尝试解析用户权限
  10. const userPermissions = localST_UserInfo.getItem();
  11. if (typeof userPermissions !== 'string') {
  12. console.error('用户权限不是字符串格式');
  13. return;
  14. }
  15. const permissions = JSON.parse(userPermissions);
  16. // 确保 permissions 是数组类型
  17. if (!Array.isArray(permissions)) {
  18. console.error('权限不是数组格式');
  19. return;
  20. }
  21. // 获取按钮权限
  22. const btnPermission = binding.value;
  23. if (btnPermission === undefined) {
  24. console.error('按钮权限未定义');
  25. return;
  26. }
  27. // 检查权限
  28. if (!permissions.includes('*:*:*') && !permissions.includes(btnPermission)) {
  29. el.style.display = 'none';
  30. }
  31. } catch (error) {
  32. console.error('hasPermissionDirective 中发生错误:', error);
  33. }
  34. try {
  35. const user_info = JSON.parse(user_str);
  36. const { permissions } = user_info;
  37. // 获取按钮权限
  38. const btnPermission = binding.value;
  39. if (!permissions.includes('*:*:*') && !permissions.includes(btnPermission)) {
  40. el.style.display = 'none';
  41. }
  42. // if (permissions.includes('*:*:*')) {
  43. // return true;
  44. // }
  45. // return permissions.includes(str);
  46. } catch (err) {
  47. return false;
  48. }
  49. // // 获取用户权限
  50. // const { permissions } = JSON.parse(localST_UserInfo.getItem());
  51. // // 获取按钮权限
  52. // const btnPermission = binding.value;
  53. // if (!permissions.includes('*:*:*') && !permissions.includes(btnPermission)) {
  54. // el.style.display = 'none';
  55. // }
  56. }
  57. export default {
  58. mounted(el, binding) {
  59. hasPermissionDirective(el, binding);
  60. },
  61. updated(el, binding) {
  62. hasPermissionDirective(el, binding);
  63. }
  64. };