diff --git a/web/src/directive/auth.js b/web/src/directive/auth.js new file mode 100644 index 0000000000000000000000000000000000000000..bf6fc8297c9a7f6e067ed5238786d6ea5c297195 --- /dev/null +++ b/web/src/directive/auth.js @@ -0,0 +1,40 @@ +// 权限按钮展示指令 +import { store } from '@/store/index' +const userInfo = store.getters['user/userInfo'] +export const auth = (Vue) => { + Vue.directive('auth', { + // 当被绑定的元素插入到 DOM 中时…… + bind: function (el, binding) { + let type = "" + switch (Object.prototype.toString.call(binding.value)) { + case "[object Array]": + type = "Array" + break; + case "[object String]": + type = "String" + break; + case "[object Number]": + type = "Number" + break; + default: + type = "" + break; + } + if (type === "") { + /* eslint-disable */ + console.error("v-auth必须是Array,Number,String属性,暂不支持其他属性") + /* eslint-enable */ + return + } + const waitUse = binding.value.toString().split(",") + + let flag = waitUse.some(item=>item==userInfo.authorityId) + if (binding.modifiers.not) { + flag = !flag + } + if(!flag){ + el.style.display = 'none' + } + } + }) +} diff --git a/web/src/main.js b/web/src/main.js index acd1c0f317258ff2dfde144b76d69ce6614acb0c..4f1dea424bf6fa3e5d8a0ee67cae7113f2b57d8a 100644 --- a/web/src/main.js +++ b/web/src/main.js @@ -47,6 +47,11 @@ Vue.use(APlayer, { }); +import {auth} from '@/directive/auth' +// 按钮权限指令 +auth(Vue) + + new Vue({ render: h => h(App), router, @@ -56,6 +61,3 @@ new Vue({ //引入echarts import echarts from 'echarts' Vue.prototype.$echarts = echarts; - - -