知与行后台管理端

exchangeRecords.jsx 6.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. import React, { useState, useEffect } from 'react';
  2. import { Form, Input, Button, Icon, Select, DatePicker, Table, Pagination } from 'antd';
  3. import { FormattedMessage } from 'umi-plugin-react/locale';
  4. import styles from '../style/GoodsList.less';
  5. import router from 'umi/router';
  6. import moment from 'moment';
  7. import BuildSelect from '../../components/SelectButton/BuildSelect'
  8. import apis from '../../services/apis';
  9. import request from '../../utils/request'
  10. /**
  11. @param {*} props
  12. @returns
  13. */
  14. const { Option } = Select;
  15. const { MonthPicker, RangePicker, WeekPicker } = DatePicker;
  16. function record(props) {
  17. const { getFieldDecorator } = props.form
  18. // 获取初始化数据
  19. const [ data, setData ] = useState({})
  20. useEffect(() => {
  21. getList({ pageNum: 1, pageSize: 10 });
  22. },[])
  23. // 查询列表
  24. const getList = (params) => {
  25. request({ ...apis.integralMall.taPointsExchange, params: { ...params },}).then((data) => {
  26. setData(data)
  27. })
  28. }
  29. // 提交事件
  30. const handleSubmit = (e, props) => {
  31. e.preventDefault();
  32. props.form.validateFields((err, values) => {
  33. if (!err) {
  34. let {exchangeTime,receiveTime, ...submitValue} = values
  35. if(null != exchangeTime && exchangeTime.length > 0){
  36. const [startCreateDate, endCreateDate] = exchangeTime
  37. submitValue.startCreateDate = moment(startCreateDate).format('YYYY-MM-DD');
  38. submitValue.endCreateDate = moment(endCreateDate).format('YYYY-MM-DD');
  39. }else{
  40. submitValue.startCreateDate = null
  41. submitValue.endCreateDate = null
  42. }
  43. if(null != receiveTime && receiveTime.length > 0){
  44. const [startVerifyDate, endVerifyDate] = receiveTime
  45. submitValue.startVerifyDate = moment(startVerifyDate).format('YYYY-MM-DD');
  46. submitValue.endVerifyDate = moment(endVerifyDate).format('YYYY-MM-DD');
  47. }else{
  48. submitValue.startVerifyDate = null
  49. submitValue.endVerifyDate = null
  50. }
  51. console.log(submitValue)
  52. getList({ pageNum: 1, pageSize: 10, ...submitValue })
  53. }
  54. });
  55. }
  56. const changePageNum = (pageNumber) => {
  57. getList({ pageNum: pageNumber, pageSize: 10 })
  58. }
  59. const columns = [
  60. {
  61. title: '用户姓名',
  62. dataIndex: 'personName',
  63. key: 'personName',
  64. align: 'center',
  65. },
  66. {
  67. title: '用户类型',
  68. dataIndex: 'personType',
  69. key: 'personType',
  70. align: 'center',
  71. render: (personType)=> <><span>{personType === 'Realty Consultant' ? '置业顾问' : personType === 'Sales Executive' ? '销售主管' : personType === 'estate agent' ? '经纪人' : ''}</span></>
  72. },
  73. {
  74. title: '手机号',
  75. dataIndex: 'phone',
  76. key: 'phone',
  77. align: 'center',
  78. },
  79. {
  80. title: '商品图片',
  81. dataIndex: 'image',
  82. key: 'image',
  83. align: 'center',
  84. render: (text, record) => <img src={record.image} className={styles.touxiang} />,
  85. },
  86. {
  87. title: '商品名称',
  88. dataIndex: 'targetName',
  89. key: 'targetName',
  90. align: 'center',
  91. },
  92. {
  93. title: '兑换时间',
  94. dataIndex: 'createDate',
  95. key: 'createDate',
  96. align: 'center',
  97. render: (createDate) => <><span>{moment(createDate).format('YYYY-MM-DD HH:mm')}</span></>
  98. },
  99. {
  100. title: '领取时间',
  101. dataIndex: 'verifyDate',
  102. key: 'verifyDate',
  103. align: 'center',
  104. render: (verifyDate) => <><span>{verifyDate != null ? moment(verifyDate).format('YYYY-MM-DD HH:mm') : ''}</span></>
  105. },
  106. {
  107. title: '状态',
  108. dataIndex: 'status',
  109. key: 'status',
  110. align: 'center',
  111. render: (status)=> <><span>{status == 1 ? '已领取' : '未领取'}</span></>
  112. },
  113. ];
  114. return (
  115. <>
  116. <Form layout="inline" onSubmit={e => handleSubmit(e, props)}>
  117. <div style={{ display: 'flex' }}>
  118. <Form.Item>
  119. {getFieldDecorator('personName')(
  120. <Input
  121. prefix={<Icon type="text" style={{ color: 'rgba(0,0,0,.25)' }} />}
  122. placeholder="用户姓名"
  123. />,
  124. )}
  125. </Form.Item>
  126. <Form.Item>
  127. {getFieldDecorator('phone')(
  128. <Input
  129. prefix={<Icon type="text" style={{ color: 'rgba(0,0,0,.25)' }} />}
  130. placeholder="手机号"
  131. />,
  132. )}
  133. </Form.Item>
  134. <Form.Item>
  135. {getFieldDecorator('targetName')(
  136. <Input
  137. prefix={<Icon type="text" style={{ color: 'rgba(0,0,0,.25)' }} />}
  138. placeholder="商品名称"
  139. />,
  140. )}
  141. </Form.Item>
  142. <Form.Item>
  143. {getFieldDecorator('personType')(
  144. <Select style={{ width: '220px' }} placeholder="用户类型">
  145. <Option value="Realty Consultant">置业顾问</Option>
  146. <Option value="Sales Executive">销售主管</Option>
  147. <Option value="estate agent">经纪人</Option>
  148. </Select>,
  149. )}
  150. </Form.Item>
  151. <Form.Item>
  152. {getFieldDecorator('status')(
  153. <Select style={{ width: '220px' }} placeholder="状态">
  154. <Option value="1">已领取</Option>
  155. <Option value="0">未领取</Option>
  156. </Select>,
  157. )}
  158. </Form.Item>
  159. <Form.Item>
  160. {getFieldDecorator('exchangeTime')(
  161. <RangePicker placeholder={['兑换开始时间','兑换结束时间']}/>
  162. )}
  163. </Form.Item>
  164. <Form.Item>
  165. {getFieldDecorator('receiveTime')(
  166. <RangePicker placeholder={['领取开始时间','领取结束时间']}/>
  167. )}
  168. </Form.Item>
  169. <Form.Item>
  170. <Button type="primary" htmlType="submit" className={styles.searchBtn}>
  171. 搜索
  172. </Button>
  173. </Form.Item>
  174. </div>
  175. </Form>
  176. <Table style={{marginTop:'40px'}} dataSource={data.records} columns={columns} pagination={false} />
  177. <div style={{ display: 'flex', justifyContent: 'flex-end', marginTop: '30px' }}>
  178. <Pagination showQuickJumper defaultCurrent={1} total={data.total} onChange={changePageNum} />
  179. </div>
  180. </>
  181. )
  182. }
  183. const WrappedHeader = Form.create({ name: 'record' })(record);
  184. export default WrappedHeader