import ColFooter from '@/components/col-footer' import ColHeader from '@/components/col-header' import { ElConfigProvider, ElDialog } from 'element-plus' import { zhCn } from '@/helpers/zhCn' import { defineComponent } from 'vue' import { RouterView } from 'vue-router' import Login from './login' import styles from './App.module.less' import { getUserInfo, state } from '@/state' import silder from '@/components/silder' // 加载样式放到main文件里面会导致打包卡顿,打包时间过长 import '../style/index.css' import 'normalize.css' import 'element-plus/dist/index.css' import 'vue3-lottie/dist/style.css' import { useSubjectClearly } from '@/helpers/hooks' export default defineComponent({ components: { silder }, name: 'App', async created() { // console.log('user start') try { if (state.user.data?.userId) { // 获取用户信息 await getUserInfo() } else { useSubjectClearly() } } catch {} // console.log('user end') }, render() { return ( <> {/* 263.5 footer, 70 header */} <ColHeader /> <div style={{ minHeight: 'calc(100vh - 422px)', background: '#fff' }} > <ElConfigProvider locale={zhCn} message={{ max: 1 }}> <RouterView></RouterView> </ElConfigProvider> </div> <silder></silder> <ColFooter /> {/* 登录弹窗 */} <div class={styles.loginContainer}> <ElDialog modelValue={state.loginPopupStatus} onUpdate:modelValue={val => (state.loginPopupStatus = val)} closeOnClickModal={false} closeOnPressEscape={false} > {state.loginPopupStatus && ( <Login onClose={() => { clearTimeout(state.loginPopupTimer) state.loginPopupStatus = false }} /> )} </ElDialog> </div> </> ) } })