modal.jsx 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  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: '保养', label: '保养'},
  12. {value: '维修', label: '维修'}
  13. ]
  14. //状态下拉框
  15. const status = [
  16. {value: 1, label: '运营'},
  17. {value: 2, label: '非运营'},
  18. ]
  19. /**
  20. *确定时候的回调
  21. */
  22. function handleOk() {
  23. // 验证表单
  24. form.validateFields().then(async () => {
  25. let formData = JSON.parse(JSON.stringify(form.getFieldsValue()))
  26. if (row?.id) {
  27. // 修改数据
  28. formData.id = row.id
  29. }
  30. let {code, message} = await axios.post('/maintenanceEdit/editMaintenanceImplementation', [formData])
  31. if (code === 200) {
  32. messageApi.success(message)
  33. handleCancel()
  34. } else {
  35. messageApi.error(message)
  36. }
  37. })
  38. }
  39. // 关闭页面
  40. const handleCancel = () => {
  41. closeModal(false);
  42. form.resetFields()
  43. };
  44. // 表单
  45. useEffect(() => {
  46. if (row.id) {
  47. let formData = JSON.parse(JSON.stringify(row))
  48. form.setFieldsValue(formData)
  49. }
  50. }, [row])
  51. return (
  52. <div className="form">
  53. {contextHolder}
  54. <Modal title={row?.id ? '修改数据' : '新增数据'} open={isModalOpen} onOk={handleOk} onCancel={handleCancel}
  55. width={900}
  56. cancelText="取消" okText="确定">
  57. <Form
  58. name="statics"
  59. form={form}
  60. wrapperCol={
  61. {span: 30, offset: 0}
  62. }
  63. layout='inline'
  64. initialValues={{
  65. remember: true,
  66. }}
  67. autoComplete="off"
  68. >
  69. <Form.Item
  70. label="执行类型"
  71. name="executeType"
  72. rules={[
  73. {
  74. required: true,
  75. message: '请输入',
  76. },
  77. ]}
  78. >
  79. <Input></Input>
  80. </Form.Item>
  81. <Form.Item
  82. label="数量"
  83. name="number"
  84. rules={[
  85. {
  86. required: true,
  87. message: '请输入',
  88. },
  89. ]}
  90. >
  91. <InputNumber style={{width: '100%'}}></InputNumber>
  92. </Form.Item>
  93. </Form>
  94. </Modal>
  95. </div>
  96. )
  97. }