feat(aihr): 重构运营后台与租户知识治理

- 重构运营总览、侧栏和内容运营工作台\n- 增加大喇叭、成果审核与运营统计链路\n- 补齐租户、知识空间、分类和知识维护闭环\n- 加固标签页租户上下文、停用租户写保护与迁移预检
This commit is contained in:
2026-07-23 01:24:22 +08:00
parent 333c365c6f
commit 163b08ecfe
94 changed files with 8610 additions and 1114 deletions
+11 -5
View File
@@ -3,6 +3,7 @@ import { getToken, removeToken, setToken } from '@/utils/auth';
import { login as loginApi, logout as logoutApi, getInfo as getUserInfo } from '@/api/login';
import { LoginData } from '@/api/types';
import defAva from '@/assets/images/profile.jpg';
import { clearDynamicTenantContextState } from '@/utils/tenant-context-state';
import { defineStore } from 'pinia';
import { ref } from 'vue';
@@ -25,6 +26,7 @@ export const useUserStore = defineStore('user', () => {
const [err, res] = await to(loginApi(userInfo));
if (res) {
const data = res.data;
clearDynamicTenantContextState();
setToken(data.access_token);
token.value = data.access_token;
return Promise.resolve();
@@ -59,11 +61,15 @@ export const useUserStore = defineStore('user', () => {
// 注销
const logout = async (): Promise<void> => {
await logoutApi();
token.value = '';
roles.value = [];
permissions.value = [];
removeToken();
try {
await logoutApi();
} finally {
token.value = '';
roles.value = [];
permissions.value = [];
removeToken();
clearDynamicTenantContextState();
}
};
const setAvatar = (value: string) => {