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