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