试卷调分

issues25489
杨树林 5 years ago
parent 95e145cbc3
commit 4247476e5c

@ -11,21 +11,209 @@ class ModulationModal_exercise extends Component {
score: 0, score: 0,
subjective_questions: 0, subjective_questions: 0,
objective_questions: 0, objective_questions: 0,
subjective_score: 0,
objective_score: 0,
subool: false,
Inputsval: '',
Inputsvals: '',
Inputsvaltype: false,
Inputsvaltypes: false,
Inputsvaltest: "",
Inputsvaltests: "",
} }
//因为主观题加客观题的和是总分 //因为主观题加客观题的和是总分
} }
componentDidMount = () => { componentDidMount = () => {
console.log("ModulationModal_exercise");
console.log(this.props);
this.setState({
subjective_score: this.props.subjective_score,
objective_score: this.props.objective_score,
})
if (this.props.subjective_score > 0 && this.props.objective_score > 0) {
this.setState({
subool: false,
})
} else {
this.setState({
subool: true
})
}
} }
Saves = () => { Saves = () => {
let {textareaval, subjective_questions, objective_questions, score} = this.state; let {
textareaval,
subjective_questions,
objective_questions,
score,
subool,
Inputsval,
subjective_score,
objective_score,
Inputsvals
} = this.state;
let re = /^[0-9]+.?[0-9]*$/;//判断字符串是否为数字 //判断正整数 /^[1-9]+[0-9]*]*$/
if (subool === false) {
//不是总分模式
if (Inputsval === undefined || Inputsval === null || Inputsval === "") {
this.setState({
Inputsval: "",
Inputsvaltype: true,
Inputsvaltest: "请填写分数",
})
return
}
//判断主观题
var nubmer = Inputsval;
if (!re.test(nubmer)) {
this.setState({
Inputsval: Inputsval,
Inputsvaltype: true,
Inputsvaltest: "请输入0-100的分数",
})
return;
}
if (0 > parseFloat(Inputsval)) {
this.setState({
Inputsval: Inputsval,
Inputsvaltype: true,
Inputsvaltest: "成绩不能小于零",
})
return;
} else if (parseFloat(Inputsval) > this.props.subjective_score) {
this.setState({
Inputsval: Inputsval,
Inputsvaltype: true,
Inputsvaltest: `成绩不能大于${this.props.subjective_score}`,
})
return;
}
//判断客观题
if (Inputsvals === undefined || Inputsvals === null || Inputsvals === "") {
this.setState({
Inputsvals: "",
Inputsvaltypes: true,
Inputsvaltests: "请填写分数",
})
return
}
var nubmers = Inputsvals;
if (!re.test(nubmers)) {
this.setState({
Inputsvals: "",
Inputsvaltypes: true,
Inputsvaltests: "请输入0-100的分数",
})
return;
}
if (0 > parseFloat(Inputsvals)) {
this.setState({
Inputsvals: Inputsvals,
Inputsvaltypes: true,
Inputsvaltests: "请输入0-100的分数",
})
return;
} else if (parseFloat(Inputsval) > 100) {
this.setState({
Inputsvals: Inputsvals,
Inputsvaltypes: true,
Inputsvaltests: `成绩不能大于${this.props.objective_score}`,
})
return;
}
// this.props.Saves(textareaval, Inputsval)
} else {
//总分模式
if (subjective_score > 0) {
//主观题
if (Inputsval === undefined || Inputsval === null || Inputsval === "") {
this.setState({
Inputsval: "",
Inputsvaltype: true,
Inputsvaltest: "请填写分数",
})
return
}
//判断主观题
var nubmer = Inputsval;
if (!re.test(nubmer)) {
this.setState({
Inputsval: Inputsval,
Inputsvaltype: true,
Inputsvaltest: "请输入0-100的分数",
})
return;
}
if (0 > parseFloat(Inputsval)) {
this.setState({
Inputsval: Inputsval,
Inputsvaltype: true,
Inputsvaltest: "成绩不能小于零",
})
return;
} else if (parseFloat(Inputsval) > this.props.subjective_score) {
this.setState({
Inputsval: Inputsval,
Inputsvaltype: true,
Inputsvaltest: `成绩不能大于${this.props.subjective_score}`,
})
return;
}
} else if (objective_score > 0) {
//客观题
if (Inputsvals === undefined || Inputsvals === null || Inputsvals === "") {
this.setState({
Inputsvals: "",
Inputsvaltypes: true,
Inputsvaltests: "请填写分数",
})
return
}
var nubmers = Inputsvals;
if (!re.test(nubmers)) {
this.setState({
Inputsvals: "",
Inputsvaltypes: true,
Inputsvaltests: "请输入0-100的分数",
})
return;
}
if (0 > parseFloat(Inputsvals)) {
this.setState({
Inputsvals: Inputsvals,
Inputsvaltypes: true,
Inputsvaltests: "请输入0-100的分数",
})
return;
} else if (parseFloat(Inputsvals) > 100) {
this.setState({
Inputsvals: Inputsvals,
Inputsvaltypes: true,
Inputsvaltests: `成绩不能大于${this.props.objective_score}`,
})
return;
}
}
}
this.props.Saves(Inputsval, Inputsvals);
} }
@ -35,13 +223,57 @@ class ModulationModal_exercise extends Component {
}) })
} }
//主观题
setInputs = (e) => { setInputs = (e) => {
console.log("主");
console.log(e.target.value);
this.setState({
Inputsval: e.target.value,
Inputsvaltype: false,
})
}
//客观题
setInputss = (e) => {
console.log("客");
console.log(e.target.value);
this.setState({
Inputsvals: e.target.value,
Inputsvaltypes: false,
})
}
//最终成绩主观题
setInputsss = (e) => {
console.log("终主");
console.log(e.target.value);
this.setState({
Inputsval: e.target.value,
Inputsvaltype: false,
})
}
//最终成绩客观题
setInputssss = (e) => {
console.log("终客");
console.log(e.target.value);
this.setState({
Inputsvals: e.target.value,
Inputsvaltypes: false,
})
} }
render() { render() {
let {Inputsvaltype, subjective_questions, objective_questions, score} = this.state; let {
Inputsvaltype,
Inputsvaltypes,
Inputsvaltest,
Inputsvaltests,
subjective_score,
objective_score,
Inputsval,
Inputsvals,
} = this.state;
return ( return (
<div> <div>
<Modal <Modal
@ -58,66 +290,216 @@ class ModulationModal_exercise extends Component {
flexDirection: "column", flexDirection: "column",
alignItems: "center", alignItems: "center",
}}> }}>
{
subjective_score > 0 && objective_score > 0 ?
<div>
{Inputsvaltype === true ?
<style>
{
`
.ant-input:hover {
border: 1px solid #DD1717!important;
}
.ant-input:focus {
border: 1px solid #DD1717!important;
}
}
`
}
</style>
:
""
<div className="mexertwo"> }
<p className="mexeheigth2">主观题成绩:</p> <div className="mexertwo">
<Input <p className="mexeheigth2">主观题成绩:</p>
className={Inputsvaltype === true ? "borerinput myinputnumbers bor-reds" : "myinputnumbers"} <Input
style={{ className={Inputsvaltype === true ? "borerinput myinputnumbers bor-reds" : "myinputnumbers"}
width: "120px", style={{
height: "40px", width: "150px",
}} height: "40px",
placeholder="请填写主观题成绩" }}
onChange={(e) => this.setInputs(e)} placeholder="请填写主观题成绩"
value={subjective_questions === undefined || subjective_questions === null ? "" : subjective_questions}/> onInput={this.setInputs}
<p className="mexeheigth"> ,</p> value={Inputsval === undefined || Inputsval === null ? "" : Inputsval}/>
<p className="mexeheigth"><span>总分</span><span>45.0 </span><span></span></p> <p className="mexeheigth ml10"> ,</p>
</div> <p className="mexeheigth"><span>总分</span><span>{subjective_score}</span><span
className="ml10"></span></p>
<div className="mexertwo"> </div>
{
<p className="mexeheigth2">客观题成绩:</p> Inputsvaltype === true ?
<Input <p style={{
className={Inputsvaltype === true ? "borerinput myinputnumbers bor-reds" : "myinputnumbers"} color: "#DD1717",
style={{ width: "77%",
width: "120px", marginLeft: "75px",
height: "40px", marginTop: "10px",
}} }}>{Inputsvaltest}</p>
placeholder="请填写客观题成绩" : ""
onChange={(e) => this.setInputs(e)} }
value={objective_questions === undefined || objective_questions === null ? "" : objective_questions}/> {Inputsvaltypes === true ?
<p className="mexeheigth"> ,</p> <style>
<p className="mexeheigth"><span>总分</span><span>45.0 </span><span></span></p> {
`
</div> .ant-input:hover {
border: 1px solid #DD1717!important;
<div className="mexertwo"> }
<p className="mexeheigth2">最终成绩:</p> .ant-input:focus {
<Input border: 1px solid #DD1717!important;
className={Inputsvaltype === true ? "borerinput myinputnumbers bor-reds" : "myinputnumbers"} }
style={{ }
width: "120px", `
height: "40px", }
}} </style>
placeholder="请填写最终成绩" :
onChange={(e) => this.setInputs(e)} ""
value={score === undefined || score === null ? "" : score}/>
<p className="mexeheigth"> ,</p>
<p className="mexeheigth"><span>总分</span><span>45.0 </span><span></span></p>
</div>
<div className="minbuttionte">
<a className="task-btn color-white mr30" style={{width: "72px",}}
onClick={this.props.Cancel}>{this.props.Cancelname || '取消'}</a>
<a className="task-btn task-btn-orange" style={{width: "72px",}}
onClick={this.Saves}>{this.props.Savesname || '保存'}</a>
</div>
</div> }
<div className="mexertwo">
<p className="mexeheigth2">客观题成绩:</p>
<Input
className={Inputsvaltypes === true ? "borerinput myinputnumbers bor-reds" : "myinputnumbers"}
style={{
width: "150px",
height: "40px",
}}
placeholder="请填写客观题成绩"
onInput={this.setInputss}
value={Inputsvals === undefined || Inputsvals === null ? "" : Inputsvals}/>
<p className="mexeheigth ml10"> ,</p>
<p className="mexeheigth"><span>总分</span><span>{objective_score} </span><span
className="ml10"></span></p>
</div>
{
Inputsvaltypes === true ?
<p style={{
color: "#DD1717",
width: "77%",
marginLeft: "75px",
marginTop: "10px",
}}>{Inputsvaltests}</p>
: ""
}
</div>
:
<div className="mt20">
{
subjective_score > 0 && objective_score === 0 ?
<div>
{Inputsvaltype === true ?
<style>
{
`
.ant-input:hover {
border: 1px solid #DD1717!important;
}
.ant-input:focus {
border: 1px solid #DD1717!important;
}
}
`
}
</style>
:
""
}
<div className="mexertwo">
<p className="mexeheigth2">最终成绩:</p>
<Input
className={Inputsvaltype === true ? "borerinput myinputnumbers bor-reds" : "myinputnumbers"}
style={{
width: "150px",
height: "40px",
}}
placeholder="请填写最终成绩"
onInput={this.setInputsss}
value={Inputsval === undefined || Inputsval === null ? "" : Inputsval}/>
<p className="mexeheigth ml10"> ,</p>
<p className="mexeheigth">
<span>总分</span><span>{subjective_score > 0 && objective_score === 0 ? subjective_score : ""} {objective_score > 0 && subjective_score === 0 ? objective_score : ""}</span><span
className="ml10"></span></p>
</div>
{
Inputsvaltype === true ?
<p style={{
color: "#DD1717",
width: "77%",
marginLeft: "75px",
marginTop: "10px",
}}>{Inputsvaltest}</p>
: ""
}
</div>
:
""
}
{
objective_score > 0 && subjective_score === 0 ?
<div>
{Inputsvaltypes === true ?
<style>
{
`
.ant-input:hover {
border: 1px solid #DD1717!important;
}
.ant-input:focus {
border: 1px solid #DD1717!important;
}
}
`
}
</style>
:
""
}
<div className="mexertwo">
<p className="mexeheigth2">最终成绩:</p>
<Input
className={Inputsvaltypes === true ? "borerinput myinputnumbers bor-reds" : "myinputnumbers"}
style={{
width: "150px",
height: "40px",
}}
placeholder="请填写最终成绩"
onInput={this.setInputssss}
value={Inputsvals === undefined || Inputsvals === null ? "" : Inputsvals}/>
<p className="mexeheigth ml10"> ,</p>
<p className="mexeheigth">
<span>总分</span><span>{subjective_score > 0 && objective_score === 0 ? subjective_score : ""} {objective_score > 0 && subjective_score === 0 ? objective_score : ""}</span><span
className="ml10"></span></p>
</div>
{
Inputsvaltypes === true ?
<p style={{
color: "#DD1717",
width: "77%",
marginLeft: "75px",
marginTop: "10px",
}}>{Inputsvaltests}</p>
: ""
}
</div>
:
""
}
<div className="minbuttionte">
<a className="task-btn color-white mr30" style={{width: "72px",}}
onClick={this.props.Cancel}>{this.props.Cancelname || '取消'}</a>
<a className="task-btn task-btn-orange" style={{width: "72px",}}
onClick={this.Saves}>{this.props.Savesname || '保存'}</a>
</div>
</div>
}
</div>
</Modal> </Modal>
</div> </div>
) )

@ -361,7 +361,7 @@
.minbuttionte { .minbuttionte {
/* display: flex; */ /* display: flex; */
margin-top: 27px; margin-top: 20px;
width: 100%; width: 100%;
/* align-items: center; */ /* align-items: center; */
margin-bottom: 17px; margin-bottom: 17px;

@ -2598,9 +2598,11 @@ class Studentshavecompletedthelist extends Component {
} }
// 调分 // 调分
Adjustment = (e) => { Adjustment = (e) => {
console.log("Adjustment");
console.log(e);
this.setState({ this.setState({
testpapergradingboll: true, testpapergradingboll: true,
exeuserid: e.user_id, exeuserid: e,
}) })
} }
@ -2615,12 +2617,13 @@ class Studentshavecompletedthelist extends Component {
//试卷调分 //试卷调分
Testpapergrading = (v, n) => { Testpapergrading = (v, n) => {
// debugger
var exercise_id = this.props.match.params.Id; var exercise_id = this.props.match.params.Id;
let url = `/exercises/${exercise_id}/adjust_score.json`; let url = `/exercises/${exercise_id}/adjust_score.json`;
axios.post(url, { axios.post(url, {
user_id: this.state.exeuserid, user_id: this.state.exeuserid,
subjective_score: n, subjective_score: v,
objective_score: v, objective_score: n,
}) })
.then((response) => { .then((response) => {
if (response.data.status == '0') { if (response.data.status == '0') {
@ -2629,7 +2632,7 @@ class Studentshavecompletedthelist extends Component {
this.Teacherliststudentlist(); this.Teacherliststudentlist();
} }
}) })
.catch(function (error) { .catch((error) => {
console.log(error); console.log(error);
this.setState({testpapergradingboll: false}) this.setState({testpapergradingboll: false})
}); });
@ -2666,18 +2669,20 @@ class Studentshavecompletedthelist extends Component {
</div> </div>
: :
<div> <div>
{testpapergradingboll === true ? <ModulationModal {/*{testpapergradingboll === true ? <ModulationModal*/}
visible={testpapergradingboll} {/* visible={testpapergradingboll}*/}
Cancel={() => this.Adjustments()} {/* Cancel={() => this.Adjustments()}*/}
Saves={(value, num) => this.Testpapergrading(value, num)} {/* Saves={(value, num) => this.Testpapergrading(value, num)}*/}
/> : ""} {/*/> : ""}*/}
{/*{*/} {
{/* testpapergradingboll === true ? <ModulationModal_exercise*/} testpapergradingboll === true ? <ModulationModal_exercise
{/* visible={testpapergradingboll}*/} {...this.props}
{/* Cancel={() => this.Adjustments()}*/} {...this.state}
{/* Saves={(value, num) => this.Testpapergrading(value, num)}*/} visible={testpapergradingboll}
{/* /> : ""*/} Cancel={() => this.Adjustments()}
{/*}*/} Saves={(value, num) => this.Testpapergrading(value, num)}
/> : ""
}
<div className="edu-back-white" > <div className="edu-back-white" >
<ul className="clearfix" style={{padding: '10px 30px 10px 30px'}}> <ul className="clearfix" style={{padding: '10px 30px 10px 30px'}}>

Loading…
Cancel
Save