App.tsx 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import ColFooter from '@/components/col-footer'
  2. import ColHeader from '@/components/col-header'
  3. import { ElConfigProvider, ElDialog } from 'element-plus'
  4. import { zhCn } from '@/helpers/zhCn'
  5. import { defineComponent } from 'vue'
  6. import { RouterView } from 'vue-router'
  7. import Login from './login'
  8. import styles from './App.module.less'
  9. import { getUserInfo, state } from '@/state'
  10. import silder from '@/components/silder'
  11. // 加载样式放到main文件里面会导致打包卡顿,打包时间过长
  12. import '../style/index.css'
  13. import 'normalize.css'
  14. import 'element-plus/dist/index.css'
  15. import 'vue3-lottie/dist/style.css'
  16. export default defineComponent({
  17. components: { silder },
  18. name: 'App',
  19. async created() {
  20. // console.log('user start')
  21. try {
  22. if (state.user.data?.userId) {
  23. // 获取用户信息
  24. await getUserInfo()
  25. }
  26. } catch {}
  27. // console.log('user end')
  28. },
  29. render() {
  30. return (
  31. <>
  32. {/* 263.5 footer, 70 header */}
  33. <ColHeader />
  34. <div
  35. style={{
  36. minHeight: 'calc(100vh - 422px)',
  37. background: '#fff'
  38. }}
  39. >
  40. <ElConfigProvider locale={zhCn} message={{ max: 1 }}>
  41. <RouterView></RouterView>
  42. </ElConfigProvider>
  43. </div>
  44. <silder></silder>
  45. <ColFooter />
  46. {/* 登录弹窗 */}
  47. <div class={styles.loginContainer}>
  48. <ElDialog
  49. modelValue={state.loginPopupStatus}
  50. onUpdate:modelValue={val => (state.loginPopupStatus = val)}
  51. closeOnClickModal={false}
  52. closeOnPressEscape={false}
  53. >
  54. {state.loginPopupStatus && (
  55. <Login
  56. onClose={() => {
  57. clearTimeout(state.loginPopupTimer)
  58. state.loginPopupStatus = false
  59. }}
  60. />
  61. )}
  62. </ElDialog>
  63. </div>
  64. </>
  65. )
  66. }
  67. })