zhangjie 3 maanden geleden
bovenliggende
commit
7c2d565a46

+ 1 - 1
src/constants/enumerate.js

@@ -392,7 +392,7 @@ export const QUESTION_SCORE_TYPE = {
   NONE: "全对给分",
   ALL: "任选给分",
   LEAK_HALF: "漏选给半分",
-  LEAK: "漏选给分",
+  LEAK: "漏选给任意分",
 };
 
 // mark

+ 6 - 1
src/modules/base/api.js

@@ -255,7 +255,12 @@ export const cardListPage = (datas) => {
   return $postParam("/api/admin/exam/card/page", datas);
 };
 export const updateCard = (datas) => {
-  return $post("/api/admin/exam/card/save_generic", datas);
+  const formData = new FormData();
+  for (const key in datas) {
+    const val = datas[key];
+    if (!isNull(val)) formData.append(key, val);
+  }
+  return $post("/api/admin/exam/card/save_generic", formData);
 };
 export const deleteCard = (id) => {
   return $postParam("/api/admin/exam/card/delete_generic", { id });

+ 15 - 2
src/modules/base/components/ModifyExamConfigDetail.vue

@@ -128,14 +128,20 @@
           </div>
         </el-form-item>
         <el-form-item label="默认抽取卷型:" prop="defaultSerialNumber">
-          <el-radio-group v-model="modalForm.defaultSerialNumber">
+          <el-radio-group
+            v-model="modalForm.defaultSerialNumber"
+            @change="defaultSerialNumberChange"
+          >
             <el-radio :label="0">随机</el-radio>
             <el-radio :label="1">卷1/A卷</el-radio>
             <el-radio :label="2">卷2/B卷</el-radio>
           </el-radio-group>
         </el-form-item>
         <el-form-item label="交卷数量:" prop="twoPaperEnable">
-          <el-checkbox v-model="modalForm.twoPaperEnable">
+          <el-checkbox
+            v-model="modalForm.twoPaperEnable"
+            :disabled="modalForm.defaultSerialNumber === 2"
+          >
             一个命题任务至少交AB两套试卷
           </el-checkbox>
         </el-form-item>
@@ -656,6 +662,13 @@ export default {
 
       return selecteds.some((item) => item);
     },
+    defaultSerialNumberChange(val) {
+      if (val === 2) {
+        this.modalForm.twoPaperEnable = true;
+      } else {
+        this.modalForm.twoPaperEnable = false;
+      }
+    },
     templateValidator(rule, value, callback) {
       const [field, index] = rule.field.split(".");
       const val = this.modalForm[field][index];

+ 5 - 0
src/modules/base/views/ModeCardManage.vue

@@ -234,6 +234,11 @@ export default {
     async getList() {
       if (!this.checkPrivilege("list", "list")) return;
 
+      if (!this.filter.examId) {
+        this.$message.warning("请选择考试!");
+        return;
+      }
+
       const datas = {
         ...this.filter,
         pageNumber: this.current,

+ 4 - 15
src/modules/mark/components/markParam/MarkParamObjectiveAnswer.vue

@@ -146,7 +146,7 @@
                     size="small"
                     :min="0"
                     :max="100"
-                    :step="0.5"
+                    :step="0.1"
                     step-strictly
                     :controls="false"
                     placeholder="每个选项得分"
@@ -327,7 +327,7 @@ export default {
     },
     answerChange(row) {
       this.validateAnswer(row);
-      this.objectivePolicyChange(row);
+      this.validateObjectivePolicy(row);
     },
     validateAnswer(row) {
       if (!row.answer) {
@@ -402,22 +402,11 @@ export default {
     },
     objectivePolicyScoreChange(row) {
       this.$nextTick(() => {
-        this.objectivePolicyChange(row);
+        this.validateObjectivePolicy(row);
       });
     },
     objectivePolicyChange(row) {
-      const { totalScore, optionCount, objectivePolicy } = row;
-      if (objectivePolicy === "LEAK") {
-        if (optionCount) {
-          const pickScore = Math.floor((totalScore * 2) / optionCount) / 2;
-          row.objectivePolicyScore = pickScore;
-        } else {
-          row.objectivePolicyScore = undefined;
-        }
-      } else {
-        row.objectivePolicyScore = null;
-      }
-      this.validateObjectivePolicy(row);
+      row.objectivePolicyScore = undefined;
     },
     async submit() {
       if (!this.checkData()) return;

+ 5 - 2
src/modules/mark/components/markParam/MarkParamStructure.vue

@@ -15,8 +15,11 @@
           >主观题:{{ paperStat.subjectiveQuestionCount }}道</el-breadcrumb-item
         >
         <el-breadcrumb-item
-          >总分:{{ paperStat.paperTotalScore }}分</el-breadcrumb-item
-        >
+          >总分:<span class="color-danger mlr-1">{{
+            paperStat.paperTotalScore
+          }}</span>
+          分
+        </el-breadcrumb-item>
       </el-breadcrumb>
 
       <div>