试卷调分

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

@ -11,21 +11,209 @@ class ModulationModal_exercise extends Component {
score: 0,
subjective_questions: 0,
objective_questions: 0,
subjective_score: 0,
objective_score: 0,
subool: false,
Inputsval: '',
Inputsvals: '',
Inputsvaltype: false,
Inputsvaltypes: false,
Inputsvaltest: "",
Inputsvaltests: "",
}
//因为主观题加客观题的和是总分
}
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 = () => {
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) => {
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() {
let {Inputsvaltype, subjective_questions, objective_questions, score} = this.state;
let {
Inputsvaltype,
Inputsvaltypes,
Inputsvaltest,
Inputsvaltests,
subjective_score,
objective_score,
Inputsval,
Inputsvals,
} = this.state;
return (
<div>
<Modal
@ -58,66 +290,216 @@ class ModulationModal_exercise extends Component {
flexDirection: "column",
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>
<Input
className={Inputsvaltype === true ? "borerinput myinputnumbers bor-reds" : "myinputnumbers"}
style={{
width: "120px",
height: "40px",
}}
placeholder="请填写主观题成绩"
onChange={(e) => this.setInputs(e)}
value={subjective_questions === undefined || subjective_questions === null ? "" : subjective_questions}/>
<p className="mexeheigth"> ,</p>
<p className="mexeheigth"><span>总分</span><span>45.0 </span><span></span></p>
</div>
<div className="mexertwo">
<p className="mexeheigth2">客观题成绩:</p>
<Input
className={Inputsvaltype === true ? "borerinput myinputnumbers bor-reds" : "myinputnumbers"}
style={{
width: "120px",
height: "40px",
}}
placeholder="请填写客观题成绩"
onChange={(e) => this.setInputs(e)}
value={objective_questions === undefined || objective_questions === null ? "" : objective_questions}/>
<p className="mexeheigth"> ,</p>
<p className="mexeheigth"><span>总分</span><span>45.0 </span><span></span></p>
</div>
<div className="mexertwo">
<p className="mexeheigth2">最终成绩:</p>
<Input
className={Inputsvaltype === true ? "borerinput myinputnumbers bor-reds" : "myinputnumbers"}
style={{
width: "120px",
height: "40px",
}}
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 className="mexertwo">
<p className="mexeheigth2">主观题成绩:</p>
<Input
className={Inputsvaltype === true ? "borerinput myinputnumbers bor-reds" : "myinputnumbers"}
style={{
width: "150px",
height: "40px",
}}
placeholder="请填写主观题成绩"
onInput={this.setInputs}
value={Inputsval === undefined || Inputsval === null ? "" : Inputsval}/>
<p className="mexeheigth ml10"> ,</p>
<p className="mexeheigth"><span>总分</span><span>{subjective_score}</span><span
className="ml10"></span></p>
</div>
{
Inputsvaltype === true ?
<p style={{
color: "#DD1717",
width: "77%",
marginLeft: "75px",
marginTop: "10px",
}}>{Inputsvaltest}</p>
: ""
}
{Inputsvaltypes === true ?
<style>
{
`
.ant-input:hover {
border: 1px solid #DD1717!important;
}
.ant-input:focus {
border: 1px solid #DD1717!important;
}
}
`
}
</style>
:
""
</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>
</div>
)

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

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

Loading…
Cancel
Save