项目中权限精确到按钮级别,后台返回用户拥有的按钮
// 新建 buttonPermission.js 文件 import Vue from "vue"; const HAS_PER = Vue.directive("has",{ inserted:function (el,binding,vnode) { if (!Vue.prototype.$HAS(binding.value)) { el.remove(); } } }) Vue.prototype.$HAS = function (value) { let isHas = false; let buttonPermission = JSON.parse(localStorage.getItem("buttonPermission")); if (buttonPermission === undefined || buttonPermission === null) { return false; } try { let targetArr = value.split(","); for (let i = 0;i < targetArr.length;i++) { if (buttonPermission.includes(targetArr[i])) { isHas = true; break; } } return isHas; } catch { console.log('权限按钮出错了'); isHas = false; return isHas; } } export { HAS_PER, }
在main.js文件中
import HAS_PER from "@/utils/buttonPermission";
使用 v-has即可
<el-button type="text" v-has="'library:symbolManage:symbol: recovery'">恢复</el-button> 也可以是多权限控制,取决于指令的逻辑 <el-button type="text" v-has="'library:symbolManage:symbol: recovery,library:symbolManage:symbol: recovery'">恢复</el-button>
分类:
Vue 杂记
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了