index.tsx 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import React, { useState } from 'react'
  2. import styles from './index.module.scss'
  3. import classNames from 'classnames'
  4. import { isPc } from '@/utils/http'
  5. /**
  6. * @param activeTab 0:一碑两面 1:一碑万象 2:无尽未竟
  7. */
  8. function MenuSider({ activeTab }: { activeTab: number }) {
  9. const [isShowMenu, setIsShowMenu] = useState(false)
  10. return (
  11. <>
  12. <div
  13. className={classNames(isPc ? '' : styles.menuMo, styles.menu)}
  14. onClick={() => setIsShowMenu(true)}
  15. >
  16. <img src={require('@/assets/img/btn_menu.png')} alt='' />
  17. </div>
  18. <div
  19. className={classNames(
  20. styles.menuSider,
  21. isShowMenu ? 'show' : '',
  22. isPc ? '' : styles.menuSiderMo
  23. )}
  24. >
  25. <div className='sider'>
  26. <img
  27. onClick={() => setIsShowMenu(false)}
  28. src={require(`@/assets/img/menuSiderBtn.png`)}
  29. alt=''
  30. />
  31. <div className='siderContent'>
  32. <div
  33. className={`tab ${activeTab === 0 ? 'tabAc' : ''}`}
  34. onClick={() => window.location.replace('#/yblm')}
  35. >
  36. <div className='txt'>初识奇碑</div>
  37. <div className={`bottomLine`}>
  38. <img
  39. src={require(`@/assets/img/menu_item${activeTab === 0 ? '_ac.png' : '.png'}`)}
  40. alt=''
  41. />
  42. </div>
  43. </div>
  44. <div
  45. className={`tab ${activeTab === 1 ? 'tabAc' : ''}`}
  46. onClick={() => window.location.replace('#/ybwx')}
  47. >
  48. <div className='txt'>融合之光</div>
  49. <div className={`bottomLine`}>
  50. <img
  51. src={require(`@/assets/img/menu_item${activeTab === 1 ? '_ac.png' : '.png'}`)}
  52. alt=''
  53. />
  54. </div>
  55. </div>
  56. <div
  57. className={`tab ${activeTab === 2 ? 'tabAc' : ''}`}
  58. onClick={() => window.location.replace('#/wjwj')}
  59. >
  60. <div className='txt'>寻踪叩问</div>
  61. <div className={`bottomLine`}>
  62. <img
  63. src={require(`@/assets/img/menu_item${activeTab === 2 ? '_ac.png' : '.png'}`)}
  64. alt=''
  65. />
  66. </div>
  67. </div>
  68. <div className='icon'>
  69. <div className='paint'>
  70. <img src={require('@/assets/img/icon_paint.png')} alt='' />
  71. <div className='txt'>碑影智绘</div>
  72. </div>
  73. <div className='knowledge'>
  74. <img src={require('@/assets/img/icon_knowledge.png')} alt='' />
  75. <div className='txt'>知识图谱</div>
  76. </div>
  77. <div className='poster'>
  78. <img src={require('@/assets/img/icon_poster.png')} alt='' />
  79. <div className='txt'>分享海报</div>
  80. </div>
  81. </div>
  82. </div>
  83. </div>
  84. </div>
  85. </>
  86. )
  87. }
  88. const MemoMenuSider = React.memo(MenuSider)
  89. export default MemoMenuSider