123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182
  1. import React, { useState, useEffect } from 'react';
  2. import { Select } from 'antd';
  3. import { PageHeaderWrapper } from '@ant-design/pro-layout';
  4. import moment from 'moment';
  5. import PageTable from '@/components/PageTable';
  6. import { getOrderList } from '@/services/order'
  7. import MachinetySelect from '@/components/MachinetySelect';
  8. import { getMachineryTypeList } from '@/services/machineryType';
  9. import { getCooperativeList } from '@/services/cooperative';
  10. const { Option } = Select;
  11. const formatterTime = (val) => {
  12. return val ? moment(val).format('YYYY-MM-DD') : '';
  13. };
  14. const orderStates = (item) => {
  15. if (item.payStatus === 0) {
  16. return '待付款'
  17. } else if (item.payStatus === 1 && item.workStatus === 0 && item.dispatchStatus === 0) {
  18. return '已付款'
  19. } else if (item.workStatus == 0 && item.dispatchStatus === 1) {
  20. return '待作业'
  21. } else if (item.payStatus === 1 && (item.workStatus === 1 || item.workStatus === 2)) {
  22. return '进行中'
  23. } else if (item.workStatus === 3 && item.isEvaluated === 0) {
  24. return '待评价'
  25. } if (item.workStatus === 3 && item.isEvaluated === 1) {
  26. return '已完成'
  27. } else if (item.payStatus === 3) {
  28. return '退单申请中'
  29. } else if (item.status === 9) {
  30. return '已退单'
  31. } else {
  32. return '异常'
  33. }
  34. }
  35. export default (props) => {
  36. const [machineryTypeList, setMachineryTypeList] = useState([]);
  37. const [cooperativeList, setCooperativeList] = useState([]);
  38. useEffect(() => {
  39. getCooperativeList({ pageSize: 999 }).then((res) => {
  40. setCooperativeList(res.records);
  41. }).catch((err) => {
  42. console.log(err.message)
  43. });
  44. getMachineryTypeList({ pageSize: 999 }).then((res) => {
  45. setMachineryTypeList(res.records);
  46. }).catch((err) => {
  47. console.log(err.message)
  48. });
  49. }, []);
  50. const columns = [
  51. {
  52. title: '订单号',
  53. dataIndex: 'orderNo',
  54. key: 'orderNo',
  55. },
  56. {
  57. title: '合作社',
  58. dataIndex: 'orgId',
  59. key: 'orgId',
  60. hideInTable: true,
  61. renderFormItem: (item, field, form) => {
  62. return (
  63. <Select>
  64. {cooperativeList.map((item) => (
  65. <Option value={item.orgId} key={item.orgId}>
  66. {item.name}
  67. </Option>
  68. ))}
  69. </Select>
  70. )
  71. }
  72. },
  73. {
  74. title: '农机',
  75. dataIndex: 'machineryId',
  76. key: 'machineryId',
  77. hideInTable: true,
  78. renderFormItem: (item, field, form) => {
  79. return (
  80. <MachinetySelect />
  81. )
  82. }
  83. },
  84. {
  85. title: '农机型号',
  86. dataIndex: 'typeId',
  87. key: 'typeId',
  88. hideInTable: true,
  89. renderFormItem: (item, field, form) => {
  90. return (
  91. <Select>
  92. {machineryTypeList.map((item) => (
  93. <Option value={item.typeId} key={item.typeId}>
  94. {item.name}
  95. </Option>
  96. ))}
  97. </Select>
  98. )
  99. }
  100. },
  101. {
  102. title: '合作社名',
  103. dataIndex: 'orgName',
  104. key: 'orgName',
  105. search: false
  106. },
  107. {
  108. title: '农机名',
  109. dataIndex: 'machineryName',
  110. key: 'machineryName',
  111. search: false
  112. },
  113. {
  114. title: '农机型号',
  115. dataIndex: 'typeName',
  116. key: 'typeName',
  117. search: false
  118. },
  119. {
  120. title: '下单人',
  121. dataIndex: 'personName',
  122. key: 'personName',
  123. },
  124. {
  125. title: '手机号',
  126. dataIndex: 'phone',
  127. key: 'phone',
  128. },
  129. {
  130. title: '需求时间',
  131. dataIndex: 'appointmentDate',
  132. key: 'appointmentDate',
  133. render: (t) => formatterTime(t),
  134. search: false
  135. },
  136. {
  137. title: '下单面积',
  138. dataIndex: 'amount',
  139. key: 'amount',
  140. search: false,
  141. },
  142. {
  143. title: '费用',
  144. dataIndex: 'charges',
  145. key: 'charges',
  146. render: (t) => t / 100,
  147. search: false
  148. },
  149. {
  150. title: '下单时间',
  151. dataIndex: 'createDate',
  152. key: 'createDate',
  153. search: false,
  154. render: (t) => formatterTime(t),
  155. },
  156. {
  157. title: '状态',
  158. dataIndex: 'status',
  159. key: 'status',
  160. search: false,
  161. render: (t, render) => orderStates(render)
  162. },
  163. //操作如果是需求多台机器则需调度 状态为待确认时 状态栏显示调度按钮跳到调度页面
  164. // 如果是申请退款 则出现处理按钮 显示需求时间 如果未到则退款并且改变已分配农机手状态和农机状态
  165. // 如果已经服务过了 则可以打电话给农户咨询具体情况看是否退部分款项
  166. ];
  167. return (
  168. <PageHeaderWrapper>
  169. <PageTable
  170. request={getOrderList}
  171. // expfunc={exportPersonList}
  172. columns={columns}
  173. rowKey="orderId"
  174. options={false}
  175. scroll={{ x: 1500 }}
  176. />
  177. </PageHeaderWrapper>
  178. );
  179. };