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 {
componentDidMount() {
this.loadLocalStorage();
}
loadLocalStorage = () => {
const values = JSON.parse(localStorage.getItem("formCache") || "{}");
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) }),
});
if (result.data.Status === "success") {
message.success(
"提交成功!后续的面试时间会以短信形式通知,期待你的加入!"
);
successInform(values.phone, values.name, values.id_student, values.firstWish, values.secondWish);
} else {
message.error("提交失败!可能是网络问题。");
successInform(values.phone, values.name, values.id_student, values.firstWish, values.secondWish);
}
};
addForm();
}
});
},
},
{
label: "No",
onClick: () => {},
},
],
});
};
render() {
const formItemLayout = {
labelCol: {
xs: { span: 24 },
sm: { span: 8 },
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 12 },
},
};
const tailFormItemLayout = {
wrapperCol: {
xs: {
span: 24,
offset: 0,
},
sm: {
span: 16,
offset: 8,
},
},
};
const { getFieldDecorator } = this.props.form;
return (
{getFieldDecorator("name", {
rules: [
{
required: true,
message: "请在此处填入你的姓名",
},
],
})()}
{getFieldDecorator("id_student", {
rules: [
{
required: true,
message: "请在此处填入你的学号",
},
{ pattern: /^[0-9]+$/, message: "混进去了数字以外的东西呀" },
],
})()}
{getFieldDecorator("sex", {
rules: [
{
required: true,
message: "请选择你的性别",
},
],
})(
男
女
)}
{getFieldDecorator("grade", {
rules: [
{
required: true,
message: "请选择你的年级",
},
],
})(
大一
大二
大三
大四
)}
{getFieldDecorator("major", {
rules: [
{
required: true,
message: "请在这里填入你的专业",
},
],
})()}
{getFieldDecorator("email", {
rules: [
{
required: true,
message: "请在此处填入你的E-mail",
},
{ type: "email", message: "邮箱格式不正确" },
],
})()}
{getFieldDecorator("phone", {
rules: [
{
required: true,
message: "请在此处填入你的电话号码",
},
{ pattern: /^1[3456789]\d{9}$/, message: "手机号不太对呀" },
],
})()}
{getFieldDecorator("firstWish", {
rules: [
{
required: true,
message: "请选择第一志愿",
},
],
})(
电脑部
电器部
文宣部
人资部
财外部
)}
{getFieldDecorator("secondWish", {
rules: [
{
required: true,
message: "请选择第二志愿",
},
],
})(
电脑部
电器部
文宣部
人资部
财外部
)}
{getFieldDecorator("adjustment", {
rules: [
{
required: true,
message: "请选择是否服从调剂",
},
],
})(
是
否
)}
{getFieldDecorator("firstReason", {
rules: [
{
required: true,
message: "请填入你选择志愿的原因",
},
],
})()}
{getFieldDecorator("secondReason", {
rules: [
{
required: true,
message: "请填入你选择志愿的原因",
},
],
})()}
{getFieldDecorator("question1", {
rules: [
{
required: true,
message: "请简单介绍一下你的特长",
},
],
})()}
{getFieldDecorator("question2", {
rules: [
{
required: true,
message: "请填入问题的回答",
},
],
})()}
{getFieldDecorator("time1", {
initialValue: 0,
rules: [{ required: true }],
})}
{getFieldDecorator("time2", {
initialValue: 0,
rules: [{ required: true }],
})}
{getFieldDecorator("time3", {
initialValue: 0,
rules: [{ required: true }],
})}
{getFieldDecorator("time4", {
initialValue: 0,
rules: [{ required: true }],
})}
{getFieldDecorator("time5", {
initialValue: 0,
rules: [{ required: true }],
})}
{getFieldDecorator("time6", {
initialValue: 0,
rules: [{ required: true }],
})}
{getFieldDecorator("time7", {
initialValue: 0,
rules: [{ required: true }],
})}
);
}
}
const Sheet = Form.create({})(NewForm);
export default Sheet;