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

57 lines
1.3 KiB
Vue
Raw Normal View History

2025-06-16 14:42:26 +08:00
<template>
<a-config-provider :locale="zhCN" size="small" :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-06-16 14:42:26 +08:00
</a-config-provider>
</template>
2025-07-18 17:10:12 +08:00
<script setup>
import { useUserStore } from '@/stores';
import { getUserEnterpriseInfo } 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-06-16 14:42:26 +08:00
import zhCN from '@arco-design/web-vue/es/locale/lang/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();
const redTheme = {
token: {
colorPrimary: '#6d4cfe', // 主色
colorLink: '#f5222d', // 链接色
},
};
2025-07-07 18:17:31 +08:00
const init = async () => {
2025-07-08 16:55:04 +08:00
const { isLogin, getUserInfo } = userStore;
2025-07-07 18:17:31 +08:00
if (isLogin) {
2025-07-08 16:55:04 +08:00
await getUserInfo(); // 初始化用户信息
await getUserEnterpriseInfo();
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>