From 0b2877a4b4bf90bec9bd46b78beedf211263a028 Mon Sep 17 00:00:00 2001 From: zhangxiaoxu123 <819527061@qq.com> Date: 星期二, 19 七月 2022 17:48:11 +0800 Subject: [PATCH] '权限优化' --- pages/login/login.vue | 1 pages/jihua/jihua.vue | 1 main.js | 3 + components/common/popup-menu/popup-menu.vue | 61 ++------------------ store/index.js | 69 +++++++++++++++++++++++ 5 files changed, 80 insertions(+), 55 deletions(-) diff --git a/components/common/popup-menu/popup-menu.vue b/components/common/popup-menu/popup-menu.vue index 66d5be3..8cc9e87 100644 --- a/components/common/popup-menu/popup-menu.vue +++ b/components/common/popup-menu/popup-menu.vue @@ -10,7 +10,8 @@ <image src="@/static/menuIcon/menu-home.png" slot="icon" size="32" name="search"/> </u-cell> <u-cell - v-if="shenqingMenu" + v-if="$store.state.shenqingMenu" + v-cloak title="鎴戠殑鐢宠" isLink url="/pages/my-application/my-application" @@ -32,7 +33,8 @@ <image src="@/static/menuIcon/menu-havedo.png" slot="icon" size="32" name="search"/> </u-cell> <u-cell - v-if="rijihuaMenu" + v-if="$store.state.rijihuaMenu" + v-cloak title="鏃ュ彂杩愯鍒�" isLink url="/pages/jihua/jihua" style="color:blue" @@ -63,70 +65,19 @@ // }, data() { return { - menuShow:false, - rijihuaMenu:false, - shenqingMenu:false, + menuShow:false }; }, onShow() { alert(111) }, methods: { - checkRijihua(data) { - let labelArry = [] - let newObj = data.filter(e => e.label == '鍦伴攢璁¢噺') - newObj && newObj.forEach(e => { - if(e.children.length > 0) { - e.children.forEach(item => { - labelArry.push(item.label) - }) - }else{ - this.rijihuaMenu = false - } - }) - if(labelArry.indexOf('姹借溅鏃ュ彂杩愯鍒掔鐞�') > -1) { - this.rijihuaMenu = true - }else { - this.rijihuaMenu = false - } - }, - checkShenqing(data) { - let labelArry = [] - let newObj = data.filter(e => e.label == '宸ヤ綔瀹℃壒') - newObj && newObj.forEach(e => { - if(e.children.length > 0) { - e.children.forEach(item => { - labelArry.push(item.label) - }) - }else{ - this.shenqingMenu = false - } - }) - if(labelArry.indexOf('鎴戠殑鐢宠') > -1) { - this.shenqingMenu = true - }else { - this.shenqingMenu = false - } - }, - menu() { - // 鏉冮檺鍒ゆ柇 - this.$reqGet('menu').then(res => { - if(res.data == null) { - this.rijihuaMenu = false - this.shenqingMenu = false - }else { - this.checkRijihua(res.data) - this.checkShenqing(res.data) - } - }) - }, menuClick(){ this.menuShow = !this.menuShow this.$emit('menuShow',this.menuShow) }, open() { - console.log('open'); - this.menu() + console.log(this.$store.state,'shenqingMenu====') }, close() { this.menuShow = false; diff --git a/main.js b/main.js index 29b062f..06880df 100644 --- a/main.js +++ b/main.js @@ -2,6 +2,7 @@ import Vue from 'vue' import uView from '@/uni_modules/uview-ui'; import '@/api/constant.js'; +import store from './store' uni.$u.config.unit = 'rpx' Vue.use(uView) @@ -13,6 +14,7 @@ Vue.prototype.$reqGet = reqGet; Vue.prototype.$reqPost = reqPost; +Vue.prototype.$store = store Vue.config.productionTip = false @@ -20,6 +22,7 @@ App.mpType = 'app' const app = new Vue({ + store, ...App }) app.$mount() diff --git a/pages/jihua/jihua.vue b/pages/jihua/jihua.vue index 9f2ccff..6f8f2b1 100644 --- a/pages/jihua/jihua.vue +++ b/pages/jihua/jihua.vue @@ -180,6 +180,7 @@ title: '姝e湪鍔犺浇...' }); let compId = uni.getStorageSync('userInfo').compId + let params = { current: 1, size: 100, diff --git a/pages/login/login.vue b/pages/login/login.vue index bc1020f..35995e9 100644 --- a/pages/login/login.vue +++ b/pages/login/login.vue @@ -46,6 +46,7 @@ setTokenType(token_type); setRefreshToken(refresh_token); setScope(scope); + this.$store.dispatch('menus') redirectHome(); uni.hideLoading(); } catch (e) { diff --git a/store/index.js b/store/index.js new file mode 100644 index 0000000..0b0a277 --- /dev/null +++ b/store/index.js @@ -0,0 +1,69 @@ +import Vue from 'vue' +import Vuex from 'vuex' +Vue.use(Vuex) + +// 璇锋眰鐩稿叧 +import { reqAll, reqGet, reqPost } from '../utils/index.js'; + +const store = new Vuex.Store({ + state: { + shenqingMenu: uni.getStorageSync('shenqingMenu') || false, //鐢宠鑿滃崟 + rijihuaMenu: uni.getStorageSync('rijihuaMenu') || false, //鏃ヨ鍒掕彍鍗� + }, + mutations: { + ISHAS_SHENQING: (state, data) => { + let labelArry = [] + let newObj = data.filter(e => e.label == '宸ヤ綔瀹℃壒') + newObj && newObj.forEach(e => { + if(e.children.length > 0) { + e.children.forEach(item => { + labelArry.push(item.label) + }) + }else{ + state.shenqingMenu = false + uni.setStorageSync('shenqingMenu',state.shenqingMenu) + } + }) + if(labelArry.indexOf('鎴戠殑鐢宠') > -1) { + state.shenqingMenu = true + uni.setStorageSync('shenqingMenu',state.shenqingMenu) + }else { + state.shenqingMenu = false + uni.setStorageSync('shenqingMenu',state.shenqingMenu) + } + + }, + ISHAS_RIJIHUA: (state, data) => { + let labelArry = [] + let newObj = data.filter(e => e.label == '鍦伴攢璁¢噺') + newObj && newObj.forEach(e => { + if(e.children.length > 0) { + e.children.forEach(item => { + labelArry.push(item.label) + }) + }else{ + state.rijihuaMenu = false + uni.setStorageSync('rijihuaMenu',state.rijihuaMenu) + } + }) + if(labelArry.indexOf('姹借溅鏃ュ彂杩愯鍒掔鐞�') > -1) { + state.rijihuaMenu = true + uni.setStorageSync('rijihuaMenu',state.rijihuaMenu) + }else { + state.rijihuaMenu = false + uni.setStorageSync('rijihuaMenu',state.rijihuaMenu) + } + } + }, + actions: { + menus({commit}) { + reqGet('menu').then(response => { + console.log(response,'response=====response----') + commit('ISHAS_SHENQING',response.data) + commit('ISHAS_RIJIHUA',response.data) + }) + } + } +}) + +export default store \ No newline at end of file -- Gitblit v1.9.1