停车场项目web, 互联网仓库, 开发完成后, 需要将代码回传云桌面.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

233 lines
8.3 KiB

  1. import React, { useState, useEffect } from "react";
  2. import {
  3. Modal,
  4. Form,
  5. Input,
  6. Select,
  7. Button,
  8. Row,
  9. Col,
  10. Divider,
  11. Checkbox,
  12. Descriptions,
  13. Radio,
  14. } from "antd";
  15. import EffectiveDate from "./EffectiveDate";
  16. import ajax from "@/services";
  17. function Detail(props) {
  18. const { record, visible = false, close = () => { } } = props;
  19. const [show ,setShow] = useState(visible)
  20. const [form] = Form.useForm();
  21. const [effectiveDateList, setEffectiveDateList] = useState(record.property);
  22. console.log(effectiveDateList)
  23. useEffect(() => {
  24. setEffectiveDateList(record.property);
  25. console.log(444455,record);
  26. }, []);
  27. return (
  28. <Modal
  29. open={visible}
  30. destroyOnClose
  31. onCancel={close}
  32. width={1200}
  33. title="详情"
  34. footer={null}
  35. >
  36. <div className="yisa-custom-scrollbar" style={{height: '600px', overflowY: 'auto', overflowX: 'hidden'}}>
  37. <Descriptions column={2}>
  38. <Descriptions.Item label="规则名称" span={1}>
  39. {record.feeName}
  40. </Descriptions.Item>
  41. <Descriptions.Item label="编码" span={1}>
  42. {record.feeCode}
  43. </Descriptions.Item>
  44. <Descriptions.Item label="描述" span={1}>
  45. {record.description}
  46. </Descriptions.Item>
  47. <Descriptions.Item label="所属商户" span={1}>
  48. {record.operationName}
  49. </Descriptions.Item>
  50. <Descriptions.Item label="操作时间" span={1}>
  51. {record.createdTime}
  52. </Descriptions.Item>
  53. <Descriptions.Item label="14小时最大收费金额" span={1}>
  54. {record.limit24hour}
  55. </Descriptions.Item>
  56. <Descriptions.Item label="免费分钟数" span={1}>
  57. {record.freeTime}
  58. <div style={{ margin: "0 10px" }}>
  59. <Checkbox disabled defaultChecked={record.freeTimeAbleF}>
  60. 免费分钟数纳入计费时间
  61. </Checkbox>
  62. </div>
  63. </Descriptions.Item>
  64. <Descriptions.Item label="特殊车辆优惠" span={2}>
  65. <Radio.Group
  66. disabled
  67. defaultValue={record.typeF}
  68. options={[
  69. {
  70. label: "启用",
  71. value: 1,
  72. },
  73. {
  74. label: "禁用",
  75. value: 0,
  76. },
  77. ]}
  78. />
  79. </Descriptions.Item>
  80. <Descriptions.Item label="新能源车辆免费分钟" span={1}>
  81. {record.evFreeTime}
  82. <div style={{ margin: "0 10px" }}>
  83. <Checkbox disabled defaultChecked={record.evFreeTimeAble}>
  84. 免费分钟数纳入计费时间
  85. </Checkbox>
  86. </div>
  87. </Descriptions.Item>
  88. </Descriptions>
  89. <Divider />
  90. {effectiveDateList &&
  91. effectiveDateList.rules?.map((item, index) => {
  92. console.log(item);
  93. return <EffectiveDetail record={item} key={index} />
  94. })
  95. }
  96. </div>
  97. </Modal>
  98. );
  99. }
  100. function EffectiveDetail(props) {
  101. const { record } = props;
  102. console.log(101,record)
  103. return (
  104. <div className="el-form">
  105. <Descriptions column={2}>
  106. <Descriptions.Item label="生效日期" span={1}>
  107. {record.date}
  108. </Descriptions.Item>
  109. <Descriptions.Item span={2}>
  110. <Checkbox.Group
  111. defaultValue={[record.unitDelay ? 1 : -1, record.unitUp ? 2 : -1]}
  112. disabled
  113. options={[
  114. {
  115. label: "跨段延续计费",
  116. value: 1,
  117. },
  118. {
  119. label: "出场时不满计费单元部分补齐计费单元收费",
  120. value: 2,
  121. },
  122. ]}
  123. ></Checkbox.Group>
  124. </Descriptions.Item>
  125. </Descriptions>
  126. {record.details.map((item, index) => {
  127. return <TimePartDetail index={index + 1} record={item} />;
  128. })}
  129. </div>
  130. );
  131. }
  132. function TimePartDetail(props) {
  133. const { record, index } = props;
  134. function partName(type) {
  135. switch (type) {
  136. case 0:
  137. return "基础时段";
  138. case 2:
  139. return "周期计费";
  140. case 1:
  141. return "按次计费";
  142. }
  143. }
  144. return (
  145. <>
  146. <Descriptions column={2}>
  147. <Descriptions.Item label={`时段${index}`}>
  148. {`${record.start}-${record.end}`}
  149. </Descriptions.Item>
  150. {record.itemss?.map((item, index) => {
  151. {
  152. (item.type === 0 || item.type === 2) && (
  153. <Descriptions.Item label="时段最高金额">
  154. {record.limit}
  155. </Descriptions.Item>
  156. )
  157. }
  158. <Descriptions.Item label={`区间${index}`} span={2}>
  159. {partName(item.type)}
  160. </Descriptions.Item>
  161. {
  162. item.type === 0 && (
  163. <>
  164. <Descriptions.Item span={2}>
  165. {/* <div>{`前:${record.time_before} 分钟,${record.time_before_money}元/${record.time_before_minute}分钟`}</div> */}
  166. <div>{`前:${items.segment} 分钟,${item.unit}元/${item.period}分钟`}</div>
  167. </Descriptions.Item>
  168. <Descriptions.Item span={2}>
  169. {/* <div>{`满:${record.time_before} 分钟后,${record.time_after_money}元/${record.time_after_minute}分钟`}</div> */}
  170. {item.sub ? <div>{`满:${record.items && record.item.segment} 分钟后,${record.items[0].sub[0].unit}元/${record.items[0].sub[0]?.period}分钟`}</div> : null}
  171. </Descriptions.Item>
  172. </>
  173. )
  174. }
  175. {
  176. record.type === 2 && (
  177. <Descriptions.Item span={2}>
  178. {/* <div>{`${record.time_money}元/${record.time_minute}分钟`}</div> */}
  179. <div>{`${record.items && record.items[0].unit}元/${record.items && record.items[0].period}分钟`}</div>
  180. </Descriptions.Item>
  181. )
  182. }
  183. {
  184. record.type === 1 && (
  185. <Descriptions.Item span={2}>
  186. {/* <div>{`${record.money_per_time}元/次`}</div> */}
  187. <div>{`${record.items && record.items[0].unit}元/次`}</div>
  188. </Descriptions.Item>
  189. )
  190. }
  191. })}
  192. {(record.type === 0 || record.type === 2) && (
  193. <Descriptions.Item label="时段最高金额">
  194. {record.limit}
  195. </Descriptions.Item>
  196. )}
  197. <Descriptions.Item label={`区间${index}`} span={2}>
  198. {partName(record.items[0].type)}
  199. </Descriptions.Item>
  200. {record.items[0].type === 0 && (
  201. <>
  202. <Descriptions.Item span={2}>
  203. {/* <div>{`前:${record.time_before} 分钟,${record.time_before_money}元/${record.time_before_minute}分钟`}</div> */}
  204. <div>{`前:${record.items && record.items[0].segment} 分钟,${record.items && record.items[0].unit}元/${record.items && record.items[0].period}分钟`}</div>
  205. </Descriptions.Item>
  206. <Descriptions.Item span={2}>
  207. {/* <div>{`满:${record.time_before} 分钟后,${record.time_after_money}元/${record.time_after_minute}分钟`}</div> */}
  208. {record.items && record.items[0].sub ? <div>{`满:${record.items && record.items[0].segment} 分钟后,${record.items[0].sub[0].unit}元/${record.items[0].sub[0]?.period}分钟`}</div> : null}
  209. </Descriptions.Item>
  210. </>
  211. )}
  212. {record.items[0].type === 2 && (
  213. <Descriptions.Item span={2}>
  214. {/* <div>{`${record.time_money}元/${record.time_minute}分钟`}</div> */}
  215. <div>{`${record.items && record.items[0].unit}元/${record.items && record.items[0].period}分钟`}</div>
  216. </Descriptions.Item>
  217. )}
  218. {record.items[0].type === 1 && (
  219. <Descriptions.Item span={2}>
  220. {/* <div>{`${record.money_per_time}元/次`}</div> */}
  221. <div>{`${record.items && record.items[0].unit}元/次`}</div>
  222. </Descriptions.Item>
  223. )}
  224. </Descriptions>
  225. <Divider />
  226. </>
  227. );
  228. }
  229. export default Detail;