OrderList.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207
  1. import React, { Component } from 'react';
  2. import moment from 'moment';
  3. import { connect } from 'dva';
  4. import { routerRedux } from 'dva/router';
  5. import { Card, Button, Popover, message } from 'antd';
  6. import { StandardTableList } from '../../../components/RBList/index';
  7. import { addRowKey, renderOrderStatus, renderOrderSplitStatus, provinceCodeToName } from '../../../utils/utils';
  8. const Message = message;
  9. @connect(({ loading, trade }) => ({
  10. trade,
  11. loading: loading.models.trade,
  12. }))
  13. export default class OrderListPage extends Component {
  14. constructor(props) {
  15. super(props);
  16. const { state } = props.location;
  17. this.state = {
  18. UIParams: (state || {}).UIParams, // 组件的状态参数
  19. Queryers: (state || {}).Queryers, // 查询的条件参数
  20. };
  21. }
  22. componentDidMount() {
  23. this.props.dispatch({
  24. type: 'trade/fetchOrderList',
  25. payload: { ...this.state.Queryers },
  26. });
  27. }
  28. handleCreateOperation = () => {
  29. }
  30. handleFilterOperation = (params, states) => {
  31. this.props.dispatch({
  32. type: 'trade/fetchOrderList',
  33. payload: params,
  34. });
  35. this.setState({
  36. UIParams: states,
  37. Queryers: params,
  38. });
  39. }
  40. handleBatchOperation = () => {
  41. Message.info('暂不支持批量操作!');
  42. }
  43. render() {
  44. const { loading, trade } = this.props;
  45. const { list, totalSize, pageSize, pageNo } = trade;
  46. const renderOperation = () => {
  47. return (
  48. <div>
  49. <Button
  50. size="small"
  51. type="primary"
  52. >详情
  53. </Button>
  54. </div>
  55. );
  56. };
  57. const batchActions = [{
  58. key: 'delete',
  59. name: '批量清空',
  60. }, {
  61. }];
  62. const basicSearch = {
  63. keys: [{
  64. name: '订单编号',
  65. field: 'code',
  66. }, {
  67. name: '终端编号',
  68. field: 'userCode',
  69. }],
  70. };
  71. const pagination = {
  72. pageNo,
  73. pageSize,
  74. totalSize,
  75. };
  76. const columns = [{
  77. title: '订单编号',
  78. key: 1,
  79. dataIndex: 'serialNo',
  80. width: '13%',
  81. }, {
  82. title: '用户信息',
  83. key: 2,
  84. width: '27%',
  85. render: (_, record) => {
  86. const { userCode, provinceCode, cityName, zoneName, merchantName } = record;
  87. return (
  88. <div>
  89. <p>
  90. <span>终端编号:&nbsp;</span>
  91. {userCode}
  92. </p>
  93. <p>
  94. <span>所属校区:&nbsp;</span>
  95. {`${provinceCodeToName(provinceCode)}${cityName}${zoneName}`}
  96. </p>
  97. <p>
  98. <span>所属渠道:&nbsp;</span>
  99. {merchantName}
  100. </p>
  101. </div>
  102. );
  103. },
  104. }, {
  105. title: '价格信息',
  106. key: 3,
  107. width: '15%',
  108. render: (_, record) => {
  109. const { originPrice, adjustPrice, finalPrice } = record;
  110. return (
  111. <div>
  112. <p>
  113. <span>初始价格:&nbsp;</span>
  114. {originPrice}
  115. </p>
  116. <p>
  117. <span>优惠价格:&nbsp;</span>
  118. {adjustPrice}
  119. </p>
  120. <p>
  121. <span>实际售价:&nbsp;</span>
  122. {finalPrice}
  123. </p>
  124. </div>
  125. );
  126. },
  127. }, {
  128. title: '收货信息',
  129. key: 4,
  130. width: '8%',
  131. render: (_, record) => {
  132. const { name, mobile, address } = record;
  133. return (
  134. <Popover
  135. placement="top"
  136. content={
  137. <div>
  138. <p>
  139. <span>收货人:&nbsp;</span>
  140. {name}
  141. </p>
  142. <p>
  143. <span>手机号码:&nbsp;</span>
  144. {mobile}
  145. </p>
  146. <p>
  147. <span>收货地址:&nbsp;</span>
  148. {address}
  149. </p>
  150. </div>
  151. }
  152. >
  153. {name}
  154. </Popover>
  155. );
  156. },
  157. }, {
  158. title: '拆单状态',
  159. key: 5,
  160. dataIndex: 'splitStatus',
  161. render: text => renderOrderSplitStatus(text),
  162. width: '8%',
  163. }, {
  164. title: '订单状态',
  165. key: 6,
  166. dataIndex: 'orderStatus',
  167. render: text => renderOrderStatus(text),
  168. width: '8%',
  169. }, {
  170. title: '下单时间',
  171. key: 7,
  172. dataIndex: 'gmtCreated',
  173. render: text => moment(text).format('YYYY-MM-DD HH:mm:ss'),
  174. width: '16%',
  175. }, {
  176. title: '操作',
  177. key: 8,
  178. dataIndex: 'operation',
  179. render: (_, record) => renderOperation(record),
  180. width: '5%',
  181. }];
  182. return (
  183. <Card>
  184. <StandardTableList
  185. columns={columns}
  186. loading={loading}
  187. showStatusSelect={false}
  188. dataSource={addRowKey(list)}
  189. header={{
  190. basicSearch,
  191. onFilterClick: this.handleFilterOperation,
  192. onCreateClick: this.handleCreateOperation,
  193. }}
  194. footer={{
  195. pagination,
  196. batchActions,
  197. onBatchClick: this.handleBatchOperation,
  198. }}
  199. keepUIState={{ ...this.state.UIParams }}
  200. />
  201. </Card>
  202. );
  203. }
  204. }