feat(app): 侧边栏刷新按钮升级为清缓存+全量重拉(用户信息/菜单/管理员状态),避免旧缓存导致安装状态显示错乱
This commit is contained in:
1 parent
e654d147db
commit
2746fe4ce9
1 file changed
+9
-2
@@ -128,14 +128,21 @@ function openRoleSwitcher(): void {
|
||||
roleSwitcherVisible.value = true
|
||||
}
|
||||
|
||||
/** 强制刷新菜单(应用安装/卸载/菜单调整后手动同步侧边栏) */
|
||||
/** 强制刷新菜单(应用安装/卸载/菜单调整后手动同步侧边栏)
|
||||
* 先清 localStorage 缓存(menus/userInfo/roles),再重新拉取用户信息+菜单+管理员状态,
|
||||
* 一次点击彻底同步,避免旧缓存导致"已安装/未安装"显示错乱。 */
|
||||
const menuRefreshing = ref(false)
|
||||
async function refreshMenus(): Promise<void> {
|
||||
if (menuRefreshing.value) return
|
||||
menuRefreshing.value = true
|
||||
try {
|
||||
// 清除本地缓存(user store 内部方法:清内存态 + localStorage)
|
||||
userStore.reset()
|
||||
// 重新拉取用户信息、菜单、管理员状态(reset 后 isLoggedIn=false,需重新获取)
|
||||
await userStore.fetchUserInfo()
|
||||
await userStore.fetchMenus()
|
||||
ElMessage.success('菜单已刷新')
|
||||
await userStore.fetchAdminCheck()
|
||||
ElMessage.success('已清缓存并刷新菜单')
|
||||
} catch {
|
||||
ElMessage.error('菜单刷新失败,请重试')
|
||||
} finally {
|
||||
|
||||
Reference in new issue
Block a user