From 9062f566642f7b43b5db7125b506fbc57decff22 Mon Sep 17 00:00:00 2001 From: zhoulingpo Date: Tue, 16 May 2023 16:44:19 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E3=80=91=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/directives/modules/permission.js | 32 ++++++++++++++++++++++++++ src/store/index.js | 9 ++++++-- src/views/Layout.vue | 3 +++ src/views/Report/ReportManager.vue | 2 +- src/views/System/MenuManager.vue | 2 +- src/views/userCenter/processCenter.vue | 1 - 6 files changed, 44 insertions(+), 5 deletions(-) create mode 100644 src/directives/modules/permission.js diff --git a/src/directives/modules/permission.js b/src/directives/modules/permission.js new file mode 100644 index 0000000..414bbec --- /dev/null +++ b/src/directives/modules/permission.js @@ -0,0 +1,32 @@ +import Vue from 'vue' +import store from '@/store' +// 权限检查方法 +Vue.prototype.$_has = function (value) { + let has = false + let menuList = store.getters.btnPerssion + if (menuList === '') { + return false + } else { + menuList.map((menu) => { + if (menu.id === value || value === undefined || value === '') { + has = true + } + }) + } + return has +} +export const btnPermission = Vue.directive('btnPermission', { + bind (el, binding, vnode) { + // 获取按钮权限 + let btnPermission = binding.value + // 没有这个权限则移除 + if (!Vue.prototype.$_has(btnPermission)) { + Vue.nextTick(() => { + + el.parentNode.removeChild(el) + }) + } + } + }) + + diff --git a/src/store/index.js b/src/store/index.js index c57283a..6802598 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -15,7 +15,8 @@ export default new Vuex.Store({ activeTab: '', handleProcess: '', marketpre:'', - dicts:{} + dicts:{}, + btnPerssion:[] }, getters: { marketpre: (state) => state.marketpre, @@ -24,9 +25,13 @@ export default new Vuex.Store({ userInfo: (state) => state.userInfo, activeTab: (state) =>state.activeTab, handleProcess: (state) =>state.handleProcess, - dicts: (state) =>state.dicts + dicts: (state) =>state.dicts, + btnPerssion:(state) =>state.btnPerssion }, mutations: { + setBtnPerssion(state,obj){ + state.btnPerssion = obj + }, setDicts(state, obj) { state.dicts[obj.label] = obj.value; }, diff --git a/src/views/Layout.vue b/src/views/Layout.vue index dda33d7..c4b62e3 100644 --- a/src/views/Layout.vue +++ b/src/views/Layout.vue @@ -87,6 +87,9 @@ export default { } data = data.sort((a, b) => a.sort - b.sort) const menu = data.filter(item => item.belong && item.isButton=='0') + // 存储有权限的按钮 + const menuBtn = data.filter(item => item.belong && item.isButton=='1') + this.$store.commit('setBtnPerssion', menuBtn) let menuData = [] const menuFun = (menu) => { menuData = [...menuData, ...menu] diff --git a/src/views/Report/ReportManager.vue b/src/views/Report/ReportManager.vue index 6ad2587..566bdbd 100644 --- a/src/views/Report/ReportManager.vue +++ b/src/views/Report/ReportManager.vue @@ -36,7 +36,7 @@
操作日志 - 标签维护 + 标签维护 报告上传
diff --git a/src/views/System/MenuManager.vue b/src/views/System/MenuManager.vue index 70ff38d..bda77b8 100644 --- a/src/views/System/MenuManager.vue +++ b/src/views/System/MenuManager.vue @@ -119,7 +119,7 @@ export default { // 菜单 sysMenuFindAllMenus () { this.$api.menu.sysMenuFindAllMenus().then(({ data }) => { - this.tableData = data.filter(item => item.id !== '6f6fafb4a7').sort((a, b) => { + this.tableData = data.filter(item => item.id !== '6f6fafb4a7' && item.isButton=='0').sort((a, b) => { return a.sort - b.sort }) }) diff --git a/src/views/userCenter/processCenter.vue b/src/views/userCenter/processCenter.vue index 418cb35..8686988 100644 --- a/src/views/userCenter/processCenter.vue +++ b/src/views/userCenter/processCenter.vue @@ -113,7 +113,6 @@ import tabs from '../userCenter/processCenter/tabs.vue' }, methods: { cancel(){ - this.flag = '' this.dialogVisible=false }, submitForm(){