|
|
@@ -9,6 +9,8 @@ export const useUserStore = defineStore('user', () => {
|
|
|
const refreshToken = ref('')
|
|
|
const userInfo = ref(null)
|
|
|
const isLoading = ref(false)
|
|
|
+ const menuAll = ref(false)
|
|
|
+ const menuCodes = ref([])
|
|
|
|
|
|
function normalizeUserInfo(raw) {
|
|
|
if (!raw || typeof raw !== 'object') return raw || null
|
|
|
@@ -68,6 +70,34 @@ export const useUserStore = defineStore('user', () => {
|
|
|
uni.setStorageSync(USER_INFO_KEY, userInfo.value)
|
|
|
}
|
|
|
|
|
|
+ async function fetchMenuCodes() {
|
|
|
+ if (!token.value || !String(token.value).trim()) {
|
|
|
+ menuAll.value = false
|
|
|
+ menuCodes.value = []
|
|
|
+ return
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ const res = await request({
|
|
|
+ url: AUTH_API.MENU_CODES,
|
|
|
+ method: 'GET'
|
|
|
+ })
|
|
|
+ const result = parseResponseJson(res)
|
|
|
+ if (!result || result.code !== 200 || !result.data) {
|
|
|
+ menuAll.value = false
|
|
|
+ menuCodes.value = []
|
|
|
+ return
|
|
|
+ }
|
|
|
+ const data = result.data
|
|
|
+ menuAll.value = !!(data.all || data.isSuperAdmin)
|
|
|
+ menuCodes.value = Array.isArray(data.menuCodes)
|
|
|
+ ? data.menuCodes.map((c) => String(c || '').trim()).filter(Boolean)
|
|
|
+ : []
|
|
|
+ } catch {
|
|
|
+ menuAll.value = false
|
|
|
+ menuCodes.value = []
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
async function login(params) {
|
|
|
isLoading.value = true
|
|
|
try {
|
|
|
@@ -84,6 +114,7 @@ export const useUserStore = defineStore('user', () => {
|
|
|
refreshToken: result.data.refreshToken,
|
|
|
userInfo: result.data.userInfo
|
|
|
})
|
|
|
+ await fetchMenuCodes()
|
|
|
return true
|
|
|
}
|
|
|
uni.showToast({ title: (result && result.message) || '登录失败', icon: 'none' })
|
|
|
@@ -106,6 +137,8 @@ export const useUserStore = defineStore('user', () => {
|
|
|
uni.removeStorageSync(TOKEN_KEY)
|
|
|
uni.removeStorageSync(REFRESH_TOKEN_KEY)
|
|
|
uni.removeStorageSync(USER_INFO_KEY)
|
|
|
+ menuAll.value = false
|
|
|
+ menuCodes.value = []
|
|
|
}
|
|
|
|
|
|
async function logout() {
|
|
|
@@ -158,6 +191,8 @@ export const useUserStore = defineStore('user', () => {
|
|
|
refreshToken,
|
|
|
userInfo,
|
|
|
isLoading,
|
|
|
+ menuAll,
|
|
|
+ menuCodes,
|
|
|
isLoggedIn,
|
|
|
userRole,
|
|
|
homePath,
|
|
|
@@ -167,6 +202,7 @@ export const useUserStore = defineStore('user', () => {
|
|
|
clearLoginInfo,
|
|
|
navigateToHome,
|
|
|
updateUserInfo,
|
|
|
- refreshUserInfo
|
|
|
+ refreshUserInfo,
|
|
|
+ fetchMenuCodes
|
|
|
}
|
|
|
})
|