achieve.jsx 5.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. import React, { useState, useEffect } from 'react';
  2. import { Form, Icon, Tabs, Table, Pagination, message, Modal } from 'antd';
  3. import router from 'umi/router';
  4. import moment from 'moment';
  5. import AuthButton from '@/components/AuthButton';
  6. import withActions from '@/components/ActionList';
  7. import EditIcon from '@/components/EditIcon';
  8. import apis from '../../services/apis';
  9. import request from '../../utils/request';
  10. import styles from '../style/GoodsList.less';
  11. import Navigate from '@/components/Navigate';
  12. const { TabPane } = Tabs;
  13. function header(props) {
  14. const [ carType, setCarType ] = useState({})
  15. const callback = (key) => {
  16. setCarType(key)
  17. getList({ pageNum: 1, pageSize: 10 , type: key});
  18. }
  19. // 获取初始化数据
  20. const [ data, setData ] = useState({})
  21. useEffect(() => {
  22. getList({ pageNum: 1, pageSize: 10 , type: 'platform'});
  23. },[])
  24. // 查询列表
  25. const getList = (params) => {
  26. request({ ...apis.integralMall.tdPointsRules, params: { ...params },}).then((data) => {
  27. console.log(data)
  28. setData(data)
  29. })
  30. }
  31. const changePageNum = (pageNumber) => {
  32. getList({ pageNum: pageNumber, pageSize: 10, type: carType })
  33. }
  34. // 提交事件
  35. const handleSubmit = (e, props) => {
  36. e.preventDefault();
  37. props.form.validateFields((err, values) => {
  38. if (!err) {
  39. getList({ pageNum: 1, pageSize: 10, ...values, type: carType})
  40. }
  41. });
  42. }
  43. const changeStatus = row => () => {
  44. const title = row.status === 1 ? '停用后用户操作将不再发放积分,请确认相关免责声明等文案已修订说明?':'启用后用户操作将发放积分'
  45. Modal.confirm({
  46. title,
  47. okText: '确认',
  48. cancelText: '取消',
  49. onOk() {
  50. request({ ...apis.integralMall.change, data: { ...row }}).then(data => {
  51. message.info('操作成功!')
  52. getList({ pageNum: 1, pageSize: 10, type: carType})
  53. })
  54. },
  55. });
  56. }
  57. const updateRules = (row) => () => {
  58. router.push({
  59. pathname: '/integralMall/editAchieve',
  60. query: {
  61. ruleId: row.ruleId
  62. },
  63. });
  64. }
  65. const columns = [
  66. {
  67. title: '类型',
  68. dataIndex: 'ruleName',
  69. key: 'ruleName',
  70. align: 'center',
  71. render: (x, row) => <Navigate onClick={updateRules(row)}>{row.ruleName}</Navigate>,
  72. },
  73. {
  74. title: '获取积分',
  75. dataIndex: 'pointsAmount',
  76. key: 'pointsAmount',
  77. align: 'center',
  78. },
  79. {
  80. title: '说明',
  81. dataIndex: 'remark',
  82. key: 'remark',
  83. align: 'center',
  84. },
  85. {
  86. title: '状态',
  87. dataIndex: 'status',
  88. key: 'status',
  89. align: 'center',
  90. render: (status) => <span>{status == 1 ? '启用' : '停用'}</span>
  91. },
  92. {
  93. title: '操作时间',
  94. dataIndex: 'updateDate',
  95. key: 'updateDate',
  96. align: 'center',
  97. render: (updateDate) => <><span>{updateDate != null ? moment(updateDate).format('YYYY-MM-DD') : ''}</span></>
  98. },
  99. {
  100. title: '操作',
  101. dataIndex: 'handle',
  102. key: 'handle',
  103. align: 'center',
  104. render: withActions((x,row) => [
  105. <AuthButton name="admin.tdPointsRules.change.put" noRight={null}>
  106. <EditIcon type={row.status === 1 ? 'stop' : 'start'} text={row.status === 1 ? '停用' : '启用'} onClick={changeStatus(row)} />
  107. </AuthButton>,
  108. <AuthButton name="admin.tdPointsRules.put" noRight={null}>
  109. <EditIcon type="edit" text="编辑" onClick={updateRules(row)} />
  110. </AuthButton>,
  111. ]),
  112. },
  113. ];
  114. return (
  115. <>
  116. <Tabs onChange={callback} type="card">
  117. <TabPane tab="平台积分" key="platform">
  118. <Table rowKey="achieve" style={{ marginTop: '40px' }} dataSource={data.records} columns={columns} pagination={false}/>
  119. <div style={{ display: 'flex', justifyContent: 'flex-end', marginTop: '30px' }}>
  120. <Pagination showQuickJumper defaultCurrent={1} total={data.total} onChange={changePageNum} current={data.current}/>
  121. </div>
  122. </TabPane>
  123. {/* <TabPane tab="项目积分" key="project">
  124. <Form layout="inline" onSubmit={e => handleSubmit(e, props)}>
  125. <Form.Item>
  126. {getFieldDecorator('buildingId')(
  127. <BuildSelect />,
  128. )}
  129. </Form.Item>
  130. <Form.Item>
  131. <Button type="primary" htmlType="submit" className={styles.searchBtn}>
  132. 搜索
  133. </Button>
  134. </Form.Item>
  135. </Form>
  136. <Table rowKey="achie" style={{ marginTop: '40px' }} dataSource={data.records} columns={columns} pagination={false}/>
  137. <div style={{ display: 'flex', justifyContent: 'flex-end', marginTop: '30px' }}>
  138. <Pagination showQuickJumper defaultCurrent={1} total={data.total} onChange={changePageNum} current={data.current}/>
  139. </div>
  140. </TabPane> */}
  141. </Tabs>,
  142. </>
  143. )
  144. }
  145. const WrappedHeader = Form.create({ name: 'header' })(header);
  146. export default WrappedHeader