import React from "react"; import axios from "axios"; import { Button, Form, Input, Icon, Radio, message } from "antd"; import "antd/dist/antd.css"; import { confirmAlert } from "react-confirm-alert"; import "react-confirm-alert/src/react-confirm-alert.css"; import qs from "qs"; import successInform from "./Message"; class NewForm extends React.Component { constructor() { super(); this.state = { WishValid:false,firstWish:undefined,secondWish:undefined }; } componentDidMount() { this.loadLocalStorage(); this.props.form.validateFields(['firstWish'], { force: true }); } loadLocalStorage = () => { const values = JSON.parse(localStorage.getItem("formCache") || "{}"); this.props.setID(values.id_student); this.props.form.setFieldsValue(values); }; saveLocalStorage = () => { const values = this.props.form.getFieldsValue(); localStorage.setItem("formCache", JSON.stringify(values)); }; onStuIdChange = () => { let ID = this.props.form.getFieldsValue(["id_student"])["id_student"]; this.props.setID(ID); }; handleSubmit = (e) => { e.preventDefault(); const validateFieldsAndScroll = this.props.form.validateFieldsAndScroll; confirmAlert({ title: "提交报名表", message: "您填写的表格已经保存在浏览器中,以后可以修改后覆盖提交。点击 Yes 进行提交。", buttons: [ { label: "Yes", onClick: () => { validateFieldsAndScroll((err, values) => { if(err) { message.error("填写不正确,请按照提示修改"); } else { // console.log(values); let addForm = async () => { let result = await axios("api/submit", { headers: { "Content-Type": "application/x-www-form-urlencoded", }, method: "POST", data: qs.stringify({ dto: JSON.stringify(values) }), }); this.saveLocalStorage(); if (result.data.status === "success") { message.success( "提交成功!后续的面试时间会以短信形式通知,期待你的加入!" ); successInform( values.phone, values.name, values.id_student, values.firstWish, values.secondWish ); } else { if (result.data.errorMsg === "TICKET_NOT_LEGEAL") { message.error("提交失败!请检查报名表填写是否正确。"); } else if ( result.data.errorMsg === "TICKET_INFO_INCOMPLETE" ) { message.error("提交失败!请检查报名表填写是否完整。"); } else if (result.data.errorMsg === "TICKET_ALREADY_OK") { message.error( "我们已为您分配了面试场次,请注意短信通知,请勿重复提交!" ); } else { message.error("提交失败!可能是网络问题。"); } } }; addForm(); } }); }, }, { label: "No", onClick: () => {}, }, ], }); }; validator = (rule, value, callback) => { this.setState({WishValid:true}) const form = this.props.form var firstWish = value var secondWish = form.getFieldValue('secondWish') var thirdWish = form.getFieldValue('thirdWish') this.setState({firstWish:firstWish,secondWish:secondWish}) try{ if(firstWish === undefined ||secondWish === undefined ||thirdWish === undefined){ throw("请完整填写三个志愿") } if(firstWish === secondWish||firstWish === thirdWish ||secondWish === thirdWish){ throw("三个志愿不能重复") } }catch(err){ this.setState({WishValid:false}) callback(err) } callback() } render() { const questions = [[], ["1","2"], ["3","4"], ["5","6"], ["7","8"], ["9","10"]] const tailFormItemLayout = { wrapperCol: { xs: { span: 24, offset: 0, }, sm: { span: 16, offset: 8, }, }, }; const { getFieldDecorator } = this.props.form; return (