diff --git a/src/lycomponents/iHeader/index.vue b/src/lycomponents/iHeader/index.vue index 1bd3b93..cd5e0fc 100644 --- a/src/lycomponents/iHeader/index.vue +++ b/src/lycomponents/iHeader/index.vue @@ -8,16 +8,16 @@ 行业洞察 - + 品牌洞察 - + 车型洞察 - + 事件洞察 - + 营销分析 diff --git a/src/lycomponents/iHeaderBrand/index.vue b/src/lycomponents/iHeaderBrand/index.vue index d3ea422..9947e95 100644 --- a/src/lycomponents/iHeaderBrand/index.vue +++ b/src/lycomponents/iHeaderBrand/index.vue @@ -8,16 +8,16 @@ 行业洞察 - + 品牌洞察 - + 车型洞察 - + 事件洞察 - + 营销分析 diff --git a/src/lycomponents/iHeaderMa/index.vue b/src/lycomponents/iHeaderMa/index.vue index f2e42d8..ba3ccda 100644 --- a/src/lycomponents/iHeaderMa/index.vue +++ b/src/lycomponents/iHeaderMa/index.vue @@ -8,16 +8,16 @@ 行业洞察 - + 品牌洞察 - + 车型洞察 - + 事件洞察 - + 营销分析 diff --git a/src/mixins/index.js b/src/mixins/index.js index df4da04..ca18645 100644 --- a/src/mixins/index.js +++ b/src/mixins/index.js @@ -1,12 +1,13 @@ /* * @Author: your name * @Date: 2021-10-12 13:56:13 - * @LastEditTime: 2021-11-15 15:51:22 + * @LastEditTime: 2021-11-16 10:26:56 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: /data-show/src/mixins/index.js */ import { mapGetters, mapActions } from "vuex"; +import store from '@/store' import Loading from './loading' function detectZoom (){ let ratio = 0, @@ -36,7 +37,46 @@ export default { install(Vue) { Vue.mixin({ directives: { + // 按钮权限 + has: { + inserted(el, binding) { + let val = binding.value; + let show = false; + if(!val) { + show = false; + } else { + let buttonpermsStr = store.getters.getLevelBtn || []; + let n = buttonpermsStr.findIndex(ele => ele.btn === val); + if(n === -1) show = false; + else show = true; + } + if(!show) { + el.parentNode.removeChild(el); + } + + } + }, + // 菜单权限 + menu: { + inserted(el, binding) { + let val = binding.value; + let show = false; + if(!val) { + show = false; + } else { + let menuStr = store.getters.getMenu || []; + let n = menuStr.findIndex(ele => ele.link === val); + if(n === -1) show = false; + else show = true; + } + if(!show) { + el.parentNode.removeChild(el); + } + } + }, + // 等待 'loading': Loading, + // 监听元素大小 resize: { // 指令的名称 bind(el, binding) { // el为绑定的元素,binding为绑定给指令的对象 let width = '', height = ''; @@ -54,6 +94,7 @@ export default { clearInterval(el.__vueSetInterval__); } }, + // 调整元素高度 highly: { bind(el, binding) { // el为绑定的元素,binding为绑定给指令的对象 let height = ''; @@ -86,10 +127,10 @@ export default { } }, computed: { - ...mapGetters(['getZoom', 'getLoading','getToken', 'getUser', 'getAccount', 'getCommTime', 'getCtime', 'getCtime2', 'getHeaderType', 'getBrand', 'getModel','getSComparison','getBComparison', 'getMComparison', 'getEComparison']) + ...mapGetters(['getZoom', 'getLoading','getToken', 'getUser', 'getAccount', 'getCommTime', 'getCtime', 'getCtime2', 'getHeaderType', 'getBrand', 'getModel','getSComparison','getBComparison', 'getMComparison', 'getEComparison','getLevelBtn','getMenu']) }, methods: { - ...mapActions(["setZoom", 'setLoading', 'setToken', 'setUser', 'setAccount', 'setCommTime', 'setCtime', 'setCtime2', 'setHeaderType', 'setBrand', 'setModel', 'setSComparison','setBComparison', 'setMComparison', 'setEComparison']), + ...mapActions(["setZoom", 'setLoading', 'setToken', 'setUser', 'setAccount', 'setCommTime', 'setCtime', 'setCtime2', 'setHeaderType', 'setBrand', 'setModel', 'setSComparison','setBComparison', 'setMComparison', 'setEComparison','setLevelBtn','setMenu']), // 获取当前日期时间 getDatetime() { let now = new Date(); diff --git a/src/permission.js b/src/permission.js index 03f73e2..752e800 100644 --- a/src/permission.js +++ b/src/permission.js @@ -1,11 +1,12 @@ /* * @Author: your name * @Date: 2021-10-08 09:26:42 - * @LastEditTime: 2021-11-11 10:44:05 + * @LastEditTime: 2021-11-16 10:47:13 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: /data-show/src/permission.js */ +import store from '@/store' import router from "@/router" import NProgress from "nprogress" import "nprogress/nprogress.css" @@ -18,7 +19,7 @@ router.beforeEach((to, from, next) => { if(!token && !whitePath.includes(to.path)) { next('/login'); } else { - next() + checkMenu(to.path, next); } }) @@ -26,4 +27,12 @@ router.afterEach(() => { NProgress.done() }) +// 检查菜单权限 +function checkMenu(path, next) { + let menuStr = store.getters.getMenu || []; + let arr = ['/index', '/modelInsight', '/eventInsight', '/marketingAnalysis']; + let n = menuStr.findIndex(ele => ele.link === path); + if(arr.includes(path) && n === -1) next('/index') + else next() +} export default router \ No newline at end of file diff --git a/src/store/actions.js b/src/store/actions.js index 96d6084..3eb3550 100644 --- a/src/store/actions.js +++ b/src/store/actions.js @@ -1,7 +1,7 @@ /* * @Author: your name * @Date: 2021-10-12 13:36:49 - * @LastEditTime: 2021-11-15 15:46:52 + * @LastEditTime: 2021-11-16 10:01:41 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: /data-show/src/store/actions.js @@ -52,5 +52,11 @@ const actions = { setEComparison: ({commit}, log) => { commit('setEComparison', log) }, + setLevelBtn: ({commit}, log) => { + commit('setLevelBtn', log) + }, + setMenu: ({commit}, log) => { + commit('setMenu', log) + } } export default actions diff --git a/src/store/getters.js b/src/store/getters.js index 094b2a4..d7a3790 100644 --- a/src/store/getters.js +++ b/src/store/getters.js @@ -1,7 +1,7 @@ /* * @Author: your name * @Date: 2021-10-12 13:37:06 - * @LastEditTime: 2021-11-15 15:47:44 + * @LastEditTime: 2021-11-16 10:03:04 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: /data-show/src/store/getters.js @@ -52,5 +52,11 @@ const getters = { getEComparison(state) { return state.eComparison }, + getLevelBtn(state) { + return state.levelBtn + }, + getMenu(state) { + return state.menu + } } export default getters diff --git a/src/store/mutations.js b/src/store/mutations.js index 4d45e7a..a0d71a1 100644 --- a/src/store/mutations.js +++ b/src/store/mutations.js @@ -1,7 +1,7 @@ /* * @Author: your name * @Date: 2021-10-12 13:37:35 - * @LastEditTime: 2021-11-15 15:47:21 + * @LastEditTime: 2021-11-16 10:02:10 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: /data-show/src/store/mutations.js @@ -81,6 +81,16 @@ const mutations = { let str = JSON.stringify(log); sessionStorage.setItem('eComparison', str); }, + setLevelBtn: (state, log) => { + state.levelBtn = log; + let str = JSON.stringify(log); + sessionStorage.setItem('levelBtn', str); + }, + setMenu: (state, log) => { + state.menu = log; + let str = JSON.stringify(log); + sessionStorage.setItem('menu', str); + } } diff --git a/src/store/state.js b/src/store/state.js index 2d450b5..fb6dfc7 100644 --- a/src/store/state.js +++ b/src/store/state.js @@ -1,7 +1,7 @@ /* * @Author: your name * @Date: 2021-10-12 13:37:50 - * @LastEditTime: 2021-11-15 15:46:12 + * @LastEditTime: 2021-11-16 09:57:48 * @LastEditors: Please set LastEditors * @Description: In User Settings Edit * @FilePath: /data-show/src/store/state.js @@ -22,6 +22,8 @@ const state = { bComparison: JSON.parse(sessionStorage.getItem('bComparison')) || [], sComparison: JSON.parse(sessionStorage.getItem('sComparison')) || [], mComparison: JSON.parse(sessionStorage.getItem('mComparison')) || [], - eComparison: JSON.parse(sessionStorage.getItem('eComparison')) || [] + eComparison: JSON.parse(sessionStorage.getItem('eComparison')) || [], + levelBtn: JSON.parse(sessionStorage.getItem('levelBtn')) || [], + menu: JSON.parse(sessionStorage.getItem('menu')) || [], } export default state; diff --git a/src/views/BrandComparison/brandCommunicationTOPMedia/index.vue b/src/views/BrandComparison/brandCommunicationTOPMedia/index.vue index 40cb859..23d79f0 100644 --- a/src/views/BrandComparison/brandCommunicationTOPMedia/index.vue +++ b/src/views/BrandComparison/brandCommunicationTOPMedia/index.vue @@ -1,118 +1,124 @@ diff --git a/src/views/BrandComparison/weiboContentDirectionComparison/index.vue b/src/views/BrandComparison/weiboContentDirectionComparison/index.vue index 5dd0dbd..56533bb 100644 --- a/src/views/BrandComparison/weiboContentDirectionComparison/index.vue +++ b/src/views/BrandComparison/weiboContentDirectionComparison/index.vue @@ -1,140 +1,142 @@ diff --git a/src/views/BrandInsight/titsopo/index.vue b/src/views/BrandInsight/titsopo/index.vue index 620e854..048e22d 100644 --- a/src/views/BrandInsight/titsopo/index.vue +++ b/src/views/BrandInsight/titsopo/index.vue @@ -1,7 +1,7 @@ diff --git a/src/views/ModelComparison/weiboContentDirectionComparison/index.vue b/src/views/ModelComparison/weiboContentDirectionComparison/index.vue index 7e0ace2..9b0dbe0 100644 --- a/src/views/ModelComparison/weiboContentDirectionComparison/index.vue +++ b/src/views/ModelComparison/weiboContentDirectionComparison/index.vue @@ -1,145 +1,148 @@