浏览代码

分班阅接口

zhangjie 1 年之前
父节点
当前提交
ff0a71b504

+ 31 - 16
src/modules/mark/components/markParam/MarkParamClass.vue

@@ -11,17 +11,11 @@
             </el-tag>
           </template>
         </el-table-column>
-        <el-table-column label="评卷班级">
+        <el-table-column prop="groupQuestions" label="评卷题目">
+        </el-table-column>
+        <el-table-column prop="markerClassList" label="评卷班级">
           <template slot-scope="scope">
-            <el-tag
-              v-for="item in scope.row.markerClassList"
-              :key="item"
-              size="medium"
-              type="info"
-              class="mb-1 mr-1"
-            >
-              {{ item }}
-            </el-tag>
+            {{ scope.row.markerClassList.join() }}
           </template>
         </el-table-column>
         <el-table-column class-name="action-column" label="操作" width="120">
@@ -36,11 +30,18 @@
         </el-table-column>
       </el-table>
     </div>
+    <div class="mark-footer">
+      <el-button type="primary" :disabled="loading" @click="submit"
+        >提交</el-button
+      >
+      <el-button @click="cancel">取消</el-button>
+    </div>
 
     <!-- SelectClassByCourse -->
     <select-class-by-course
       ref="SelectClassByCourse"
       :selected-ids="selectedClassIds"
+      :class-list="classList"
       required
       @confirm="classSelected"
     ></select-class-by-course>
@@ -61,6 +62,7 @@ export default {
       curRow: {},
       classList: [],
       selectedClassIds: [],
+      loading: false,
     };
   },
   computed: {
@@ -84,17 +86,30 @@ export default {
       this.selectedClassIds = row.markerClassList;
       this.$refs.SelectClassByCourse.open();
     },
-    async classSelected(markerClassList) {
+    classSelected(markerClassList) {
+      this.curRow.markerClassList = markerClassList;
+    },
+    async submit() {
+      if (this.loading) return;
+
+      const unvalid = this.dataList.some(
+        (item) => !item.markerClassList.length
+      );
+      if (unvalid) {
+        this.$message.error("有评卷员未设置班级");
+        return;
+      }
+
       const res = await markClassMarkerSave({
         examId: this.basicInfo.examId,
         paperNumber: this.basicInfo.paperNumber,
-        groupNumber: this.curRow.groupNumber,
-        markerId: this.curRow.marker.userId,
-        markerClassList,
+        groupMarkerClass: this.dataList,
       }).catch(() => {});
       if (!res) return;
-      this.$message.success("操作成功!");
-      this.curRow.markerClassList = markerClassList;
+      this.$message.success("保存成功!");
+    },
+    cancel() {
+      this.$emit("cancel");
     },
   },
 };

+ 13 - 1
src/modules/mark/components/markParam/SelectClassByCourse.vue

@@ -12,9 +12,10 @@
   >
     <el-transfer
       v-model="classIds"
-      :data="classList"
+      :data="dataList"
       :titles="['班级列表', '已选班级']"
       filterable
+      :props="dataProps"
     ></el-transfer>
 
     <div slot="footer">
@@ -56,11 +57,22 @@ export default {
       modalIsShow: false,
       dataList: [],
       classIds: [],
+      dataProps: {
+        key: "id",
+        label: "name",
+      },
     };
   },
   methods: {
     visibleChange() {
       this.classIds = [...this.selectedIds];
+      this.dataList = this.classList.map((item) => {
+        return {
+          id: item,
+          name: item,
+          disabled: false,
+        };
+      });
       this.dataList.forEach((item) => {
         item.disabled = this.disableIds.includes(item.id);
       });