index.tsx 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. import React, { useState } from 'react'
  2. import styles from './index.module.scss'
  3. import classNames from 'classnames'
  4. import { useSelector } from 'react-redux'
  5. import { RootState } from '@/store'
  6. import { toEchPageFu } from './data'
  7. /**
  8. * @param activeTab 0:一碑两面 1:一碑万象 2:无尽未竟
  9. */
  10. function MenuSider({ activeTab }: { activeTab: number }) {
  11. const { myLangue, myData } = useSelector((state: RootState) => state.A0Layout)
  12. const [isShowMenu, setIsShowMenu] = useState(false)
  13. const byzhClick = (activeTab: number) => {
  14. window.location.replace(
  15. activeTab === 0
  16. ? '#/byzh?fromPath=yblm'
  17. : activeTab === 1
  18. ? '#/byzh?fromPath=ybwx'
  19. : '#/byzh?fromPath=wjwj'
  20. )
  21. }
  22. return (
  23. <>
  24. <div
  25. className={classNames(myLangue === 'EN' ? styles.menuEn : '', styles.menu)}
  26. onClick={() => setIsShowMenu(true)}
  27. >
  28. <img src={require('@/assets/img/btn_menu.png')} alt='' />
  29. </div>
  30. <div
  31. className={classNames(
  32. styles.menuSider,
  33. isShowMenu ? 'show' : '',
  34. myLangue === 'EN' ? styles.menuSiderEn : ''
  35. )}
  36. onClick={() => setIsShowMenu(false)}
  37. >
  38. <div className='sider' onClick={e => e.stopPropagation()}>
  39. <img
  40. onClick={() => setIsShowMenu(false)}
  41. src={require(`@/assets/img/menuSiderBtn.png`)}
  42. alt=''
  43. />
  44. <div className='siderContent'>
  45. <div
  46. className={`tab ${activeTab === 0 ? 'tabAc' : ''}`}
  47. onClick={() => {
  48. window.location.replace('#/yblm')
  49. }}
  50. >
  51. <div className='txt songFontc'>{myData.baseInfo[0].title}</div>
  52. <div className={`bottomLine`}>
  53. <img
  54. src={require(`@/assets/img/menu_item${activeTab === 0 ? '_ac.png' : '.png'}`)}
  55. alt=''
  56. />
  57. </div>
  58. </div>
  59. <div
  60. className={`tab ${activeTab === 1 ? 'tabAc' : ''}`}
  61. onClick={() => {
  62. window.location.replace('#/ybwx')
  63. }}
  64. >
  65. <div className='txt songFontc'>{myData.baseInfo[1].title}</div>
  66. <div className={`bottomLine`}>
  67. <img
  68. src={require(`@/assets/img/menu_item${activeTab === 1 ? '_ac.png' : '.png'}`)}
  69. alt=''
  70. />
  71. </div>
  72. </div>
  73. <div
  74. className={`tab ${activeTab === 2 ? 'tabAc' : ''}`}
  75. onClick={() => {
  76. window.location.replace('#/wjwj')
  77. }}
  78. >
  79. <div className='txt songFontc'>{myData.baseInfo[2].title}</div>
  80. <div className={`bottomLine`}>
  81. <img
  82. src={require(`@/assets/img/menu_item${activeTab === 2 ? '_ac.png' : '.png'}`)}
  83. alt=''
  84. />
  85. </div>
  86. </div>
  87. <div className='icon'>
  88. <div className='paint' onClick={() => byzhClick(activeTab)}>
  89. <img src={require('@/assets/img/icon_paint.png')} alt='' />
  90. <div className='txt'>
  91. {myLangue === 'EN' ? 'Stele Shadow Intelligence Mapping' : '碑影智绘'}
  92. </div>
  93. </div>
  94. <div className='knowledge'>
  95. <img src={require('@/assets/img/icon_knowledge.png')} alt='' />
  96. <div className='txt' onClick={() => toEchPageFu()}>
  97. {myLangue === 'EN' ? 'mapping knowledge domain' : '展览图谱'}
  98. </div>
  99. </div>
  100. {/* <div className='poster'>
  101. <img src={require('@/assets/img/icon_poster.png')} alt='' />
  102. <div className='txt'>分享海报</div>
  103. </div> */}
  104. </div>
  105. </div>
  106. </div>
  107. </div>
  108. </>
  109. )
  110. }
  111. const MemoMenuSider = React.memo(MenuSider)
  112. export default MemoMenuSider