|
@@ -12,21 +12,18 @@
|
|
>
|
|
>
|
|
<div class="modify-mark-ai-set">
|
|
<div class="modify-mark-ai-set">
|
|
<el-form ref="FormRef" :model="form" :rules="rules" label-width="90px">
|
|
<el-form ref="FormRef" :model="form" :rules="rules" label-width="90px">
|
|
- <el-form-item label="试卷题干:" prop="questionStem">
|
|
|
|
|
|
+ <el-form-item label="试卷题干:" prop="mainTitle">
|
|
<el-input
|
|
<el-input
|
|
- v-model="form.questionStem"
|
|
|
|
|
|
+ v-model="form.mainTitle"
|
|
type="textarea"
|
|
type="textarea"
|
|
- :maxlength="999"
|
|
|
|
|
|
+ :maxlength="499"
|
|
show-word-limit
|
|
show-word-limit
|
|
:rows="4"
|
|
:rows="4"
|
|
placeholder="请输入试卷题干"
|
|
placeholder="请输入试卷题干"
|
|
></el-input>
|
|
></el-input>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
- <el-form-item label="评分模式:" prop="scoreMode">
|
|
|
|
- <el-radio-group
|
|
|
|
- v-model="form.scoreMode"
|
|
|
|
- @change="handleScoreModeChange"
|
|
|
|
- >
|
|
|
|
|
|
+ <el-form-item label="评分模式:" prop="mode">
|
|
|
|
+ <el-radio-group v-model="form.mode" @change="handleScoreModeChange">
|
|
<el-radio label="POINT">按得分点评分</el-radio>
|
|
<el-radio label="POINT">按得分点评分</el-radio>
|
|
<el-radio label="LEVEL">按档次评分</el-radio>
|
|
<el-radio label="LEVEL">按档次评分</el-radio>
|
|
</el-radio-group>
|
|
</el-radio-group>
|
|
@@ -51,14 +48,14 @@
|
|
>新增</el-button
|
|
>新增</el-button
|
|
>
|
|
>
|
|
</div>
|
|
</div>
|
|
- <el-table :data="form.answers" border>
|
|
|
|
|
|
+ <el-table :data="answers" border>
|
|
<el-table-column
|
|
<el-table-column
|
|
type="index"
|
|
type="index"
|
|
label="序号"
|
|
label="序号"
|
|
width="60"
|
|
width="60"
|
|
align="center"
|
|
align="center"
|
|
></el-table-column>
|
|
></el-table-column>
|
|
- <template v-if="form.scoreMode === 'POINT'">
|
|
|
|
|
|
+ <template v-if="form.mode === 'POINT'">
|
|
<el-table-column prop="score" label="分值" width="100">
|
|
<el-table-column prop="score" label="分值" width="100">
|
|
<template slot-scope="scope">
|
|
<template slot-scope="scope">
|
|
{{ scope.row.score }}
|
|
{{ scope.row.score }}
|
|
@@ -98,7 +95,9 @@
|
|
</div>
|
|
</div>
|
|
<div slot="footer">
|
|
<div slot="footer">
|
|
<el-button @click="close">取 消</el-button>
|
|
<el-button @click="close">取 消</el-button>
|
|
- <el-button type="primary" @click="handleSubmit">确 定</el-button>
|
|
|
|
|
|
+ <el-button type="primary" :loading="loading" @click="handleSubmit"
|
|
|
|
+ >确 定</el-button
|
|
|
|
+ >
|
|
</div>
|
|
</div>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
|
|
|
|
@@ -116,18 +115,13 @@
|
|
</template>
|
|
</template>
|
|
|
|
|
|
<script>
|
|
<script>
|
|
|
|
+import {
|
|
|
|
+ markSubjectiveAiParamInfo,
|
|
|
|
+ markSubjectiveAiParamSave,
|
|
|
|
+} from "../../api";
|
|
import ModifyMarkAiPointAnswer from "./ModifyMarkAiPointAnswer.vue";
|
|
import ModifyMarkAiPointAnswer from "./ModifyMarkAiPointAnswer.vue";
|
|
import ModifyMarkAiLevelAnswer from "./ModifyMarkAiLevelAnswer.vue";
|
|
import ModifyMarkAiLevelAnswer from "./ModifyMarkAiLevelAnswer.vue";
|
|
|
|
|
|
-const getInitForm = () => {
|
|
|
|
- return {
|
|
|
|
- questionStem: "",
|
|
|
|
- scoreMode: "POINT",
|
|
|
|
- minScore: undefined,
|
|
|
|
- answers: [],
|
|
|
|
- };
|
|
|
|
-};
|
|
|
|
-
|
|
|
|
export default {
|
|
export default {
|
|
name: "modify-mark-ai-set",
|
|
name: "modify-mark-ai-set",
|
|
components: {
|
|
components: {
|
|
@@ -145,12 +139,12 @@ export default {
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
modalIsShow: false,
|
|
modalIsShow: false,
|
|
- form: getInitForm(),
|
|
|
|
|
|
+ form: this.getInitForm(),
|
|
rules: {
|
|
rules: {
|
|
- questionStem: [
|
|
|
|
|
|
+ mainTitle: [
|
|
{ required: true, message: "请输入试卷题干", trigger: "blur" },
|
|
{ required: true, message: "请输入试卷题干", trigger: "blur" },
|
|
],
|
|
],
|
|
- scoreMode: [
|
|
|
|
|
|
+ mode: [
|
|
{ required: true, message: "请选择评分模式", trigger: "change" },
|
|
{ required: true, message: "请选择评分模式", trigger: "change" },
|
|
],
|
|
],
|
|
minScore: [
|
|
minScore: [
|
|
@@ -158,11 +152,34 @@ export default {
|
|
],
|
|
],
|
|
},
|
|
},
|
|
curAnswer: null,
|
|
curAnswer: null,
|
|
|
|
+ loading: false,
|
|
};
|
|
};
|
|
},
|
|
},
|
|
|
|
+ computed: {
|
|
|
|
+ answers() {
|
|
|
|
+ return this.form.mode === "POINT"
|
|
|
|
+ ? this.form.pointList
|
|
|
|
+ : this.form.levelList;
|
|
|
|
+ },
|
|
|
|
+ },
|
|
methods: {
|
|
methods: {
|
|
- visibleChange() {
|
|
|
|
- this.form = this.group.aiMarkSet || getInitForm();
|
|
|
|
|
|
+ getInitForm() {
|
|
|
|
+ return {
|
|
|
|
+ id: null,
|
|
|
|
+ examId: this.group.examId,
|
|
|
|
+ courseId: this.group.courseId,
|
|
|
|
+ paperNumber: this.group.paperNumber,
|
|
|
|
+ questionId: this.group.id,
|
|
|
|
+ mainTitle: "",
|
|
|
|
+ mode: "POINT",
|
|
|
|
+ minScore: undefined,
|
|
|
|
+ pointList: [],
|
|
|
|
+ levelList: [],
|
|
|
|
+ };
|
|
|
|
+ },
|
|
|
|
+ async visibleChange() {
|
|
|
|
+ const res = await markSubjectiveAiParamInfo(this.group.id);
|
|
|
|
+ this.form = this.$objAssign(this.getInitForm(), res || {});
|
|
this.$nextTick(() => {
|
|
this.$nextTick(() => {
|
|
this.$refs.FormRef.clearValidate();
|
|
this.$refs.FormRef.clearValidate();
|
|
});
|
|
});
|
|
@@ -175,10 +192,11 @@ export default {
|
|
this.$refs.FormRef.resetFields();
|
|
this.$refs.FormRef.resetFields();
|
|
},
|
|
},
|
|
handleScoreModeChange() {
|
|
handleScoreModeChange() {
|
|
- this.form.answers = [];
|
|
|
|
|
|
+ this.form.pointList = [];
|
|
|
|
+ this.form.levelList = [];
|
|
},
|
|
},
|
|
toAddAnswer() {
|
|
toAddAnswer() {
|
|
- if (this.form.scoreMode === "POINT") {
|
|
|
|
|
|
+ if (this.form.mode === "POINT") {
|
|
this.$refs.ModifyMarkAiPointAnswer.open();
|
|
this.$refs.ModifyMarkAiPointAnswer.open();
|
|
} else {
|
|
} else {
|
|
this.$refs.ModifyMarkAiLevelAnswer.open();
|
|
this.$refs.ModifyMarkAiLevelAnswer.open();
|
|
@@ -186,7 +204,7 @@ export default {
|
|
},
|
|
},
|
|
toEditAnswer(row) {
|
|
toEditAnswer(row) {
|
|
this.curAnswer = row;
|
|
this.curAnswer = row;
|
|
- if (this.form.scoreMode === "POINT") {
|
|
|
|
|
|
+ if (this.form.mode === "POINT") {
|
|
this.$refs.ModifyMarkAiPointAnswer.open(row);
|
|
this.$refs.ModifyMarkAiPointAnswer.open(row);
|
|
} else {
|
|
} else {
|
|
this.$refs.ModifyMarkAiLevelAnswer.open(row);
|
|
this.$refs.ModifyMarkAiLevelAnswer.open(row);
|
|
@@ -199,18 +217,30 @@ export default {
|
|
if (this.curAnswer) {
|
|
if (this.curAnswer) {
|
|
Object.assign(this.curAnswer, answer);
|
|
Object.assign(this.curAnswer, answer);
|
|
} else {
|
|
} else {
|
|
- this.form.answers.push(answer);
|
|
|
|
|
|
+ if (this.form.mode === "POINT") {
|
|
|
|
+ this.form.pointList.push(answer);
|
|
|
|
+ } else if (this.form.mode === "LEVEL") {
|
|
|
|
+ this.form.levelList.push(answer);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
this.curAnswer = null;
|
|
this.curAnswer = null;
|
|
},
|
|
},
|
|
async handleSubmit() {
|
|
async handleSubmit() {
|
|
const valid = await this.$refs.FormRef.validate().catch(() => {});
|
|
const valid = await this.$refs.FormRef.validate().catch(() => {});
|
|
if (!valid) return;
|
|
if (!valid) return;
|
|
- if (!this.form.answers.length) {
|
|
|
|
|
|
+ if (!this.answers.length) {
|
|
this.$message.error("请添加标答");
|
|
this.$message.error("请添加标答");
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- this.$emit("modified", { ...this.form });
|
|
|
|
|
|
+
|
|
|
|
+ if (this.loading) return;
|
|
|
|
+ this.loading = true;
|
|
|
|
+ const res = await markSubjectiveAiParamSave(this.form).catch(() => {});
|
|
|
|
+ this.loading = false;
|
|
|
|
+ if (!res) return;
|
|
|
|
+
|
|
|
|
+ this.$message.success("保存成功");
|
|
|
|
+ this.$emit("modified", this.form);
|
|
this.close();
|
|
this.close();
|
|
},
|
|
},
|
|
},
|
|
},
|