面试题:vuejs项目中按钮级别权限怎么控制

2024年05月16日 建站教程

利用hasPermission统一的权限判断方法进行按钮判断是否显示!

VUE组件代码:

<template>
  <a-button v-if="hasPermission(['20000', '20001', '20003'])">
    code拥有[20000,20001,20003]可见
  </a-button>
</template>

<script lang="ts">
  import { usePermission } from '/@/hooks/usePermission';

  export default defineComponent({
    setup() {
      const { hasPermission } = usePermission();
      return { hasPermission };
    },
  });
</script>

JS代码:

export function usePermission() {
  function hasPermission(value, def = true) {
    // 默认视为有权限
    if (!value) {
      return def;
    }

    const allCodeList = permissionStore.getPermCodeList;
    if (!isArray(value)) {
      return allCodeList.includes(value);
    }
    // intersection是lodash提供的一个方法,用于返回一个所有给定数组都存在的元素组成的数组
    return (intersection(value, allCodeList)).length > 0;

    return true;
  }
}

本文链接:http://so.lmcjl.com/news/4642/

展开阅读全文
相关内容