permission.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { Local } from '@/utils/storage.js';
  2. /**
  3. * 判断传入的 key 是否在数组 arr 中存在
  4. * @param {string} key - 待判断的字符串
  5. * @returns {boolean} - 返回布尔值,表示是否有权限
  6. */
  7. function checkArray(key) {
  8. // seckill 秒杀 bargain 砍价 combination 拼团
  9. let arr = Local.get('PERMISSIONS') || ['seckill', 'bargain', 'combination']; // 定义一个数组,包含三种类型
  10. let index = arr.indexOf(key); // 获取 key 在数组中的索引
  11. if (index > -1) {
  12. // 如果索引大于 -1,说明 key 存在于数组中
  13. return true; // 有权限
  14. } else {
  15. return false; // 无权限
  16. }
  17. }
  18. /**
  19. * @description 一个Vue指令,用于控制组件的显示和隐藏
  20. * @param {Object} el - 指令绑定的DOM元素
  21. * @param {Object} binding - 指令绑定的对象
  22. */
  23. const permission = {
  24. inserted: function (el, binding) {
  25. let permission = binding.value; // 获取到 v-permission的值
  26. if (permission) {
  27. let hasPermission = checkArray(permission); // 调用checkArray函数判断是否有权限
  28. if (!hasPermission) {
  29. // 没有权限 移除Dom元素
  30. el.parentNode && el.parentNode.removeChild(el);
  31. }
  32. }
  33. },
  34. };
  35. export default permission;