fetch(modify):修改bug
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 5m20s
All checks were successful
构建并部署前端到测试环境 / build-and-deploy (push) Successful in 5m20s
This commit is contained in:
@@ -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'
|
||||
]
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user