App.tsx 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import ColFooter from '@/components/col-footer'
  2. import ColHeader from '@/components/col-header'
  3. import { ElDialog } from 'element-plus'
  4. import { defineComponent } from 'vue'
  5. import { RouterView } from 'vue-router'
  6. import Login from './login'
  7. import styles from './App.module.less'
  8. import { state } from '@/state'
  9. import { getAuth, getUserType } from '@/helpers/utils'
  10. import request from '@/helpers/request'
  11. export default defineComponent({
  12. name: 'App',
  13. async mounted() {
  14. const token = getAuth()
  15. const userType = getUserType()
  16. // 判断是否有token,token和userType 判断是否登录
  17. if (!token) {
  18. return
  19. }
  20. try {
  21. const url =
  22. userType === 'TEACHER'
  23. ? '/api-website/teacher/queryUserInfo'
  24. : '/api-website/student/queryUserInfo'
  25. const res = await request.get(url)
  26. console.log(res)
  27. } catch {}
  28. },
  29. render() {
  30. return (
  31. <>
  32. <ColHeader />
  33. <RouterView></RouterView>
  34. <ColFooter />
  35. {/* 登录弹窗 */}
  36. <div class={styles.loginContainer}>
  37. <ElDialog
  38. modelValue={state.loginPopupStatus}
  39. onUpdate:modelValue={val => (state.loginPopupStatus = val)}
  40. closeOnClickModal={false}
  41. closeOnPressEscape={false}
  42. >
  43. <Login
  44. onClose={() => {
  45. clearTimeout(state.loginPopupTimer)
  46. state.loginPopupStatus = false
  47. }}
  48. />
  49. </ElDialog>
  50. </div>
  51. </>
  52. )
  53. }
  54. })