index.jsx 3.5 KB

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