index.jsx 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. import React, { useEffect } from 'react';
  2. import { Form, Button, Divider, Input, Select } from 'antd';
  3. import { connect } from 'umi';
  4. import styles from './index.less';
  5. const { Option } = Select;
  6. const formItemLayout = {
  7. labelCol: {
  8. span: 5,
  9. },
  10. wrapperCol: {
  11. span: 19,
  12. },
  13. };
  14. const tailLayout = {
  15. wrapperCol: { offset: 8, span: 16 },
  16. };
  17. const Step1 = (props) => {
  18. const { dispatch, data, osType } = props;
  19. const [form] = Form.useForm();
  20. if (!data) {
  21. return null;
  22. }
  23. const { validateFields } = form;
  24. useEffect(() => {
  25. dispatch({
  26. type: 'editReport/getOsType',
  27. payload: { examId: 1718 },
  28. });
  29. }, [dispatch]);
  30. const onFinish = (values) => {
  31. let formData = new FormData();
  32. formData.append('name', values.reportName);
  33. formData.append('case_id', '1718');
  34. formData.append('task_id', '1718');
  35. formData.append('worker_id', '1');
  36. formData.append('case_take_id', '1718-1718');
  37. formData.append('device_model', values.deviceBrand);
  38. formData.append('device_brand', values.deviceName);
  39. formData.append('device_os', values.os);
  40. dispatch({
  41. type: 'editReport/saveReportCommonDetail',
  42. payload: formData,
  43. });
  44. };
  45. const onFinishFailed = (errorInfo) => {
  46. console.log('Failed:', errorInfo);
  47. };
  48. const onValidateForm = async () => {
  49. const isValid = await validateFields();
  50. if (!isValid.outOfDate) {
  51. //表单验证通过,开始发送请求
  52. var request = new XMLHttpRequest();
  53. request.open('POST', 'http://foo.com/submitform.php');
  54. request.send(formData);
  55. dispatch({
  56. type: 'editReport/getOsTypeAction',
  57. payload: { examId: 1945 },
  58. });
  59. }
  60. // if (dispatch) {
  61. // dispatch({
  62. // type: 'editReport/saveStepFormData',
  63. // payload: values,
  64. // });
  65. // dispatch({
  66. // type: 'editReport/saveCurrentStep',
  67. // payload: 'confirm',
  68. // });
  69. //
  70. // }
  71. };
  72. return (
  73. <>
  74. <Form
  75. {...formItemLayout}
  76. form={form}
  77. layout="horizontal"
  78. className={styles.stepForm}
  79. initialValues={data}
  80. onFinish={onFinish}
  81. onFinishFailed={onFinishFailed}
  82. >
  83. <Form.Item label="报告名称" name="reportName" rules={[{ required: true, message: '请输入报告名称' }]}>
  84. <Input placeholder="请输入报告名称" />
  85. </Form.Item>
  86. <Form.Item label="设备名称" name="deviceName" rules={[{ required: true, message: '请输入设备品牌' }]}>
  87. <Input placeholder="请输入设备名称" />
  88. </Form.Item>
  89. <Form.Item label="设备品牌" name="deviceBrand" rules={[{ required: true, message: '请输入设备品牌' }]}>
  90. <Input placeholder="请输入设备品牌" />
  91. </Form.Item>
  92. <Form.Item label="操作系统" name="os" rules={[{ required: true, message: '请输入操作系统' }]}>
  93. <Select placeholder="请选择操作系统">
  94. {osType.map((option) => {
  95. return <Select.Option value={option} key={option}>{option}</Select.Option>;
  96. })}
  97. </Select>
  98. </Form.Item>
  99. <Form.Item {...tailLayout}>
  100. <Button colSpan={12} type="primary" htmlType="submit"
  101. style={{ float: 'right' }}>
  102. 下一步
  103. </Button>
  104. </Form.Item>
  105. </Form>
  106. </>
  107. )
  108. };
  109. export default connect(({ editReport }) => ({
  110. data: editReport.step,
  111. osType: editReport.osType,
  112. }))(Step1);