From 31e6b27fc0b7fb2ae715efa4287d8f5539f33d78 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Fri, 27 Oct 2023 15:10:53 +0800
Subject: [PATCH] 角色切换,保存菜单至store
---
utils/func.js | 27 ++++++++-----
subPackage/user/role/index.vue | 18 ++++++++
store/index.js | 48 ++++++++++++++----------
3 files changed, 62 insertions(+), 31 deletions(-)
diff --git a/store/index.js b/store/index.js
index 59a5e73..7b99d17 100644
--- a/store/index.js
+++ b/store/index.js
@@ -48,10 +48,12 @@
// 如果version无需保存到本地永久存储,无需lifeData.version方式
version: '1.0.0',
activeRoleId: "",
- tabBarList: [],
+ // tabBarList: [],
adCodeBase: {},
- tabbarIndex: uni.getStorageSync("tabbarIndex") || 0,
+ // tabbarIndex: uni.getStorageSync("tabbarIndex") || 0,
hasUpdate: false, //true为不可登录,需要更新,false则是最新版
+
+ menu: [],
},
mutations: {
@@ -75,31 +77,37 @@
// 保存变量到本地,见顶部函数定义
saveLifeData(saveKey, state[saveKey])
},
- // 设置菜单
- setTabBarList(state, data) {
- let i = 0
- if (state.tabBarList.length > 0) {
- i = state.tabBarList.length
- }
- data.forEach(e => {
- e.i = i
- i++
- })
+ // // 设置菜单
+ // setTabBarList(state, data) {
+ // let i = 0
+ // if (state.tabBarList.length > 0) {
+ // i = state.tabBarList.length
+ // }
+ // data.forEach(e => {
+ // e.i = i
+ // i++
+ // })
- state.tabBarList = data;
- uni.setStorageSync('tabBarList', data)
- // console.log(uni.getStorageSync('tabBarList'))
- },
+ // state.tabBarList = data;
+ // uni.setStorageSync('tabBarList', data)
+ // // console.log(uni.getStorageSync('tabBarList'))
+ // },
//设置当前激活的角色
setActiveRoleId(state, roleId) {
state.activeRoleId = roleId
uni.setStorageSync('activeRoleId', roleId)
},
- //设置底部导航栏索引
- SET_TABBAT_INDEX(state, index) {
- state.tabbarIndex = index
- uni.setStorageSync('tabbarIndex', index)
+
+ SET_MENU(state, menuList) {
+ state.menu = menuList
+ uni.setStorageSync('menu', menuList)
},
+
+ //设置底部导航栏索引
+ // SET_TABBAT_INDEX(state, index) {
+ // state.tabbarIndex = index
+ // uni.setStorageSync('tabbarIndex', index)
+ // },
SET_HAS_UPDATE(state, val) {
state.hasUpdate = val
uni.setStorageSync('hasUpdate', val)
diff --git a/subPackage/user/role/index.vue b/subPackage/user/role/index.vue
index 853c0ea..837cb40 100644
--- a/subPackage/user/role/index.vue
+++ b/subPackage/user/role/index.vue
@@ -66,6 +66,8 @@
},
async submit() {
+ const that = this
+
//保存当前激活的角色
store.commit("setActiveRoleId", this.selectRole.id)
@@ -76,9 +78,23 @@
let data = res.data
const appMenu = data.filter(e => e.name == 'app')[0]
console.log("菜单:", appMenu)
+ store.commit("SET_MENU", appMenu)
- this.$u.func.showToast("切换角色成功")
+
+ uni.showToast({
+ title: "切换身份成功",
+ icon: "success",
+ duration: data.duration || 1500,
+ success: () => {
+ setTimeout(() => {
+ this.$u.func.globalNavigator("/pages/home/index", "switchTab")
+ }, data.duration || 1500)
+ }
+ })
+
+
+
}
}
}
diff --git a/utils/func.js b/utils/func.js
index ed8ea3c..b9ef044 100644
--- a/utils/func.js
+++ b/utils/func.js
@@ -5,12 +5,6 @@
import {
logAdd
} from "@/api/system/logManage"
-import {
- messageCount
-} from "@/api/system/message"
-import {
- saveCId
-} from "@/api/system/user.js"
// 全局公共方法
const install = (Vue, vm) => {
@@ -22,11 +16,24 @@
vm.$u.vuex('accessToken', userInfo.access_token)
vm.$u.vuex('isLogin', true)
- //添加当前激活的roleId(默认取第一个)
- vm.$u.vuex('activeRoleId', userInfo.role_id.split(",")[0])
+ let activeRoleId = userInfo.role_id.split(",")[0]
+ console.log("当前激活角色的id:", activeRoleId)
- uni.switchTab({
- url: '/pages/home/index'
+ //添加当前激活的roleId(默认取第一个)
+ vm.$u.vuex('activeRoleId', activeRoleId)
+
+ //获取角色菜单
+ dynamicMenu(activeRoleId).then(res => {
+ let data = res.data
+ let appMenu = data.filter(e => e.name == 'app')[0]
+ console.log("当前角色菜单:", appMenu)
+ vm.$u.vuex('menu', appMenu)
+
+ //跳转到首页
+ uni.switchTab({
+ url: '/pages/home/index'
+ })
+
})
}
--
Gitblit v1.9.3