App.tsx 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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. export default defineComponent({
  12. components: { silder },
  13. name: 'App',
  14. async created() {
  15. // console.log('user start')
  16. try {
  17. if (state.user.data?.userId) {
  18. // 获取用户信息
  19. await getUserInfo()
  20. }
  21. } catch {}
  22. // console.log('user end')
  23. },
  24. render() {
  25. return (
  26. <>
  27. {/* 263.5 footer, 70 header */}
  28. <ColHeader />
  29. <div
  30. style={{
  31. minHeight: 'calc(100vh - 422px)',
  32. background: '#fff'
  33. }}
  34. >
  35. <ElConfigProvider locale={zhCn} message={{ max: 1 }}>
  36. <RouterView></RouterView>
  37. </ElConfigProvider>
  38. </div>
  39. <silder></silder>
  40. <ColFooter />
  41. {/* 登录弹窗 */}
  42. <div class={styles.loginContainer}>
  43. <ElDialog
  44. modelValue={state.loginPopupStatus}
  45. onUpdate:modelValue={val => (state.loginPopupStatus = val)}
  46. closeOnClickModal={false}
  47. closeOnPressEscape={false}
  48. >
  49. {state.loginPopupStatus && (
  50. <Login
  51. onClose={() => {
  52. clearTimeout(state.loginPopupTimer)
  53. state.loginPopupStatus = false
  54. }}
  55. />
  56. )}
  57. </ElDialog>
  58. </div>
  59. </>
  60. )
  61. }
  62. })