From e1699c4851f6ca397cd0ad1ff63f32c737654836 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Wed, 02 Apr 2025 19:14:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 src/store/modules/user.js |  785 ++++++++++++++++++++++++++++---------------------------
 1 files changed, 394 insertions(+), 391 deletions(-)

diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index ee3a48e..16ec216 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -1,398 +1,401 @@
+import { ELocalStorageKey } from '@/utils/http/enums'
 import {
-  setToken,
-  setRefreshToken,
-  removeToken,
-  removeRefreshToken,
-  getRefreshToken,
-} from '@/utils/auth';
-import { setStore, getStore } from '@/utils/store';
-import { validatenull } from '@/utils/validate';
-import { deepClone } from '@/utils/util';
+	setToken,
+	setRefreshToken,
+	removeToken,
+	removeRefreshToken,
+	getRefreshToken,
+} from '@/utils/auth'
+import { setStore, getStore } from '@/utils/store'
+import { validatenull } from '@/utils/validate'
+import { deepClone } from '@/utils/util'
 import {
-  loginByUsername,
-  loginBySocial,
-  loginBySso,
-  loginByPhone,
-  getUserInfo,
-  logout,
-  refreshToken,
-  getButtons,
-  registerUser,
-} from '@/api/user';
-import { getRoutes, getTopMenu } from '@/api/system/menu';
-import { formatPath } from '@/router/avue-router';
-import { ElMessage } from 'element-plus';
-import { encrypt } from '@/utils/sm2';
-import md5 from 'js-md5';
+	loginByUsername,
+	loginBySocial,
+	loginBySso,
+	loginByPhone,
+	getUserInfo,
+	logout,
+	refreshToken,
+	getButtons,
+	registerUser,
+} from '@/api/user'
+import { getRoutes, getTopMenu } from '@/api/system/menu'
+import { formatPath } from '@/router/avue-router'
+import { ElMessage } from 'element-plus'
+import { encrypt } from '@/utils/sm2'
+import md5 from 'js-md5'
 
 const userInfoData = getStore({ name: 'userInfo' }) || {}
 const user = {
-  state: {
-    // 当前选中的请求头
-    selectedAreaCode: userInfoData?.detail?.areaCode || '',
-    tenantId: getStore({ name: 'tenantId' }) || '',
-    userInfo: userInfoData,
-    permission: getStore({ name: 'permission' }) || {},
-    roles: [],
-    menuId: {},
-    menu: getStore({ name: 'menu' }) || [],
-    menuAll: getStore({ name: 'menuAll' }) || [],
-    token: getStore({ name: 'token' }) || '',
-    refreshToken: getStore({ name: 'refreshToken' }) || '',
-  },
-  actions: {
-    //根据用户名登录
-    LoginByUsername({ commit }, userInfo = {}) {
-      return new Promise((resolve, reject) => {
-        loginByUsername(
-          userInfo.tenantId,
-          userInfo.deptId,
-          userInfo.roleId,
-          userInfo.username,
-          md5(userInfo.password),
-          userInfo.type,
-          userInfo.key,
-          userInfo.code
-        )
-          .then(res => {
-            const data = res.data;
-            if (data.error_description) {
-              ElMessage({
-                message: data.error_description,
-                type: 'error',
-              });
-            } else {
-              commit('SET_TOKEN', data.access_token);
-              commit('SET_REFRESH_TOKEN', data.refresh_token);
-              commit('SET_TENANT_ID', data.tenant_id);
-              commit('SET_USER_INFO', data);
-              commit('DEL_ALL_TAG');
-              commit('CLEAR_LOCK');
-            }
-            resolve();
-          })
-          .catch(err => {
-            reject(err);
-          });
-      });
-    },
-    //根据第三方信息登录
-    LoginBySocial({ commit }, userInfo) {
-      return new Promise((resolve, reject) => {
-        loginBySocial(userInfo.tenantId, userInfo.source, userInfo.code, userInfo.state)
-          .then(res => {
-            const data = res.data;
-            if (data.error_description) {
-              ElMessage({
-                message: data.error_description,
-                type: 'error',
-              });
-            } else {
-              commit('SET_TOKEN', data.access_token);
-              commit('SET_REFRESH_TOKEN', data.refresh_token);
-              commit('SET_USER_INFO', data);
-              commit('SET_TENANT_ID', data.tenant_id);
-              commit('DEL_ALL_TAG');
-              commit('CLEAR_LOCK');
-            }
-            resolve();
-          })
-          .catch(err => {
-            reject(err);
-          });
-      });
-    },
-    //根据单点信息登录
-    LoginBySso({ commit }, userInfo) {
-      return new Promise((resolve, reject) => {
-        loginBySso(userInfo.state, userInfo.code)
-          .then(res => {
-            const data = res.data;
-            if (data.error_description) {
-              ElMessage({
-                message: data.error_description,
-                type: 'error',
-              });
-            } else {
-              commit('SET_TOKEN', data.access_token);
-              commit('SET_REFRESH_TOKEN', data.refresh_token);
-              commit('SET_USER_INFO', data);
-              commit('SET_TENANT_ID', data.tenant_id);
-              commit('DEL_ALL_TAG');
-              commit('CLEAR_LOCK');
-            }
-            resolve();
-          })
-          .catch(err => {
-            reject(err);
-          });
-      });
-    },
-    //根据手机信息登录
-    LoginByPhone({ commit }, userInfo) {
-      return new Promise((resolve, reject) => {
-        loginByPhone(
-          userInfo.tenantId,
-          encrypt(userInfo.phone),
-          userInfo.codeId,
-          userInfo.codeValue
-        )
-          .then(res => {
-            const data = res.data;
-            if (data.error_description) {
-              ElMessage({
-                message: data.error_description,
-                type: 'error',
-              });
-            } else {
-              commit('SET_TOKEN', data.access_token);
-              commit('SET_REFRESH_TOKEN', data.refresh_token);
-              commit('SET_USER_INFO', data);
-              commit('SET_TENANT_ID', data.tenant_id);
-              commit('DEL_ALL_TAG');
-              commit('CLEAR_LOCK');
-            }
-            resolve();
-          })
-          .catch(err => {
-            reject(err);
-          });
-      });
-    },
-    //用户注册
-    RegisterUser({ commit }, userInfo = {}) {
-      return new Promise((resolve, reject) => {
-        registerUser(
-          userInfo.tenantId,
-          userInfo.name,
-          userInfo.account,
-          encrypt(userInfo.password),
-          userInfo.phone,
-          userInfo.email
-        ).then(res => {
-          const data = res.data;
-          if (data.error_description) {
-            ElMessage({
-              message: data.error_description,
-              type: 'error',
-            });
-            reject(data.error_description);
-          } else {
-            commit('SET_TOKEN', data.access_token);
-            commit('SET_REFRESH_TOKEN', data.refresh_token);
-            commit('SET_USER_INFO', data);
-            commit('SET_TENANT_ID', data.tenant_id);
-            commit('DEL_ALL_TAG');
-            commit('CLEAR_LOCK');
-          }
-          resolve();
-        });
-      });
-    },
-    GetUserInfo({ commit }) {
-      return new Promise((resolve, reject) => {
-        getUserInfo()
-          .then(res => {
-            const data = res.data.data;
-            commit('SET_ROLES', data.roles);
-            resolve(data);
-          })
-          .catch(err => {
-            reject(err);
-          });
-      });
-    },
-    //刷新token
-    RefreshToken({ state, commit }, userInfo) {
-      return new Promise((resolve, reject) => {
-        refreshToken(
-          getRefreshToken(),
-          state.tenantId,
-          !validatenull(userInfo) ? userInfo.deptId : state.userInfo.dept_id,
-          !validatenull(userInfo) ? userInfo.roleId : state.userInfo.role_id
-        )
-          .then(res => {
-            const data = res.data;
-            commit('SET_TOKEN', data.access_token);
-            commit('SET_REFRESH_TOKEN', data.refresh_token);
-            commit('SET_USER_INFO', data);
-            resolve();
-          })
-          .catch(error => {
-            reject(error);
-          });
-      });
-    },
-    // 登出
-    LogOut({ commit }) {
-      return new Promise((resolve, reject) => {
-        logout()
-          .then(() => {
-            commit('SET_TOKEN', '');
-            commit('SET_MENU_ALL_NULL', []);
-            commit('SET_MENU', []);
-            commit('SET_ROLES', []);
-            commit('DEL_ALL_TAG', []);
-            commit('CLEAR_LOCK');
-            removeToken();
-            removeRefreshToken();
-            removeToken();
-            resolve();
-          })
-          .catch(error => {
-            reject(error);
-          });
-      });
-    },
-    //注销session
-    FedLogOut({ commit }) {
-      return new Promise(resolve => {
-        commit('SET_TOKEN', '');
-        commit('SET_MENU_ALL_NULL', []);
-        commit('SET_MENU', []);
-        commit('SET_ROLES', []);
-        commit('DEL_ALL_TAG', []);
-        commit('CLEAR_LOCK');
-        removeToken();
-        removeRefreshToken();
-        removeToken();
-        resolve();
-      });
-    },
-    GetTopMenu() {
-      return new Promise(resolve => {
-        getTopMenu().then(res => {
-          const data = res.data.data || [];
-          resolve(data);
-        });
-      });
-    },
-    GetMenu({ commit, dispatch }, tenantId) {
-      return new Promise(resolve => {
-        getRoutes(tenantId).then(res => {
-          const data = res.data.data;
-          let menu = deepClone(data);
-          menu.forEach(ele => formatPath(ele, true));
-          commit('SET_MENU', menu);
-          commit('SET_MENU_ALL', menu);
-          dispatch('GetButtons');
-          resolve(menu);
-        });
-      });
-    },
-    GetButtons({ commit }) {
-      return new Promise(resolve => {
-        getButtons().then(res => {
-          const data = res.data.data;
-          commit('SET_PERMISSION', data);
-          resolve();
-        });
-      });
-    },
-  },
-  mutations: {
-    setSelectedAreaCode:(state, code) =>{
-      state.selectedAreaCode = code
-    },
-    SET_TOKEN: (state, token) => {
-      setToken(token);
-      state.token = token;
-      setStore({ name: 'token', content: state.token });
-    },
-    SET_REFRESH_TOKEN: (state, refreshToken) => {
-      setRefreshToken(refreshToken);
-      state.refreshToken = refreshToken;
-      setStore({ name: 'refreshToken', content: state.refreshToken });
-    },
-    SET_MENU_ID(state, menuId) {
-      state.menuId = menuId;
-    },
-    SET_TENANT_ID: (state, tenantId) => {
-      state.tenantId = tenantId;
-      setStore({ name: 'tenantId', content: state.tenantId });
-    },
-    SET_USER_INFO: (state, userInfo) => {
-      if (validatenull(userInfo.user_id) && validatenull(userInfo.account)) {
-        state.userInfo = { user_name: 'unauth', role_name: 'unauth', authority: 'unauth' };
-      } else {
-        if (validatenull(userInfo.avatar)) {
-          userInfo.avatar = '/img/bg/img-logo.png';
-        }
-        if (!validatenull(userInfo.role_name)) {
-          userInfo.roleName = userInfo.role_name;
-          userInfo.authority = userInfo.role_name;
-        }
-        if (!validatenull(userInfo.user_id)) {
-          userInfo.userId = userInfo.user_id;
-        }
-        if (!validatenull(userInfo.user_name)) {
-          userInfo.userName = userInfo.user_name;
-        }
-        if (!validatenull(userInfo.tenant_id)) {
-          userInfo.tenantId = userInfo.tenant_id;
-        }
-        if (!validatenull(userInfo.dept_id)) {
-          userInfo.deptId = userInfo.dept_id;
-        }
-        if (!validatenull(userInfo.role_id)) {
-          userInfo.roleId = userInfo.role_id;
-        }
-        if (!validatenull(userInfo.oauth_id)) {
-          userInfo.oauthId = userInfo.oauth_id;
-        }
-        userInfo.selectedAreaCode = userInfo?.detail?.areaCode || '';
-        state.userInfo = userInfo;
-      }
-      setStore({ name: 'userInfo', content: state.userInfo });
-    },
-    SET_MENU_ALL: (state, menuAll) => {
-      let menu = state.menuAll;
-      menuAll.forEach(ele => {
-        let index = menu.findIndex(item => item.path === ele.path);
-        if (index === -1) {
-          menu.push(ele);
-        } else {
-          menu[index] = ele;
-        }
-      });
-      state.menuAll = menu;
-      setStore({ name: 'menuAll', content: state.menuAll });
-    },
-    SET_MENU_ALL_NULL: state => {
-      state.menuAll = [];
-      setStore({ name: 'menuAll', content: state.menuAll });
-    },
-    SET_MENU: (state, menu) => {
-      state.menu = menu;
-      setStore({ name: 'menu', content: state.menu });
-    },
-    SET_ROLES: (state, roles) => {
-      state.roles = roles;
-    },
-    SET_PERMISSION: (state, permission) => {
-      let result = [];
+	state: {
+		// 当前选中的请求头
+		selectedAreaCode: userInfoData?.detail?.areaCode || '',
+		tenantId: getStore({ name: 'tenantId' }) || '',
+		userInfo: userInfoData,
+		permission: getStore({ name: 'permission' }) || {},
+		roles: [],
+		menuId: {},
+		menu: getStore({ name: 'menu' }) || [],
+		menuAll: getStore({ name: 'menuAll' }) || [],
+		token: getStore({ name: 'token' }) || '',
+		refreshToken: getStore({ name: 'refreshToken' }) || '',
+	},
+	actions: {
+		//根据用户名登录
+		LoginByUsername({ commit }, userInfo = {}) {
+			return new Promise((resolve, reject) => {
+				loginByUsername(
+					userInfo.tenantId,
+					userInfo.deptId,
+					userInfo.roleId,
+					userInfo.username,
+					md5(userInfo.password),
+					userInfo.type,
+					userInfo.key,
+					userInfo.code
+				)
+					.then(res => {
+						const data = res.data
+						if (data.error_description) {
+							ElMessage({
+								message: data.error_description,
+								type: 'error',
+							})
+						} else {
+							commit('SET_TOKEN', data.access_token)
+							commit('SET_REFRESH_TOKEN', data.refresh_token)
+							commit('SET_TENANT_ID', data.tenant_id)
+							commit('SET_USER_INFO', data)
+							commit('DEL_ALL_TAG')
+							commit('CLEAR_LOCK')
+						}
+						resolve()
+					})
+					.catch(err => {
+						reject(err)
+					})
+			})
+		},
+		//根据第三方信息登录
+		LoginBySocial({ commit }, userInfo) {
+			return new Promise((resolve, reject) => {
+				loginBySocial(userInfo.tenantId, userInfo.source, userInfo.code, userInfo.state)
+					.then(res => {
+						const data = res.data
+						if (data.error_description) {
+							ElMessage({
+								message: data.error_description,
+								type: 'error',
+							})
+						} else {
+							commit('SET_TOKEN', data.access_token)
+							commit('SET_REFRESH_TOKEN', data.refresh_token)
+							commit('SET_USER_INFO', data)
+							commit('SET_TENANT_ID', data.tenant_id)
+							commit('DEL_ALL_TAG')
+							commit('CLEAR_LOCK')
+						}
+						resolve()
+					})
+					.catch(err => {
+						reject(err)
+					})
+			})
+		},
+		//根据单点信息登录
+		LoginBySso({ commit }, userInfo) {
+			return new Promise((resolve, reject) => {
+				loginBySso(userInfo.state, userInfo.code)
+					.then(res => {
+						const data = res.data
+						if (data.error_description) {
+							ElMessage({
+								message: data.error_description,
+								type: 'error',
+							})
+						} else {
+							commit('SET_TOKEN', data.access_token)
+							commit('SET_REFRESH_TOKEN', data.refresh_token)
+							commit('SET_USER_INFO', data)
+							commit('SET_TENANT_ID', data.tenant_id)
+							commit('DEL_ALL_TAG')
+							commit('CLEAR_LOCK')
+						}
+						resolve()
+					})
+					.catch(err => {
+						reject(err)
+					})
+			})
+		},
+		//根据手机信息登录
+		LoginByPhone({ commit }, userInfo) {
+			return new Promise((resolve, reject) => {
+				loginByPhone(
+					userInfo.tenantId,
+					encrypt(userInfo.phone),
+					userInfo.codeId,
+					userInfo.codeValue
+				)
+					.then(res => {
+						const data = res.data
+						if (data.error_description) {
+							ElMessage({
+								message: data.error_description,
+								type: 'error',
+							})
+						} else {
+							commit('SET_TOKEN', data.access_token)
+							commit('SET_REFRESH_TOKEN', data.refresh_token)
+							commit('SET_USER_INFO', data)
+							commit('SET_TENANT_ID', data.tenant_id)
+							commit('DEL_ALL_TAG')
+							commit('CLEAR_LOCK')
+						}
+						resolve()
+					})
+					.catch(err => {
+						reject(err)
+					})
+			})
+		},
+		//用户注册
+		RegisterUser({ commit }, userInfo = {}) {
+			return new Promise((resolve, reject) => {
+				registerUser(
+					userInfo.tenantId,
+					userInfo.name,
+					userInfo.account,
+					encrypt(userInfo.password),
+					userInfo.phone,
+					userInfo.email
+				).then(res => {
+					const data = res.data
+					if (data.error_description) {
+						ElMessage({
+							message: data.error_description,
+							type: 'error',
+						})
+						reject(data.error_description)
+					} else {
+						commit('SET_TOKEN', data.access_token)
+						commit('SET_REFRESH_TOKEN', data.refresh_token)
+						commit('SET_USER_INFO', data)
+						commit('SET_TENANT_ID', data.tenant_id)
+						commit('DEL_ALL_TAG')
+						commit('CLEAR_LOCK')
+					}
+					resolve()
+				})
+			})
+		},
+		GetUserInfo({ commit }) {
+			return new Promise((resolve, reject) => {
+				getUserInfo()
+					.then(res => {
+						const data = res.data.data
+						commit('SET_ROLES', data.roles)
+						resolve(data)
+					})
+					.catch(err => {
+						reject(err)
+					})
+			})
+		},
+		//刷新token
+		RefreshToken({ state, commit }, userInfo) {
+			return new Promise((resolve, reject) => {
+				refreshToken(
+					getRefreshToken(),
+					state.tenantId,
+					!validatenull(userInfo) ? userInfo.deptId : state.userInfo.dept_id,
+					!validatenull(userInfo) ? userInfo.roleId : state.userInfo.role_id
+				)
+					.then(res => {
+						const data = res.data
+						commit('SET_TOKEN', data.access_token)
+						commit('SET_REFRESH_TOKEN', data.refresh_token)
+						commit('SET_USER_INFO', data)
+						resolve()
+					})
+					.catch(error => {
+						reject(error)
+					})
+			})
+		},
+		// 登出
+		LogOut({ commit }) {
+			return new Promise((resolve, reject) => {
+				logout()
+					.then(() => {
+						commit('SET_TOKEN', '')
+						commit('SET_MENU_ALL_NULL', [])
+						commit('SET_MENU', [])
+						commit('SET_ROLES', [])
+						commit('DEL_ALL_TAG', [])
+						commit('CLEAR_LOCK')
+						removeToken()
+						removeRefreshToken()
+						removeToken()
+						resolve()
+					})
+					.catch(error => {
+						reject(error)
+					})
+			})
+		},
+		//注销session
+		FedLogOut({ commit }) {
+			return new Promise(resolve => {
+				commit('SET_TOKEN', '')
+				commit('SET_MENU_ALL_NULL', [])
+				commit('SET_MENU', [])
+				commit('SET_ROLES', [])
+				commit('DEL_ALL_TAG', [])
+				commit('CLEAR_LOCK')
+				removeToken()
+				removeRefreshToken()
+				removeToken()
+				resolve()
+			})
+		},
+		GetTopMenu() {
+			return new Promise(resolve => {
+				getTopMenu().then(res => {
+					const data = res.data.data || []
+					resolve(data)
+				})
+			})
+		},
+		GetMenu({ commit, dispatch }, tenantId) {
+			return new Promise(resolve => {
+				getRoutes(tenantId).then(res => {
+					const data = res.data.data
+					let menu = deepClone(data)
+					menu.forEach(ele => formatPath(ele, true))
+					commit('SET_MENU', menu)
+					commit('SET_MENU_ALL', menu)
+					dispatch('GetButtons')
+					resolve(menu)
+				})
+			})
+		},
+		GetButtons({ commit }) {
+			return new Promise(resolve => {
+				getButtons().then(res => {
+					const data = res.data.data
+					commit('SET_PERMISSION', data)
+					resolve()
+				})
+			})
+		},
+	},
+	mutations: {
+		setSelectedAreaCode: (state, code) => {
+			state.selectedAreaCode = code
+		},
+		SET_TOKEN: (state, token) => {
+			setToken(token)
+			state.token = token
+			setStore({ name: 'token', content: state.token })
+			console.log('顶顶顶111', token)
+			window.localStorage.setItem(ELocalStorageKey.Token, token)
+		},
+		SET_REFRESH_TOKEN: (state, refreshToken) => {
+			setRefreshToken(refreshToken)
+			state.refreshToken = refreshToken
+			setStore({ name: 'refreshToken', content: state.refreshToken })
+		},
+		SET_MENU_ID(state, menuId) {
+			state.menuId = menuId
+		},
+		SET_TENANT_ID: (state, tenantId) => {
+			state.tenantId = tenantId
+			setStore({ name: 'tenantId', content: state.tenantId })
+		},
+		SET_USER_INFO: (state, userInfo) => {
+			if (validatenull(userInfo.user_id) && validatenull(userInfo.account)) {
+				state.userInfo = { user_name: 'unauth', role_name: 'unauth', authority: 'unauth' }
+			} else {
+				if (validatenull(userInfo.avatar)) {
+					userInfo.avatar = '/img/bg/img-logo.png'
+				}
+				if (!validatenull(userInfo.role_name)) {
+					userInfo.roleName = userInfo.role_name
+					userInfo.authority = userInfo.role_name
+				}
+				if (!validatenull(userInfo.user_id)) {
+					userInfo.userId = userInfo.user_id
+				}
+				if (!validatenull(userInfo.user_name)) {
+					userInfo.userName = userInfo.user_name
+				}
+				if (!validatenull(userInfo.tenant_id)) {
+					userInfo.tenantId = userInfo.tenant_id
+				}
+				if (!validatenull(userInfo.dept_id)) {
+					userInfo.deptId = userInfo.dept_id
+				}
+				if (!validatenull(userInfo.role_id)) {
+					userInfo.roleId = userInfo.role_id
+				}
+				if (!validatenull(userInfo.oauth_id)) {
+					userInfo.oauthId = userInfo.oauth_id
+				}
+				userInfo.selectedAreaCode = userInfo?.detail?.areaCode || ''
+				state.userInfo = userInfo
+			}
+			setStore({ name: 'userInfo', content: state.userInfo })
+		},
+		SET_MENU_ALL: (state, menuAll) => {
+			let menu = state.menuAll
+			menuAll.forEach(ele => {
+				let index = menu.findIndex(item => item.path === ele.path)
+				if (index === -1) {
+					menu.push(ele)
+				} else {
+					menu[index] = ele
+				}
+			})
+			state.menuAll = menu
+			setStore({ name: 'menuAll', content: state.menuAll })
+		},
+		SET_MENU_ALL_NULL: state => {
+			state.menuAll = []
+			setStore({ name: 'menuAll', content: state.menuAll })
+		},
+		SET_MENU: (state, menu) => {
+			state.menu = menu
+			setStore({ name: 'menu', content: state.menu })
+		},
+		SET_ROLES: (state, roles) => {
+			state.roles = roles
+		},
+		SET_PERMISSION: (state, permission) => {
+			let result = []
 
-      function getCode(list) {
-        list.forEach(ele => {
-          if (typeof ele === 'object') {
-            const children = ele.children;
-            const code = ele.code;
-            if (children && children.length > 0) {
-              getCode(children);
-            } else {
-              result.push(code);
-            }
-          }
-        });
-      }
+			function getCode(list) {
+				list.forEach(ele => {
+					if (typeof ele === 'object') {
+						const children = ele.children
+						const code = ele.code
+						if (children && children.length > 0) {
+							getCode(children)
+						} else {
+							result.push(code)
+						}
+					}
+				})
+			}
 
-      getCode(permission);
-      state.permission = {};
-      result.forEach(ele => {
-        state.permission[ele] = true;
-      });
-      setStore({ name: 'permission', content: state.permission, type: 'session' });
-    },
-  },
-};
-export default user;
+			getCode(permission)
+			state.permission = {}
+			result.forEach(ele => {
+				state.permission[ele] = true
+			})
+			setStore({ name: 'permission', content: state.permission, type: 'session' })
+		},
+	},
+}
+export default user

--
Gitblit v1.9.3