bug fix && add third wish && add warning when choosing time
continuous-integration/drone/push Build is passing
Details
continuous-integration/drone/push Build is passing
Details
parent
30009110e8
commit
100a156c4c
|
|
@ -1,16 +1,6 @@
|
|||
import React from "react";
|
||||
import axios from "axios";
|
||||
import {
|
||||
Button,
|
||||
Form,
|
||||
Spin,
|
||||
message,
|
||||
Checkbox,
|
||||
Alert,
|
||||
BackTop,
|
||||
Layout,
|
||||
Card,
|
||||
} from "antd";
|
||||
import {Button,Form,Spin,message,Checkbox,Alert,BackTop,Layout,Card,List,notification} from "antd";
|
||||
import "antd/dist/antd.css";
|
||||
import { confirmAlert } from "react-confirm-alert";
|
||||
import "react-confirm-alert/src/react-confirm-alert.css";
|
||||
|
|
@ -35,7 +25,7 @@ class TimePicker extends React.Component {
|
|||
const validateFieldsAndScroll = this.props.form.validateFieldsAndScroll;
|
||||
confirmAlert({
|
||||
title: "提交面试时间",
|
||||
message: "点击 Yes 进行提交。",
|
||||
message: "请核实无误后谨慎提交。",
|
||||
buttons: [
|
||||
{
|
||||
label: "Yes",
|
||||
|
|
@ -133,9 +123,13 @@ class TimePicker extends React.Component {
|
|||
if (result.data.status === "success") {
|
||||
result.data.data.firstWish = Wishes[result.data.data.firstWish - 1];
|
||||
result.data.data.secondWish = Wishes[result.data.data.secondWish - 1];
|
||||
result.data.data.thirdWish = Wishes[result.data.data.thirdWish - 1];
|
||||
this.setState({
|
||||
info: result.data.data,
|
||||
});
|
||||
if(this.state.info.times.length !== 0){
|
||||
message.warning("你已选择过面试时间!重复提交面试时间可能导致场次排错,请谨慎重复提交!",0)
|
||||
}
|
||||
} else {
|
||||
message.error("获取个人信息失败,请稍后重试");
|
||||
this.props.history.push("/");
|
||||
|
|
@ -305,7 +299,7 @@ class TimePicker extends React.Component {
|
|||
/>
|
||||
)}
|
||||
</Form.Item>
|
||||
|
||||
<br></br>
|
||||
<Button
|
||||
icon="copy"
|
||||
style={{ display: "block", margin: "0 auto" }}
|
||||
|
|
@ -327,8 +321,32 @@ class TimePicker extends React.Component {
|
|||
</Spin>
|
||||
</div>
|
||||
);
|
||||
} else {
|
||||
return this.state.info ? (
|
||||
} else if(this.state.info){
|
||||
return( this.state.info.times.length !== 0 ?
|
||||
<Alert
|
||||
message="你已经选择过面试时间!"
|
||||
description={
|
||||
<div >
|
||||
<p>重复提交面试时间可能导致场次排错,请谨慎重复提交,点击右上角关闭警告以继续</p>
|
||||
<List
|
||||
size="small"
|
||||
header={<div>已选择的时间</div>}
|
||||
bordered
|
||||
dataSource={this.state.info.times}
|
||||
renderItem={item => <List.Item>{item}</List.Item>}
|
||||
/>
|
||||
</div>
|
||||
}
|
||||
type="warning"
|
||||
showIcon
|
||||
closable
|
||||
style={{ height: "700px", textAlign: "center"}}
|
||||
afterClose = {()=>{
|
||||
const info = Object.assign({},this.state.info,{times: []});
|
||||
this.setState({info:info})
|
||||
}
|
||||
}
|
||||
/>:
|
||||
<div>
|
||||
<Card title="个人信息">
|
||||
<Card type="inner" title="姓名">
|
||||
|
|
@ -343,8 +361,11 @@ class TimePicker extends React.Component {
|
|||
<Card type="inner" title="第二志愿">
|
||||
<h3>{this.state.info.secondWish}</h3>
|
||||
</Card>
|
||||
<Card type="inner" title="第三志愿">
|
||||
<h3>{this.state.info.thirdWish}</h3>
|
||||
</Card>
|
||||
<p></p>
|
||||
</Card>
|
||||
<br></br>
|
||||
<Button
|
||||
style={{ display: "block", margin: "0 auto" }}
|
||||
type="primary"
|
||||
|
|
@ -358,7 +379,8 @@ class TimePicker extends React.Component {
|
|||
确认个人信息
|
||||
</Button>
|
||||
</div>
|
||||
) : (
|
||||
)}else{
|
||||
return(
|
||||
<div>
|
||||
<Spin size="large" tip="Loading...">
|
||||
<Alert
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ class NewForm extends React.Component {
|
|||
}
|
||||
loadLocalStorage = () => {
|
||||
const values = JSON.parse(localStorage.getItem("formCache") || "{}");
|
||||
this.props.setID(values.id_student)
|
||||
this.props.form.setFieldsValue(values);
|
||||
};
|
||||
saveLocalStorage = () => {
|
||||
|
|
@ -88,6 +89,24 @@ class NewForm extends React.Component {
|
|||
});
|
||||
};
|
||||
|
||||
validator = (rule, value, callback) => {
|
||||
try{
|
||||
const form = this.props.form
|
||||
var firstWish = value
|
||||
var secondWish = form.getFieldValue('secondWish')
|
||||
var thirdWish = form.getFieldValue('thirdWish')
|
||||
if(firstWish === undefined ||secondWish === undefined ||thirdWish === undefined){
|
||||
throw("请完整填写三个志愿")
|
||||
}
|
||||
if(firstWish === secondWish||firstWish === thirdWish ||secondWish === thirdWish){
|
||||
throw("三个志愿不能重复")
|
||||
}
|
||||
}catch(err){
|
||||
callback(err)
|
||||
}
|
||||
callback()
|
||||
}
|
||||
|
||||
render() {
|
||||
const formItemLayout = {
|
||||
labelCol: {
|
||||
|
|
@ -217,13 +236,16 @@ class NewForm extends React.Component {
|
|||
})(<Input />)}
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item label="第一志愿(两志愿请不要重复选择)">
|
||||
<Form.Item label="第一志愿(三个志愿请不要重复选择)">
|
||||
{getFieldDecorator("firstWish", {
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择第一志愿",
|
||||
},
|
||||
{
|
||||
validator: this.validator
|
||||
}
|
||||
],
|
||||
})(
|
||||
<Radio.Group name="firstWish" size="medium">
|
||||
|
|
@ -236,16 +258,47 @@ class NewForm extends React.Component {
|
|||
)}
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item label="第二志愿(两志愿请不要重复选择)">
|
||||
<Form.Item label="第二志愿(三个志愿请不要重复选择)">
|
||||
{getFieldDecorator("secondWish", {
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择第二志愿",
|
||||
message: "请选择第二志愿"
|
||||
},
|
||||
{ validator: (rule, value, callback) => {
|
||||
this.props.form.validateFields(['firstWish'], { force: true });
|
||||
callback()
|
||||
}
|
||||
}
|
||||
],
|
||||
})(
|
||||
<Radio.Group name="secondWish" size="medium">
|
||||
<Radio.Group name="secondWish" size="medium"
|
||||
>
|
||||
<Radio.Button value={1}>电脑部</Radio.Button>
|
||||
<Radio.Button value={2}>电器部</Radio.Button>
|
||||
<Radio.Button value={3}>文宣部</Radio.Button>
|
||||
<Radio.Button value={4}>人资部</Radio.Button>
|
||||
<Radio.Button value={5}>财外部</Radio.Button>
|
||||
</Radio.Group>
|
||||
)}
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item label="第三志愿(三个志愿请不要重复选择)">
|
||||
{getFieldDecorator("thirdWish", {
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请选择第三志愿",
|
||||
},
|
||||
{ validator: (rule, value, callback) => {
|
||||
this.props.form.validateFields(['firstWish'], { force: true })
|
||||
callback()
|
||||
}
|
||||
}
|
||||
],
|
||||
})(
|
||||
<Radio.Group name="thirdWish" size="medium"
|
||||
>
|
||||
<Radio.Button value={1}>电脑部</Radio.Button>
|
||||
<Radio.Button value={2}>电器部</Radio.Button>
|
||||
<Radio.Button value={3}>文宣部</Radio.Button>
|
||||
|
|
@ -293,6 +346,16 @@ class NewForm extends React.Component {
|
|||
})(<Input.TextArea autosize={{ minRows: 2, maxRows: 8 }} />)}
|
||||
</Form.Item>
|
||||
|
||||
<Form.Item label="简述你选择第三志愿的原因">
|
||||
{getFieldDecorator("thirdReason", {
|
||||
rules: [
|
||||
{
|
||||
required: true,
|
||||
message: "请填入你选择志愿的原因",
|
||||
},
|
||||
],
|
||||
})(<Input.TextArea autosize={{ minRows: 2, maxRows: 8 }} />)}
|
||||
</Form.Item>
|
||||
<Form.Item label="简单介绍一下你的特长">
|
||||
{getFieldDecorator("question1", {
|
||||
rules: [
|
||||
|
|
|
|||
37
yarn.lock
37
yarn.lock
|
|
@ -3461,6 +3461,13 @@ decode-uri-component@^0.2.0:
|
|||
resolved "https://registry.npm.taobao.org/decode-uri-component/download/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545"
|
||||
integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=
|
||||
|
||||
deep-eql@~3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.npm.taobao.org/deep-eql/download/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df"
|
||||
integrity sha1-38lARACtHI/gI+faHfHBR8S0RN8=
|
||||
dependencies:
|
||||
type-detect "^4.0.0"
|
||||
|
||||
deep-equal@^1.0.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.npm.taobao.org/deep-equal/download/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a"
|
||||
|
|
@ -9241,6 +9248,18 @@ rc-trigger@^3.0.0:
|
|||
rc-animate "^3.0.0-rc.1"
|
||||
rc-util "^4.15.7"
|
||||
|
||||
rc-tween-one@^1.2.5:
|
||||
version "1.8.1"
|
||||
resolved "https://registry.npm.taobao.org/rc-tween-one/download/rc-tween-one-1.8.1.tgz#5b3b464b9bf2c369efc16c816cccf57bc16ae253"
|
||||
integrity sha1-WztGS5vyw2nvwWyBbMz1e8Fq4lM=
|
||||
dependencies:
|
||||
babel-runtime "6.x"
|
||||
deep-eql "~3.0.1"
|
||||
prop-types "^15.6.1"
|
||||
raf "~3.4.0"
|
||||
style-utils "~0.1.13"
|
||||
tween-functions "~1.2.0"
|
||||
|
||||
rc-tween-one@^2.2.0, rc-tween-one@^2.4.0, rc-tween-one@^2.5.0, rc-tween-one@^2.6.8:
|
||||
version "2.6.8"
|
||||
resolved "https://registry.npm.taobao.org/rc-tween-one/download/rc-tween-one-2.6.8.tgz#75edf141af491a28b18812dc419efa6b0238e2a7"
|
||||
|
|
@ -9481,6 +9500,14 @@ react-slick@~0.25.2:
|
|||
lodash.debounce "^4.0.8"
|
||||
resize-observer-polyfill "^1.5.0"
|
||||
|
||||
react-sublime-video@^0.2.5:
|
||||
version "0.2.5"
|
||||
resolved "https://registry.npm.taobao.org/react-sublime-video/download/react-sublime-video-0.2.5.tgz#c967b8e9a374b36d6a5d1b63b93fa6ec02e54842"
|
||||
integrity sha1-yWe46aN0s21qXRtjuT+m7ALlSEI=
|
||||
dependencies:
|
||||
prop-types "^15.5.10"
|
||||
rc-tween-one "^1.2.5"
|
||||
|
||||
react@^16.12.0:
|
||||
version "16.12.0"
|
||||
resolved "https://registry.npm.taobao.org/react/download/react-16.12.0.tgz#0c0a9c6a142429e3614834d5a778e18aa78a0b83"
|
||||
|
|
@ -10679,6 +10706,11 @@ style-loader@1.0.0:
|
|||
loader-utils "^1.2.3"
|
||||
schema-utils "^2.0.1"
|
||||
|
||||
style-utils@~0.1.13:
|
||||
version "0.1.24"
|
||||
resolved "https://registry.npm.taobao.org/style-utils/download/style-utils-0.1.24.tgz#fc0675d79a0b201bf86fc5d5a1dd202f838de544"
|
||||
integrity sha1-/AZ115oLIBv4b8XVod0gL4ON5UQ=
|
||||
|
||||
style-utils@~0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.npm.taobao.org/style-utils/download/style-utils-0.2.0.tgz#3d8614931b8ff6e1eea0545f1dbfaf271bb1aa7e"
|
||||
|
|
@ -11009,6 +11041,11 @@ type-check@~0.3.2:
|
|||
dependencies:
|
||||
prelude-ls "~1.1.2"
|
||||
|
||||
type-detect@^4.0.0:
|
||||
version "4.0.8"
|
||||
resolved "https://registry.npm.taobao.org/type-detect/download/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c"
|
||||
integrity sha1-dkb7XxiHHPu3dJ5pvTmmOI63RQw=
|
||||
|
||||
type-fest@^0.8.1:
|
||||
version "0.8.1"
|
||||
resolved "https://registry.npm.taobao.org/type-fest/download/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d"
|
||||
|
|
|
|||
Loading…
Reference in New Issue