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(){