App.tsx 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  1. import '@/assets/styles/base.css'
  2. // 关于路由
  3. import React, { useCallback, useEffect } from 'react'
  4. import { Router, Route, Switch } from 'react-router-dom'
  5. import history from './utils/history'
  6. import AuthRoute from './components/AuthRoute'
  7. import SpinLoding from './components/SpinLoding'
  8. import AsyncSpinLoding from './components/AsyncSpinLoding'
  9. import { Image } from 'antd'
  10. import { useSelector } from 'react-redux'
  11. import store, { RootState } from './store'
  12. import UpAsyncLoding from './components/UpAsyncLoding'
  13. import MessageCom from './components/Message'
  14. import LookDom from './components/LookDom'
  15. const A1list = React.lazy(() => import('./pages/A1list'))
  16. const A3code = React.lazy(() => import('./pages/A3code'))
  17. const A3codeSucc = React.lazy(() => import('./pages/A3code/A3codeSucc'))
  18. const Login = React.lazy(() => import('./pages/Login'))
  19. export default function App() {
  20. // 从仓库中获取查看图片的信息
  21. const lookBigImg = useSelector((state: RootState) => state.A0Layout.lookBigImg)
  22. const rootDomFu = useCallback(() => {
  23. const rootDom: HTMLDivElement = document.querySelector('#root')!
  24. if (rootDom) {
  25. rootDom.style.height = window.innerHeight + 'px'
  26. }
  27. }, [])
  28. useEffect(() => {
  29. window.addEventListener('resize', rootDomFu, true)
  30. rootDomFu()
  31. }, [rootDomFu])
  32. return (
  33. <>
  34. {/* 关于路由 */}
  35. <Router history={history}>
  36. <React.Suspense fallback={<SpinLoding />}>
  37. <Switch>
  38. <Route path='/login' component={Login} />
  39. <AuthRoute path='/code' component={A3code} />
  40. <AuthRoute path='/codeSucc/:id' component={A3codeSucc} />
  41. <AuthRoute path='/' component={A1list} />
  42. </Switch>
  43. </React.Suspense>
  44. </Router>
  45. {/* 发送请求的加载组件 */}
  46. <AsyncSpinLoding />
  47. {/* 所有图片点击预览查看大图 */}
  48. <Image
  49. preview={{
  50. visible: lookBigImg.show,
  51. src: lookBigImg.url,
  52. onVisibleChange: value => {
  53. // 清除仓库信息
  54. store.dispatch({
  55. type: 'layout/lookBigImg',
  56. payload: { url: '', show: false }
  57. })
  58. }
  59. }}
  60. />
  61. {/* 上传附件的进度条元素 */}
  62. <UpAsyncLoding />
  63. {/* 查看视频音频 */}
  64. <LookDom />
  65. {/* antd 轻提示 ---兼容360浏览器 */}
  66. <MessageCom />
  67. </>
  68. )
  69. }