App.tsx 2.4 KB

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