VUE前端按钮权限控制

来源:互联网 发布:同花顺炒股软件使用 编辑:程序博客网 时间:2024/05/11 15:05

在用户登陆后,根据用户id读取用户的所有权限数据,放入本地的storage进行存储,之后,定义指令,如果用户含有此按钮权限,则在页面显示出来:

/**权限指令**/    Vue.directive('has', {      bind: function(el, binding) {        if (!Vue.prototype.$_has(binding.value)) {          el.parentNode.removeChild(el);        }      }    });    //权限检查方法    Vue.prototype.$_has = function(value) {      debugger      let isExist=false;      let buttonpermsStr=sessionStorage.getItem("buttenpremissions");      if(buttonpermsStr==undefined || buttonpermsStr==null){        return false;      }      let buttonperms=JSON.parse(buttonpermsStr);      for(let i=0;i<buttonperms.length;i++){        if(buttonperms[i].perms.indexOf(value)>-1){          isExist=true;          break;        }      }      return isExist;    };

页面上使用方式:

<el-button type="primary" class="btns first" @click="querylist" v-has="'sys_user_list'">查询</el-button>          <el-button class="btns" @click="showAddView" v-has="'sys_user_save'">新增</el-button>          <el-button  class="btns" @click="modifyUserItem" v-has="'sys_user_update'">修改</el-button>          <el-button class="btns" @click="delItem" v-has="'sys_user_delete'">删除</el-button>