Files
lingji-work-fe/src/utils/user.ts
2025-09-19 09:40:06 +08:00

79 lines
2.4 KiB
TypeScript

/*
* @Author: RenXiaoDong
* @Date: 2025-06-20 05:32:19
*/
import router from '@/router';
import { useUserStore } from '@/stores';
import { useEnterpriseStore } from '@/stores/modules/enterprise';
import { useSidebarStore } from '@/stores/modules/side-bar';
import { useChatStore } from '@/stores/modules/chat';
// 登录
export function goUserLogin(query?: any) {
// console.log('goUserLogin', router)
router.push({ name: 'UserLogin', query });
}
// 首页
export function handleUserHome(params?: any) {
const enterpriseStore = useEnterpriseStore();
// 已开通
if (enterpriseStore.isOpenEnterprise) {
router.push({ name: 'Home', params });
} else {
router.push({ name: 'Trial' });
}
}
export const getUserEnterpriseInfo = async () => {
const enterpriseStore = useEnterpriseStore();
// const sidebarStore = useSidebarStore();
// const userStore = useUserStore();
await enterpriseStore.getEnterpriseInfo(); // 初始化企业信息
// sidebarStore.getUserNavbarMenuList(); // 初始化navbar菜单
// userStore.getUserAllowAccessRoutes(); // 初始化允许访问的路由
};
export async function initApp() {
const userStore = useUserStore();
const chatStore = useChatStore();
const sidebarStore = useSidebarStore();
const enterpriseStore = useEnterpriseStore();
await userStore.getUserInfo(); // 初始化用户信息
await getUserEnterpriseInfo(); // 初始化企业信息
if (enterpriseStore.isOpenEnterprise) {
chatStore.getAgentInfo(); // 初始化智能体信息
sidebarStore.startUnreadInfoPolling(); // 初始化未读信息
}
}
// 登录处理
export async function handleUserLogin() {
await initApp();
handleUserHome();
}
// 登出处理
export function handleUserLogout() {
goUserLogin();
const userStore = useUserStore();
const enterpriseStore = useEnterpriseStore();
const sidebarStore = useSidebarStore();
const chatStore = useChatStore();
chatStore.clearAgentInfo(); // 清除智能体信息
userStore.clearUserInfo(); // 清除用户信息
userStore.clearToken(); // 清除token
enterpriseStore.clearUserEnterpriseInfo(); // 清除企业信息
// userStore.clearUserAllowAccessRoutes(); // 清除权限路由列表
sidebarStore.stopUnreadInfoPolling(); // 清除未读消息
sidebarStore.clearActiveMenuKey(); // 清除active菜单id
sidebarStore.clearMenuCollapse(); // 清除active菜单id
}