Files
lingji-work-fe/src/App.vue

59 lines
1.3 KiB
Vue
Raw Normal View History

2025-06-16 14:42:26 +08:00
<template>
2025-09-05 17:45:12 +08:00
<ConfigProvider :locale="zhCN" :theme="redTheme">
2025-08-07 18:05:27 +08:00
<router-view v-if="$route.path === '/login' || ['ExploreList', 'ExploreDetail'].includes($route.name)" />
2025-06-17 11:18:39 +08:00
<LayoutBasic v-else />
2025-09-05 17:45:12 +08:00
</ConfigProvider>
2025-06-16 14:42:26 +08:00
</template>
2025-07-18 17:10:12 +08:00
<script setup>
import { useUserStore } from '@/stores';
2025-08-28 12:03:52 +08:00
import { useChatStore } from '@/stores/modules/chat';
2025-08-28 12:03:52 +08:00
import { initApp } from '@/utils/user';
2025-07-18 17:10:12 +08:00
import { useSidebarStore } from '@/stores/modules/side-bar';
2025-07-07 18:17:31 +08:00
2025-09-05 17:45:12 +08:00
import { ConfigProvider } from 'ant-design-vue';
import zhCN from 'ant-design-vue/es/locale/zh_CN';
2025-07-07 18:17:31 +08:00
2025-06-23 23:59:08 -04:00
const userStore = useUserStore();
const route = useRoute();
2025-07-18 17:10:12 +08:00
const sidebarStore = useSidebarStore();
2025-08-28 12:03:52 +08:00
const chatStore = useChatStore();
const redTheme = {
token: {
colorPrimary: '#6d4cfe', // 主色
colorLink: '#f5222d', // 链接色
},
};
2025-07-07 18:17:31 +08:00
const init = async () => {
2025-08-28 12:03:52 +08:00
const { isLogin } = userStore;
2025-07-07 18:17:31 +08:00
if (isLogin) {
2025-08-28 12:03:52 +08:00
await initApp();
2025-07-18 17:10:12 +08:00
sidebarStore.startUnreadInfoPolling();
} else {
sidebarStore.stopUnreadInfoPolling();
}
};
2025-06-16 14:42:26 +08:00
onMounted(() => {
init();
2025-06-16 14:42:26 +08:00
// 监听全局未处理错误
window.addEventListener('unhandledrejection', (event) => {
event.preventDefault();
console.log(event);
console.error(`发现catch报错${event.reason}`);
});
});
2025-07-18 17:10:12 +08:00
onUnmounted(() => {
2025-08-14 09:49:55 +08:00
sidebarStore.stopUnreadInfoPolling();
2025-07-18 17:10:12 +08:00
});
2025-06-16 14:42:26 +08:00
</script>
<style lang="scss">
@import './styles/index.scss';
</style>