index.tsx 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. import React, { useCallback, useEffect, useRef, useState } from 'react'
  2. import styles from './index.module.scss'
  3. import { Button } from 'antd'
  4. import MyTable from '@/components/MyTable'
  5. import { useDispatch, useSelector } from 'react-redux'
  6. import { RootState } from '@/store'
  7. import { B1_APIgetList } from '@/store/action/B1exhibit'
  8. import { B1tableC } from '@/utils/tableData'
  9. import B1edit from './B1edit'
  10. import { A2_APIgetConfig, A2_APIsetConfig } from '@/store/action/A2orderSet'
  11. import { MessageFu } from '@/utils/message'
  12. import A2NoTime from '../A2orderSet/A2NoTime'
  13. import A2xuZhi from '../A2orderSet/A2xuZhi'
  14. function B1exhibit() {
  15. const dispatch = useDispatch()
  16. const getListFu = useCallback(() => {
  17. dispatch(B1_APIgetList())
  18. }, [dispatch])
  19. useEffect(() => {
  20. getListFu()
  21. }, [getListFu])
  22. const { list } = useSelector((state: RootState) => state.B1exhibit)
  23. // 编辑
  24. const [edit, setEdit] = useState(false)
  25. // 1111111111111不可预约日期--------------开始
  26. const noListRef = useRef('')
  27. const getNoListFu = useCallback(async () => {
  28. const res = await A2_APIgetConfig('cms/configExhibition/getConfig', 15)
  29. if (res.code === 0) {
  30. noListRef.current = res.data.rtf
  31. }
  32. }, [])
  33. useEffect(() => {
  34. getNoListFu()
  35. }, [getNoListFu])
  36. const [noTxt, setNoTxt] = useState('')
  37. // 点击提交或者取消
  38. const A2NoBtn = useCallback(
  39. async (val: string[] | null) => {
  40. let str = ''
  41. if (val) {
  42. const arr = val.map(v => v.replace('-', '年').replace('-', '月') + '日')
  43. str = arr.join(',')
  44. }
  45. const res = await A2_APIsetConfig('cms/configExhibition/setConfig', {
  46. id: 15,
  47. rtf: str
  48. })
  49. if (res.code === 0) {
  50. MessageFu.success('设置不可预约日期成功!')
  51. getNoListFu()
  52. setNoTxt('')
  53. }
  54. },
  55. [getNoListFu]
  56. )
  57. // 1111111111111不可预约日期--------------结束
  58. // 2222222222------------- 预约须知---------开始
  59. // 17:场馆介绍 16:预约须知
  60. const [configId, setConfigId] = useState(0)
  61. // 2222222222------------- 预约须知---------结束
  62. return (
  63. <div className={styles.B1exhibit}>
  64. <div className='pageTitle'>展馆预约设置{edit ? ' - 编辑' : null}</div>
  65. <div className='B1top'>
  66. <Button type='primary' onClick={() => setNoTxt(noListRef.current || '空')}>
  67. 设置不可预约日期
  68. </Button>
  69. &emsp;
  70. <Button type='primary' onClick={() => setConfigId(17)}>
  71. 场馆介绍设置
  72. </Button>
  73. &emsp;
  74. <Button type='primary' onClick={() => setConfigId(16)}>
  75. 设置预约需知
  76. </Button>
  77. &emsp;
  78. <Button type='primary' onClick={() => setEdit(true)}>
  79. 编辑
  80. </Button>
  81. </div>
  82. <MyTable list={list} columnsTemp={B1tableC} pagingInfo={false} isNull='闭馆' />
  83. {/* 编辑 */}
  84. {edit ? (
  85. <B1edit list={list} closeFu={() => setEdit(false)} editTableFu={getListFu} />
  86. ) : null}
  87. {/* 不可预约日期设置 */}
  88. {noTxt ? (
  89. <A2NoTime
  90. num={20}
  91. baseTime={noTxt}
  92. editFu={val => A2NoBtn(val)}
  93. closeFu={() => setNoTxt('')}
  94. />
  95. ) : null}
  96. {/*预约须知 */}
  97. {configId ? (
  98. <A2xuZhi
  99. setSrc='cms/configExhibition/setConfig'
  100. getSrc='cms/configExhibition/getConfig'
  101. sId={configId as 16}
  102. closeFu={() => setConfigId(0)}
  103. />
  104. ) : null}
  105. </div>
  106. )
  107. }
  108. const MemoB1exhibit = React.memo(B1exhibit)
  109. export default MemoB1exhibit