modal.jsx 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. import {Form, Input, 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. // 下拉框数值
  10. let passengerOption = [
  11. {value: 1, label: '行驶中'},
  12. {value: 2, label: '维保'},
  13. {value: 3, label: '固定包车'},
  14. {value: 4, label: '临时包车'},
  15. {value: 5, label: '充电'},
  16. {value: 6, label: '公务'},
  17. ]
  18. //状态下拉框
  19. const status = [
  20. {value: 1, label: '运营'},
  21. {value: 2, label: '非运营'},
  22. ]
  23. /**
  24. *确定时候的回调
  25. */
  26. function handleOk() {
  27. // 验证表单
  28. form.validateFields().then(async () => {
  29. let formData = JSON.parse(JSON.stringify(form.getFieldsValue()))
  30. if (row?.id) {
  31. // 修改数据
  32. formData.id = row.id
  33. }
  34. let {code, message} = await axios.post('/editFacilityStatistics/editFacilityStatistics', [formData])
  35. if (code === 200) {
  36. messageApi.success(message)
  37. handleCancel()
  38. } else {
  39. messageApi.error(message)
  40. }
  41. })
  42. }
  43. // 关闭页面
  44. const handleCancel = () => {
  45. closeModal(false);
  46. form.resetFields()
  47. };
  48. // 表单
  49. useEffect(() => {
  50. if (row.id) {
  51. let formData = JSON.parse(JSON.stringify(row))
  52. form.setFieldsValue(formData)
  53. }
  54. }, [row])
  55. return (
  56. <div className="form">
  57. {contextHolder}
  58. <Modal title={row?.id ? '修改数据' : '新增数据'} open={isModalOpen} onOk={handleOk} onCancel={handleCancel}
  59. width={900}
  60. cancelText="取消" okText="确定">
  61. <Form
  62. name="statics"
  63. form={form}
  64. wrapperCol={
  65. {span: 30, offset: 0}
  66. }
  67. layout='inline'
  68. initialValues={{
  69. remember: true,
  70. }}
  71. autoComplete="off"
  72. >
  73. <Form.Item
  74. label="区域"
  75. name="area"
  76. rules={[
  77. {
  78. required: true,
  79. message: '请输入',
  80. },
  81. ]}
  82. >
  83. <Input style={{width: '100%'}}></Input>
  84. </Form.Item>
  85. <Form.Item
  86. label="损坏数量"
  87. name="damageNum"
  88. rules={[
  89. {
  90. required: true,
  91. message: '请输入',
  92. },
  93. ]}
  94. >
  95. <InputNumber style={{width: '100%'}}></InputNumber>
  96. </Form.Item>
  97. <Form.Item
  98. label="电子站牌"
  99. name="stationNum"
  100. rules={[
  101. {
  102. required: true,
  103. message: '请输入',
  104. },
  105. ]}
  106. >
  107. <InputNumber style={{width: '100%'}}></InputNumber>
  108. </Form.Item>
  109. <Form.Item
  110. label="车辆"
  111. name="vehicleNum"
  112. rules={[
  113. {
  114. required: true,
  115. message: '请输入',
  116. },
  117. ]}
  118. >
  119. <InputNumber style={{width: '100%'}}></InputNumber>
  120. </Form.Item>
  121. <Form.Item
  122. label="车载部件"
  123. name="vehicleComponentsNum"
  124. rules={[
  125. {
  126. required: true,
  127. message: '请输入',
  128. },
  129. ]}
  130. >
  131. <InputNumber style={{width: '100%'}}></InputNumber>
  132. </Form.Item>
  133. <Form.Item
  134. label="洗车机"
  135. name="carWasherNum"
  136. rules={[
  137. {
  138. required: true,
  139. message: '请输入',
  140. },
  141. ]}
  142. >
  143. <InputNumber style={{width: '100%'}}></InputNumber>
  144. </Form.Item>
  145. <Form.Item
  146. label="充电桩"
  147. name="chargingStationNum"
  148. rules={[
  149. {
  150. required: true,
  151. message: '请输入',
  152. },
  153. ]}
  154. >
  155. <InputNumber style={{width: '100%'}}></InputNumber>
  156. </Form.Item>
  157. </Form>
  158. </Modal>
  159. </div>
  160. )
  161. }