fetch(modify):修改bug
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 5m20s

This commit is contained in:
sexygoat
2026-01-31 16:33:21 +08:00
parent 16d53709ef
commit ecb79dae43
20 changed files with 1369 additions and 649 deletions

View File

@@ -24,11 +24,15 @@ export const useUserStore = defineStore(
const accessToken = ref('')
const refreshToken = ref('')
const permissions = ref<string[]>([])
const menus = ref<any[]>([])
const buttons = ref<string[]>([])
const getUserInfo = computed(() => info.value)
const getSettingState = computed(() => useSettingStore().$state)
const getWorktabState = computed(() => useWorktabStore().$state)
const getPermissions = computed(() => permissions.value)
const getMenus = computed(() => menus.value)
const getButtons = computed(() => buttons.value)
const setUserInfo = (newInfo: UserInfo) => {
info.value = newInfo
@@ -38,6 +42,14 @@ export const useUserStore = defineStore(
permissions.value = perms
}
const setMenus = (menuList: any[]) => {
menus.value = menuList
}
const setButtons = (buttonList: string[]) => {
buttons.value = buttonList
}
// 检查是否是超级管理员
const isSuperAdmin = computed(() => info.value.user_type === 1)
@@ -62,6 +74,13 @@ export const useUserStore = defineStore(
return perms.every((perm) => permissions.value.includes(perm))
}
// 检查是否有某个按钮权限
const hasButton = (buttonCode: string): boolean => {
// 超级管理员拥有所有权限
if (isSuperAdmin.value) return true
return buttons.value.includes(buttonCode)
}
const setLoginStatus = (status: boolean) => {
isLogin.value = status
}
@@ -105,6 +124,8 @@ export const useUserStore = defineStore(
accessToken.value = ''
refreshToken.value = ''
permissions.value = []
menus.value = []
buttons.value = []
useWorktabStore().opened = []
sessionStorage.removeItem('iframeRoutes')
resetRouterState(router)
@@ -122,16 +143,23 @@ export const useUserStore = defineStore(
accessToken,
refreshToken,
permissions,
menus,
buttons,
getUserInfo,
getSettingState,
getWorktabState,
getPermissions,
getMenus,
getButtons,
isSuperAdmin,
setUserInfo,
setPermissions,
setMenus,
setButtons,
hasPermission,
hasAnyPermission,
hasAllPermissions,
hasButton,
setLoginStatus,
setLanguage,
setSearchHistory,
@@ -145,8 +173,18 @@ export const useUserStore = defineStore(
persist: {
key: 'user',
storage: localStorage,
// 只持久化 token 和登录状态,用户信息每次刷新都从接口获取
paths: ['accessToken', 'refreshToken', 'isLogin', 'language', 'isLock', 'lockPassword']
paths: [
'accessToken',
'refreshToken',
'isLogin',
'language',
'isLock',
'lockPassword',
'info',
'permissions',
'menus',
'buttons'
]
}
}
)