美文网首页vue3
vue3 自定义指令权限控制

vue3 自定义指令权限控制

作者: 成神之路_be73 | 来源:发表于2021-08-19 18:29 被阅读0次

    日常开发中权限控制有两种情况,
    第一种情况是在路由拦截那里控制菜单栏的显示隐藏及跳转操作,
    第二种情况是页面上某一个按钮控制是否隐藏

    第一种情况

    这种一般是在js中或者el-menu中处理,所以就不简述了

    第二种情况

    index.vue

    <el-button
          class="el-button-delete"
          @click="handleDelete"
          v-permission="'delete'"
    ><i class="el-icon-delete"></i>删除</el-button>
    

    config/index.js

    const permissionFn = function (code) {
      let arr = ['edit','add']; // 没有删除权限
      // let arr = ['edit','delete','add']; // 有删除权限
      sessionStorage.setItem('authCode',arr);  // 这里使用vuex更好,本次只是模拟
      let authCodes = sessionStorage.getItem('authCode'); // 这里使用vuex更好,本次只是模拟
      return authCodes.includes(code);
    };
    

    directive/permission.js

    import { permissionInit } from '@/config/index';
    export default {
      mounted (el, binding) {
        let permission = binding.value;
        if (permission) {
          let hasPermission = permissionInit(permission);
          if (!hasPermission) {
            el.parentNode && el.parentNode.removeChild(el);
          }
        }
      }
    }
    

    main.js

    import { createApp } from 'vue'
    import App from './App.vue'
    import permission from '@/directives/permission';
    createApp(App)
      .directive('permission', permission)
      .mount('#app')
    

    相关文章

      网友评论

        本文标题:vue3 自定义指令权限控制

        本文链接:https://www.haomeiwen.com/subject/rlvzvltx.html