按钮权限设置

1、auth.js文件

// 权限校验
export function checkAuth(perms) {
  let flag = false
  let list = JSON.parse(localStorage.authList) // 登录后,后台返的菜单栏数据

  // 树形扁平化方法
  const flatten = function (arr) {
    const res = []; // 用于存储递归结果(扁平数据)
    // 递归函数
    const fn = (source) => {
      source.forEach((el) => {
        res.push(el);
        // 执行递归
        if (Array.isArray(el.children) && el.children.length > 0) {
          fn(el.children);
        } // 子级递归
      });
    };
    fn(arr);
    return res;
  };
  // 扁平化后
  const flattened = flatten(list);
  // console.log("扁平化后", flattened);

  const rules = function (perms) {
    return flattened.some((item) => {
      const isRules = item.perms === perms && item.status === 1;
      if (isRules) {
        flag = true
      }
      return isRules;
    });
    // 简化写法
    /* return item.perms === perms && item.status === 1 */
  };
  rules(perms)
  return flag
}

2、main.js文件

import { checkAuth } from '@/utils/auth'
3、判断
<el-button v-if="$checkAuth('后台返的权限')"@click="handleExport">导出</el-button>

 

 

posted @ 2022-05-19 11:51  挽你手  阅读(147)  评论(0编辑  收藏  举报