index.tsx 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209
  1. import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react'
  2. import styles from './index.module.scss'
  3. import { Button, Input, Select } from 'antd'
  4. import { D1GselectNum, D1GselectSta } from './data'
  5. import { TypeD1Gform } from './type'
  6. import MyTable from '@/components/MyTable'
  7. import { D1GtableC } from '@/utils/tableData'
  8. import Y1cathet from '@/pages/Y_goodsDetails/Y1cathet'
  9. import history from '@/utils/history'
  10. import classNames from 'classnames'
  11. const baseFormData: TypeD1Gform = {
  12. pageSize: 10,
  13. pageNum: 1,
  14. aaaa: '',
  15. bbbb: '',
  16. cccc: '',
  17. dddd: ''
  18. }
  19. // 待完善 没有接入后端
  20. type Props = {
  21. lookData: string[]
  22. }
  23. function D1goods({ lookData }: Props) {
  24. useEffect(() => {
  25. console.log('获取参数', lookData)
  26. }, [lookData])
  27. const [formData, setFormData] = useState(baseFormData)
  28. const formDataRef = useRef(baseFormData)
  29. useEffect(() => {
  30. formDataRef.current = formData
  31. }, [formData])
  32. // 点击搜索的 时间戳
  33. const [timeKey, setTimeKey] = useState(0)
  34. // 点击搜索
  35. const clickSearch = useCallback(() => {
  36. setFormData({ ...formData, pageNum: 1 })
  37. setTimeout(() => {
  38. setTimeKey(Date.now())
  39. }, 50)
  40. }, [formData])
  41. // 封装发送请求的函数
  42. const getListFu = useCallback(() => {
  43. console.log('发送请求', formDataRef.current)
  44. }, [])
  45. useEffect(() => {
  46. getListFu()
  47. }, [getListFu, timeKey])
  48. // 输入框的改变
  49. const txtChangeFu = useCallback(
  50. (txt: string, key: 'bbbb' | 'cccc') => {
  51. setFormData({
  52. ...formData,
  53. [key]: txt
  54. })
  55. },
  56. [formData]
  57. )
  58. // 点击重置
  59. const resetSelectFu = useCallback(() => {
  60. setFormData(baseFormData)
  61. setTimeout(() => {
  62. setTimeKey(Date.now())
  63. }, 50)
  64. }, [])
  65. // 页码变化
  66. // const paginationChange = useCallback(
  67. // (pageNum: number, pageSize: number) => {
  68. // setFormData({ ...formData, pageNum, pageSize })
  69. // setTimeout(() => {
  70. // setTimeKey(Date.now())
  71. // }, 50)
  72. // },
  73. // [formData]
  74. // )
  75. // 打开侧边栏
  76. const [cathet, setCathet] = useState(0)
  77. const startBtn = useMemo(() => {
  78. return [
  79. {
  80. title: '编号类型',
  81. render: (item: any) => {
  82. return (
  83. <span
  84. onClick={() => setCathet(item.id)}
  85. className={classNames('D1GtNum', item.id === cathet ? 'D1GtNumAc' : '')}
  86. >
  87. {item.num}
  88. </span>
  89. )
  90. }
  91. }
  92. ]
  93. }, [cathet])
  94. const tableLastBtn = useMemo(() => {
  95. return [
  96. {
  97. title: '操作',
  98. render: (item: any) => {
  99. return (
  100. <Button
  101. size='small'
  102. type='text'
  103. onClick={() => history.push(`/storage_look/${item.id}`)}
  104. >
  105. 查看
  106. </Button>
  107. )
  108. }
  109. }
  110. ]
  111. }, [])
  112. return (
  113. <div className={styles.D1goods}>
  114. <div className='D1Gtop'>
  115. <div className='D1GtRow'>
  116. <span className='D1GtRowTxt'>编号类型:</span>
  117. <Select
  118. options={D1GselectNum}
  119. style={{ width: 160 }}
  120. value={formData.aaaa}
  121. onChange={e => setFormData({ ...formData, aaaa: e })}
  122. />
  123. </div>
  124. <div className='D1GtRow'>
  125. <span className='D1GtRowTxt'>藏品编号:</span>
  126. <Input
  127. placeholder='请输入内容'
  128. maxLength={30}
  129. value={formData.bbbb}
  130. onChange={e => txtChangeFu(e.target.value, 'bbbb')}
  131. />
  132. </div>
  133. <div className='D1GtRow'>
  134. <span className='D1GtRowTxt'>藏品名称:</span>
  135. <Input
  136. placeholder='请输入内容'
  137. maxLength={30}
  138. value={formData.cccc}
  139. onChange={e => txtChangeFu(e.target.value, 'cccc')}
  140. />
  141. </div>
  142. <div className='D1GtRow'>
  143. <span className='D1GtRowTxt'>库存状态:</span>
  144. <Select
  145. options={D1GselectSta}
  146. style={{ width: 160 }}
  147. value={formData.dddd}
  148. onChange={e => setFormData({ ...formData, dddd: e })}
  149. />
  150. </div>
  151. <div className='D1GtRow'>
  152. <Button type='primary' onClick={clickSearch}>
  153. 查询
  154. </Button>
  155. &emsp;
  156. <Button onClick={resetSelectFu}>重置</Button>
  157. </div>
  158. </div>
  159. <div className='D1Gmain'>
  160. <div className='D1Gmainll'>
  161. {1 + 1 === 2 ? <div className='D1null'>暂无数据</div> : '树列表'}
  162. </div>
  163. <div className='D1Gmainrr'>
  164. {/* 表格 */}
  165. <MyTable
  166. yHeight={666}
  167. list={[
  168. { id: 99, thumb: '', num: '一段编号_可点击' },
  169. { id: 199, thumb: '', num: '一段编号_可点击' }
  170. ]}
  171. columnsTemp={D1GtableC}
  172. startBtn={startBtn}
  173. lastBtn={tableLastBtn}
  174. pagingInfo={false}
  175. widthSet={{ description: 200 }}
  176. />
  177. </div>
  178. </div>
  179. {/* 打开侧边栏 */}
  180. <Y1cathet sId={cathet} closeFu={() => setCathet(0)} />
  181. </div>
  182. )
  183. }
  184. const MemoD1goods = React.memo(D1goods)
  185. export default MemoD1goods