Selaa lähdekoodia

阅卷待办调整

zhangjie 2 vuotta sitten
vanhempi
commit
553010a6b8
2 muutettua tiedostoa jossa 124 lisäystä ja 26 poistoa
  1. 124 19
      src/modules/exam/components/WaitTaskStmms.vue
  2. 0 7
      src/views/HomePage.vue

+ 124 - 19
src/modules/exam/components/WaitTaskStmms.vue

@@ -3,33 +3,82 @@
     <div class="part-box part-box-pad">
       <el-table ref="TableList" :data="dataList">
         <el-table-column
-          type="index"
-          label="序号"
-          width="50"
-          :index="indexMethod"
+          prop="thirdRelateId"
+          label="云阅卷考试ID"
+          min-width="160"
         ></el-table-column>
-        <el-table-column prop="thirdRelateId" label="考试ID"></el-table-column>
         <el-table-column
           prop="thirdRelateName"
-          label="考试名称"
+          label="云阅卷考试名称"
+          min-width="160"
+        ></el-table-column>
+        <el-table-column prop="courseName" label="课程(代码)" min-width="200">
+          <span slot-scope="scope">
+            {{ scope.row.courseName }}({{ scope.row.courseCode }})
+          </span>
+        </el-table-column>
+        <el-table-column
+          prop="paperNumber"
+          label="试卷编号"
+          min-width="160"
         ></el-table-column>
-        <el-table-column prop="paperNumber" label="试卷ID"></el-table-column>
         <el-table-column
           prop="paperType"
           label="试卷类型"
-          width="80"
+          width="100"
         ></el-table-column>
         <el-table-column prop="statusStr" label="状态" width="100">
+          <span
+            slot-scope="scope"
+            :class="{ 'color-danger': scope.row.status === 'INIT' }"
+            >{{ scope.row.statusStr }}</span
+          >
         </el-table-column>
         <el-table-column
           class-name="action-column"
           label="操作"
-          width="100"
+          width="220px"
           fixed="right"
         >
           <template slot-scope="scope">
-            <el-button class="btn-primary" type="text" @click="toDo(scope.row)"
-              >立即处理</el-button
+            <el-button
+              class="btn-primary"
+              type="text"
+              :disabled="scope.row.taskStatus === 'RUNNING'"
+              @click="toSetParams(scope.row)"
+              >评卷参数设置</el-button
+            >
+            <el-button
+              class="btn-primary"
+              type="text"
+              :disabled="
+                !scope.row.paperInfoJson || scope.row.taskStatus === 'RUNNING'
+              "
+              @click="toSetAnswer(scope.row)"
+              >设置客观题标答</el-button
+            >
+            <el-button
+              class="btn-primary"
+              type="text"
+              :disabled="
+                !scope.row.paperInfoJson || scope.row.taskStatus === 'RUNNING'
+              "
+              @click="toBindMarkLeader(scope.row)"
+              >绑定科组长</el-button
+            >
+            <el-button
+              class="btn-primary"
+              type="text"
+              :disabled="scope.row.taskStatus === 'RUNNING'"
+              @click="toUpload(scope.row)"
+              >上传标答文件</el-button
+            >
+            <el-button
+              class="btn-primary"
+              type="text"
+              :disabled="!scope.row.paperAnswer"
+              @click="toViewAnswer(scope.row, scope.row.paperType)"
+              >查看标答文件</el-button
             >
           </template>
         </el-table-column>
@@ -47,11 +96,28 @@
       </div>
     </div>
 
-    <!-- UploadPaperAnswerDialog -->
     <UploadPaperAnswerDialog
+      v-if="checkPrivilege('link', 'Upload')"
       ref="UploadPaperAnswerDialog"
       :instance="curTask"
-      @modified="taskModified"
+      @modified="delayUpdateList"
+    />
+    <ModifyMarkParams
+      ref="ModifyMarkParams"
+      :instance="curTask"
+      @modified="delayUpdateList"
+    />
+    <ModifyObjectiveAnswer
+      ref="ModifyObjectiveAnswer"
+      :instance="curTask"
+      @modified="delayUpdateList"
+    />
+    <SelectTypeUser
+      ref="SelectTypeUser"
+      special-privilege="SUBJECT_HEADER"
+      :user-ids="curMarkLeaders"
+      :user-limit-count="0"
+      @confirm="headerBind"
     />
   </div>
 </template>
@@ -59,18 +125,28 @@
 <script>
 import { mapActions, mapMutations } from "vuex";
 import { stmmsTaskListPage } from "../api";
+import { examBindMarkLeader } from "../../stmms/api";
 import UploadPaperAnswerDialog from "../../stmms/components/UploadPaperAnswerDialog";
+import ModifyMarkParams from "../../stmms/components/markParam/ModifyMarkParams";
+import ModifyObjectiveAnswer from "../../stmms/components/markParam/ModifyObjectiveAnswer.vue";
+import SelectTypeUser from "../../stmms/components/SelectTypeUser.vue";
 
 export default {
   name: "wait-task-stmms",
-  components: { UploadPaperAnswerDialog },
+  components: {
+    UploadPaperAnswerDialog,
+    ModifyMarkParams,
+    ModifyObjectiveAnswer,
+    SelectTypeUser
+  },
   data() {
     return {
       current: 1,
       size: this.GLOBAL.pageSize,
       total: 0,
       dataList: [],
-      curTask: {}
+      curTask: {},
+      curMarkLeaders: []
     };
   },
   mounted() {
@@ -79,13 +155,19 @@ export default {
   methods: {
     ...mapMutations("exam", ["updateWaitTask"]),
     ...mapActions("exam", ["updateWaitTaskCount"]),
+    delayUpdateList() {
+      setTimeout(() => {
+        this.getList();
+        this.updateWaitTaskCount();
+      }, 1000);
+    },
     async initData() {
       await this.getList();
 
       const presetTask = this.$ls.get("wait_task_stmms");
       if (presetTask) {
         this.$nextTick(() => {
-          this.toDo(presetTask);
+          this.toSetParams(presetTask);
         });
         this.$ls.remove("wait_task_stmms");
       }
@@ -104,13 +186,36 @@ export default {
       this.current = page;
       this.getList();
     },
-    toDo(row) {
+    toSetParams(row) {
+      this.curTask = row;
+      this.$refs.ModifyMarkParams.open();
+    },
+    toSetAnswer(row) {
+      this.curTask = row;
+      this.$refs.ModifyObjectiveAnswer.open();
+    },
+    toUpload(row) {
       this.curTask = row;
       this.$refs.UploadPaperAnswerDialog.open();
     },
-    taskModified() {
+    toBindMarkLeader(row) {
+      this.curTask = row;
+      const markLeaders = row.markLeader ? JSON.parse(row.markLeader) : [];
+      this.curMarkLeaders = markLeaders.map(item => item.id);
+      this.$refs.SelectTypeUser.open();
+    },
+    async headerBind(users) {
+      await examBindMarkLeader({
+        id: this.curTask.id,
+        markLeader: users.map(item => {
+          return {
+            id: item.id,
+            loginName: item.loginName
+          };
+        })
+      });
+      this.$message.success("绑定成功!");
       this.getList();
-      this.updateWaitTaskCount();
     }
   }
 };

+ 0 - 7
src/views/HomePage.vue

@@ -252,13 +252,6 @@ export default {
       });
     },
     toDo(item) {
-      console.log(item);
-      if (item.type === "stmms") {
-        this.$router.push({
-          name: "UploadStructure"
-        });
-        return;
-      }
       this.$ls.set(`wait_task_${item.type}`, item);
       this.$router.push({
         name: "WaitTask",