知与行后台管理端

housingPolicy.jsx 5.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. import React, { useState, useEffect } from 'react';
  2. import { Form, Input, Button, Icon, Select, message, Table, Divider, Tag, Pagination, Modal, DatePicker } 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 SelectCity from '../../components/SelectButton/CitySelect'
  8. import BuildSelect from '../../components/SelectButton/BuildSelect'
  9. import apis from '../../services/apis';
  10. import request from '../../utils/request'
  11. const { Option } = Select;
  12. const { MonthPicker, RangePicker, WeekPicker } = DatePicker;
  13. const header = (props) => {
  14. const [ data, setData ] = useState({})
  15. useEffect(() => {
  16. getList({ pageNum: 1, pageSize: 10,cityId: '' });
  17. },[])
  18. // 查询列表
  19. const getList = (params) => {
  20. request({ ...apis.system.getTaPolicy, params: { ...params }, }).then((data) => {
  21. console.log(data)
  22. setData(data)
  23. })
  24. }
  25. // 跳转到编辑商品
  26. const toEditPolicy = (policyId) => () => {
  27. router.push({
  28. pathname: '/system/editPolicy',
  29. query: {
  30. policyId
  31. },
  32. });
  33. }
  34. /**
  35. *
  36. *
  37. * @param {*} props
  38. * @returns
  39. */
  40. const columns = [
  41. {
  42. title: '购房政策主图',
  43. dataIndex: 'policyImg',
  44. key: 'policyImg',
  45. align: 'center',
  46. render: (policyImg) => <img src={policyImg} className={styles.touxiang} />,
  47. },
  48. {
  49. title: '标题',
  50. dataIndex: 'title',
  51. key: 'title',
  52. align: 'center',
  53. },
  54. {
  55. title: '城市',
  56. dataIndex: 'cityName',
  57. key: 'cityName',
  58. align: 'center',
  59. },
  60. {
  61. title: '创建时间',
  62. dataIndex: 'createDate',
  63. key: 'createDate',
  64. align: 'center',
  65. render: (createDate) => <><span>{moment(createDate).format('YYYY-MM-DD')}</span></>
  66. },
  67. {
  68. title: '状态',
  69. dataIndex: 'publishStatus',
  70. key: 'publishStatus',
  71. align: 'center',
  72. render: (publishStatus)=> <><span>{publishStatus === 1 ? '已发布' : '未发布' }</span></>
  73. },
  74. {
  75. title: '操作',
  76. dataIndex: 'handle',
  77. key: 'handle',
  78. align: 'center',
  79. render: (x,row) => <>
  80. <span style={{ color: '#1990FF' }} onClick={publicOrNoPublic(row)}>{ row.publishStatus === 0 ? '发布' : '取消发布' }<Icon type="close-circle" className={styles.edit} /></span>
  81. <span style={{ color: '#1990FF', marginRight: '20px' }} onClick={topPolicy(row)}>{ row.weight === 1 ? '取消置顶' : '置顶' }<Icon type="vertical-align-top" className={styles.edit} /></span>
  82. <span style={{ color: '#FF925C' }} onClick={toEditPolicy(row.policyId)}>编辑<Icon type="form" className={styles.edit} /></span>
  83. <span style={{ color: '#FF925C' }} onClick={deletePolicy(row.policyId)}>删除<Icon type="form" className={styles.edit} /></span>
  84. </>
  85. },
  86. ];
  87. // 删除
  88. const deletePolicy = (policyId) => () => {
  89. Modal.confirm({
  90. title: '是否继续删除此政策?',
  91. okText: '确定',
  92. cancelText: '取消',
  93. onOk() {
  94. request({ ...apis.system.deleteTaPolicy, urlData: {id: policyId }, }).then((data) => {
  95. message.info('操作成功!')
  96. getList({ pageNum: 1, pageSize: 10,cityId: '' });
  97. }).catch((err) => {
  98. console.log(err)
  99. message.info(err.msg || err.message)
  100. })
  101. },
  102. });
  103. }
  104. // 置顶
  105. const topPolicy = (row) => () => {
  106. const weight = Math.abs(row.weight - 1)
  107. row.weight = weight
  108. request({ ...apis.system.updateTaPolicy, urlData: {id: row.policyId},data: row, }).then((data) => {
  109. console.log(data)
  110. message.info('操作成功!')
  111. getList({ pageNum: 1, pageSize: 10,cityId: '' });
  112. }).catch((err) => {
  113. console.log(err)
  114. message.info(err.msg || err.message)
  115. })
  116. }
  117. const publicOrNoPublic = (row) => () => {
  118. if (row.publishStatus === 1) {
  119. row.publishStatus = 0
  120. } else {
  121. row.publishStatus = 1
  122. }
  123. request({ ...apis.system.updateTaPolicy, urlData: {id: row.policyId},data: row, }).then((data) => {
  124. console.log(data)
  125. message.info('操作成功!')
  126. getList({ pageNum: 1, pageSize: 10,cityId: '' });
  127. }).catch((err) => {
  128. console.log(err)
  129. message.info(err.msg || err.message)
  130. })
  131. }
  132. const changePageNum = (pageNumber) => {
  133. getList({ pageNum: pageNumber, pageSize: 10 })
  134. }
  135. // 提交事件
  136. const handleSubmit = (e, props) => {
  137. e.preventDefault();
  138. props.form.validateFields((err, values) => {
  139. if (!err) {
  140. console.log('提交数据: ', values)
  141. getList({ pageNum: 1, pageSize: 10, ...values })
  142. }
  143. });
  144. }
  145. const { getFieldDecorator } = props.form
  146. return (
  147. <>
  148. <Form layout="inline" onSubmit={e => handleSubmit(e, props)}>
  149. <Form.Item>
  150. {getFieldDecorator('cityId')(
  151. <SelectCity />,
  152. )}
  153. </Form.Item>
  154. <Form.Item>
  155. <Button type="primary" htmlType="submit" className={styles.searchBtn}>
  156. 搜索
  157. </Button>
  158. </Form.Item>
  159. </Form>
  160. <Button type="primary" className={styles.addBtn} onClick={toEditPolicy()}>新增</Button>
  161. <Table dataSource={data.records} columns={columns} pagination={false}/>
  162. <div style={{ display: 'flex', justifyContent: 'flex-end', marginTop: '30px' }}>
  163. <Pagination showQuickJumper defaultCurrent={1} total={data.total} onChange={changePageNum} />
  164. </div>
  165. </>
  166. )
  167. }
  168. const WrappedHeader = Form.create({ name: 'header' })(header);
  169. export default WrappedHeader