modal.jsx 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. import {Form, InputNumber, message, Modal,} from 'antd';
  2. import axios from '@/utils/axios.js'
  3. import {useEffect} from 'react'
  4. import './modal.scss'
  5. export default function ModalHooks({isModalOpen, closeModal, row}) {
  6. const [messageApi, contextHolder] = message.useMessage();
  7. // 表单
  8. const [form] = Form.useForm();
  9. let passengerOption = [
  10. {value: 1, label: '老年卡'},
  11. {value: 2, label: '学生卡'},
  12. {value: 3, label: '电子钱包'},
  13. {value: 4, label: '现金'},
  14. {value: 5, label: '其他'},
  15. ]
  16. /**
  17. *确定时候的回调
  18. */
  19. function handleOk() {
  20. // 验证表单
  21. form.validateFields().then(async () => {
  22. let formData = JSON.parse(JSON.stringify(form.getFieldsValue()))
  23. if (row?.id) {
  24. // 修改数据
  25. formData.id = row.id
  26. }
  27. let {code, message} = await axios.post('/lineOperateEdit/editBusLineStatistics', formData)
  28. if (code === 200) {
  29. messageApi.success(message)
  30. handleCancel()
  31. } else {
  32. messageApi.error(message)
  33. }
  34. })
  35. }
  36. // 关闭页面
  37. const handleCancel = () => {
  38. closeModal(false);
  39. form.resetFields()
  40. };
  41. // 表单
  42. useEffect(() => {
  43. if (row.id) {
  44. let formData = JSON.parse(JSON.stringify(row))
  45. form.setFieldsValue(formData)
  46. }
  47. }, [row])
  48. return (
  49. <div className="form">
  50. {contextHolder}
  51. <Modal title={row?.id ? '修改数据' : '新增数据'} open={isModalOpen} onOk={handleOk} onCancel={handleCancel}
  52. width={900}
  53. cancelText="取消" okText="确定">
  54. <Form
  55. name="statics"
  56. form={form}
  57. wrapperCol={
  58. {span: 30, offset: 0}
  59. }
  60. layout='inline'
  61. initialValues={{
  62. remember: true,
  63. }}
  64. autoComplete="off"
  65. >
  66. <Form.Item
  67. label="当前里程"
  68. name="currentMileage"
  69. rules={[
  70. {
  71. required: true,
  72. message: '请输入',
  73. },
  74. ]}
  75. >
  76. <InputNumber style={{width: '100%'}}></InputNumber>
  77. </Form.Item>
  78. <Form.Item
  79. label="空驶率"
  80. name="unloadedRatio"
  81. rules={[
  82. {
  83. required: true,
  84. message: '请输入',
  85. },
  86. ]}
  87. >
  88. <InputNumber style={{width: '100%'}}></InputNumber>
  89. </Form.Item>
  90. <Form.Item
  91. label="今日客流"
  92. name="passengerFlow"
  93. rules={[
  94. {
  95. required: true,
  96. message: '请输入',
  97. },
  98. ]}
  99. >
  100. <InputNumber style={{width: '100%'}}></InputNumber>
  101. </Form.Item>
  102. <Form.Item
  103. label="计划里程"
  104. name="planMileage"
  105. rules={[
  106. {
  107. required: true,
  108. message: '请输入',
  109. },
  110. ]}
  111. >
  112. <InputNumber style={{width: '100%'}}></InputNumber>
  113. </Form.Item>
  114. <Form.Item
  115. label="塌班"
  116. name="collapseClasses"
  117. rules={[
  118. {
  119. required: true,
  120. message: '请输入',
  121. },
  122. ]}
  123. >
  124. <InputNumber style={{width: '100%'}}></InputNumber>
  125. </Form.Item>
  126. <Form.Item
  127. label="计划班次"
  128. name="planClasses"
  129. rules={[
  130. {
  131. required: true,
  132. message: '请输入',
  133. },
  134. ]}
  135. >
  136. <InputNumber style={{width: '100%'}}></InputNumber>
  137. </Form.Item>
  138. <Form.Item
  139. label="已发班次"
  140. name="setOutClasses"
  141. rules={[
  142. {
  143. required: true,
  144. message: '请输入',
  145. },
  146. ]}
  147. >
  148. <InputNumber style={{width: '100%'}}></InputNumber>
  149. </Form.Item>
  150. </Form>
  151. </Modal>
  152. </div>
  153. )
  154. }