zhangjie 1 년 전
부모
커밋
b3a560937c

+ 1 - 85
src/modules/exam/components/WaitTaskStmms.vue

@@ -48,44 +48,12 @@
               @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"
               @click="toTransfer(scope.row)"
               >{{ scope.row.transferId ? "打回" : "转办" }}</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>
       </el-table>
@@ -104,30 +72,11 @@
       </div>
     </div>
 
-    <UploadPaperAnswerDialog
-      v-if="checkPrivilege('link', 'Upload')"
-      ref="UploadPaperAnswerDialog"
-      :instance="curTask"
-      @modified="delayUpdateList"
-    />
     <ModifyMarkParams
       ref="ModifyMarkParams"
       :instance="curTask"
       @modified="delayUpdateList"
     />
-    <ModifyObjectiveAnswer
-      ref="ModifyObjectiveAnswer"
-      :instance="curTask"
-      @modified="delayUpdateList"
-    />
-    <SelectTypeUser
-      ref="SelectTypeUser"
-      special-privilege="SUBJECT_HEADER"
-      dialog-title="选择科组长"
-      :user-ids="curMarkLeaders"
-      :user-limit-count="0"
-      @confirm="headerBind"
-    />
     <SelectTransferUser
       ref="SelectTransferUser"
       :task="curTask"
@@ -139,20 +88,14 @@
 <script>
 import { mapActions, mapMutations } from "vuex";
 import { stmmsTaskListPage } from "../api";
-import { examBindMarkLeader, examTransferUser } from "../../stmms/api";
-import UploadPaperAnswerDialog from "../../stmms/components/UploadPaperAnswerDialog";
+import { examTransferUser } from "../../stmms/api";
 import ModifyMarkParams from "../../stmms/components/markParam/ModifyMarkParams";
-import ModifyObjectiveAnswer from "../../stmms/components/markParam/MarkParamObjectiveAnswer.vue";
-import SelectTypeUser from "../../stmms/components/SelectTypeUser.vue";
 import SelectTransferUser from "../../stmms/components/SelectTransferUser.vue";
 
 export default {
   name: "wait-task-stmms",
   components: {
-    UploadPaperAnswerDialog,
     ModifyMarkParams,
-    ModifyObjectiveAnswer,
-    SelectTypeUser,
     SelectTransferUser,
   },
   data() {
@@ -206,10 +149,6 @@ export default {
       this.curTask = row;
       this.$refs.ModifyMarkParams.open();
     },
-    toSetAnswer(row) {
-      this.curTask = row;
-      this.$refs.ModifyObjectiveAnswer.open();
-    },
     async toTransfer(row) {
       if (row.transferId) {
         const confirm = await this.$confirm(`确定要打回当前任务吗?`, "提示", {
@@ -231,29 +170,6 @@ export default {
         this.$refs.SelectTransferUser.open();
       }
     },
-    toUpload(row) {
-      this.curTask = row;
-      this.$refs.UploadPaperAnswerDialog.open();
-    },
-    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();
-    },
   },
 };
 </script>

+ 0 - 102
src/modules/stmms/components/UploadPaperAnswerDialog.vue

@@ -1,102 +0,0 @@
-<template>
-  <el-dialog
-    class="upload-paper-answer-dialog"
-    :visible.sync="modalIsShow"
-    title="上传试卷标答PDF文档"
-    top="10vh"
-    width="600px"
-    :close-on-click-modal="false"
-    :close-on-press-escape="false"
-    append-to-body
-    destroy-on-close
-    @open="visibleChange"
-  >
-    <el-form ref="modalFormComp" :model="infos" label-width="50px">
-      <div class="part-box">
-        <h3 class="mb-2">卷型{{ instance.paperType }}</h3>
-        <el-form-item prop="file" label="标答:">
-          <select-file
-            :format="fileFormat"
-            :disabled="isSubmit"
-            @file-change="fileChange"
-          ></select-file>
-        </el-form-item>
-      </div>
-    </el-form>
-    <div slot="footer">
-      <el-button type="primary" :disabled="isSubmit" @click="submit"
-        >确认</el-button
-      >
-      <el-button @click="cancel">取消</el-button>
-    </div>
-  </el-dialog>
-</template>
-
-<script>
-import { examStructureUploadAnswer } from "../api";
-import SelectFile from "./SelectFile.vue";
-
-export default {
-  name: "upload-paper-answer-dialog",
-  components: { SelectFile },
-  props: {
-    instance: {
-      type: Object,
-      default() {
-        return {};
-      },
-    },
-  },
-  data() {
-    return {
-      modalIsShow: false,
-      isSubmit: false,
-      infos: { file: null, md5: null, errorMsg: null },
-      fileFormat: ["pdf"],
-    };
-  },
-  methods: {
-    visibleChange() {
-      this.infos = { file: null, md5: null, errorMsg: null };
-    },
-    cancel() {
-      this.modalIsShow = false;
-    },
-    open() {
-      this.modalIsShow = true;
-    },
-    fileChange(data) {
-      if (data.errorMsg) {
-        this.infos.file = null;
-        this.infos.md5 = null;
-        this.infos.errorMsg = data.errorMsg;
-      } else {
-        this.infos.file = data.file;
-        this.infos.md5 = data.md5;
-        this.infos.errorMsg = null;
-      }
-    },
-    async submit() {
-      if (!this.infos.file) {
-        this.$message.error("请选择标答文件");
-        return;
-      }
-
-      if (this.isSubmit) return;
-      this.isSubmit = true;
-
-      let formData = new FormData();
-      formData.append("id", this.instance.id);
-      formData.append(`file`, this.infos.file);
-      formData.append(`md5`, this.infos.md5);
-      const data = await examStructureUploadAnswer(formData).catch(() => {});
-      this.isSubmit = false;
-      if (!data) return;
-
-      this.$message.success("上传成功!");
-      this.$emit("modified");
-      this.cancel();
-    },
-  },
-};
-</script>

+ 73 - 3
src/modules/stmms/components/markParam/MarkParamMarkerLeader.vue

@@ -1,13 +1,83 @@
 <template>
-  <div class="mark-param-marker-leader">mark-param-marker-leader</div>
+  <div class="mark-param-marker-leader">
+    <el-tag
+      v-for="user in users"
+      :key="user.id"
+      closable
+      :disable-transitions="false"
+      @close="toDeleteUser(user)"
+    >
+      {{ user.label }}
+    </el-tag>
+
+    <div class="text-center">
+      <el-button type="success" :disabled="loading" @click="submit"
+        >提交</el-button
+      >
+      <el-button @click="cancel">取消</el-button>
+    </div>
+
+    <select-type-user
+      ref="SelectTypeUser"
+      special-privilege="SUBJECT_HEADER"
+      dialog-title="选择科组长"
+      :user-ids="curMarkLeaders"
+      :user-limit-count="0"
+      @confirm="userSelected"
+    ></select-type-user>
+  </div>
 </template>
 
 <script>
+import { examBindMarkLeader } from "../../api";
+import SelectTypeUser from "../SelectTypeUser.vue";
+
 export default {
   name: "mark-param-marker-leader",
+  components: { SelectTypeUser },
   data() {
-    return {};
+    return {
+      loading: false,
+      users: [],
+    };
+  },
+  computed: {
+    curMarkLeaders() {
+      return this.users.map((item) => item.id);
+    },
+  },
+  methods: {
+    toDeleteUser(user) {
+      this.users = this.users.filter((item) => item.id !== user.id);
+    },
+    userSelected(users) {
+      this.users = users;
+    },
+    async submit() {
+      if (!this.users.length) {
+        this.$message.error("请选择科组长");
+        return;
+      }
+
+      if (this.loading) return;
+      this.loading = true;
+
+      const res = await examBindMarkLeader({
+        id: this.instance.id,
+        markLeader: this.users.map((item) => {
+          return {
+            id: item.id,
+            loginName: item.loginName,
+          };
+        }),
+      }).catch(() => {});
+      this.loading = false;
+      if (!res) return;
+      this.$message.success("绑定成功!");
+    },
+    cancel() {
+      this.$emit("cancel");
+    },
   },
-  methods: {},
 };
 </script>

+ 2 - 2
src/modules/stmms/components/markParam/MarkParamUploadAnswer.vue

@@ -22,8 +22,8 @@
 </template>
 
 <script>
-import { examStructureUploadAnswer } from "../api";
-import SelectFile from "./SelectFile.vue";
+import { examStructureUploadAnswer } from "../../api";
+import SelectFile from "../SelectFile.vue";
 
 export default {
   name: "mark-param-upload-answer",

+ 0 - 173
src/modules/stmms/components/markParam/paramData.js

@@ -1,173 +0,0 @@
-export default {
-  paperStructureInfo: [
-    {
-      id: "7b66fero9p9labg8",
-      qType: "subjective",
-      mainId: "8j3dsapo3k2gs0ao",
-      mainTitle: "1111",
-      mainNumber: 1,
-      subNumber: 1,
-      totalScore: 1,
-      mainFirstSub: true,
-      expandSub: true,
-    },
-    {
-      id: "1qn4giooe61tp9bg",
-      qType: "subjective",
-      mainId: "8j3dsapo3k2gs0ao",
-      mainTitle: "1111",
-      mainNumber: 1,
-      subNumber: 2,
-      totalScore: 1,
-      mainFirstSub: false,
-      expandSub: true,
-    },
-    {
-      id: "835rbhgosr75hgfq",
-      qType: "subjective",
-      mainId: "8j3dsapo3k2gs0ao",
-      mainTitle: "1111",
-      mainNumber: 1,
-      subNumber: 3,
-      totalScore: 1,
-      mainFirstSub: false,
-      expandSub: true,
-    },
-    {
-      id: "07pnh1iqn85sabdg",
-      qType: "subjective",
-      mainId: "9mpi7el81lefm1kj",
-      mainTitle: "2222",
-      mainNumber: 2,
-      subNumber: 1,
-      totalScore: 1,
-      mainFirstSub: true,
-      expandSub: true,
-    },
-    {
-      id: "laitpjllpmg59hhg",
-      qType: "subjective",
-      mainId: "9mpi7el81lefm1kj",
-      mainTitle: "2222",
-      mainNumber: 2,
-      subNumber: 2,
-      totalScore: 1,
-      mainFirstSub: false,
-      expandSub: true,
-    },
-    {
-      id: "deqv73p8qfh0tm68",
-      qType: "subjective",
-      mainId: "9mpi7el81lefm1kj",
-      mainTitle: "2222",
-      mainNumber: 2,
-      subNumber: 3,
-      totalScore: 1,
-      mainFirstSub: false,
-      expandSub: true,
-    },
-  ],
-  groupInfo: [
-    {
-      id: "aaklqjnok11cf4jo",
-      markerList: [
-        { id: "239689678024867840", name: "kw05", label: "kw05(艺术机构)" },
-        { id: "239689583325872128", name: "mt05", label: "mt05(艺术机构)" },
-        { id: "239689762452013056", name: "zr05", label: "zr05(艺术机构)" },
-      ],
-      doubleRate: 1,
-      arbitrateThreshold: 1,
-      questions: [
-        {
-          id: "7b66fero9p9labg8",
-          qType: "subjective",
-          mainId: "8j3dsapo3k2gs0ao",
-          mainTitle: "1111",
-          mainNumber: 1,
-          subNumber: 1,
-          totalScore: 1,
-          mainFirstSub: true,
-          expandSub: true,
-        },
-        {
-          id: "1qn4giooe61tp9bg",
-          qType: "subjective",
-          mainId: "8j3dsapo3k2gs0ao",
-          mainTitle: "1111",
-          mainNumber: 1,
-          subNumber: 2,
-          totalScore: 1,
-          mainFirstSub: false,
-          expandSub: true,
-        },
-        {
-          id: "835rbhgosr75hgfq",
-          qType: "subjective",
-          mainId: "8j3dsapo3k2gs0ao",
-          mainTitle: "1111",
-          mainNumber: 1,
-          subNumber: 3,
-          totalScore: 1,
-          mainFirstSub: false,
-          expandSub: true,
-        },
-      ],
-      picConfig: [],
-    },
-    {
-      id: "ddqkaotgp9gjcg38",
-      markerList: [
-        { id: "236486056571052032", name: "test1", label: "test1(美术印刷室)" },
-        { id: "236519144445444096", name: "ys01", label: "ys01(印刷室2)" },
-      ],
-      doubleRate: 1,
-      arbitrateThreshold: 1,
-      questions: [
-        {
-          id: "07pnh1iqn85sabdg",
-          qType: "subjective",
-          mainId: "9mpi7el81lefm1kj",
-          mainTitle: "2222",
-          mainNumber: 2,
-          subNumber: 1,
-          totalScore: 1,
-          mainFirstSub: true,
-          expandSub: true,
-        },
-        {
-          id: "laitpjllpmg59hhg",
-          qType: "subjective",
-          mainId: "9mpi7el81lefm1kj",
-          mainTitle: "2222",
-          mainNumber: 2,
-          subNumber: 2,
-          totalScore: 1,
-          mainFirstSub: false,
-          expandSub: true,
-        },
-        {
-          id: "deqv73p8qfh0tm68",
-          qType: "subjective",
-          mainId: "9mpi7el81lefm1kj",
-          mainTitle: "2222",
-          mainNumber: 2,
-          subNumber: 3,
-          totalScore: 1,
-          mainFirstSub: false,
-          expandSub: true,
-        },
-      ],
-      picConfig: [],
-    },
-  ],
-  basicPaperInfo: {
-    thirdRelateId: 1,
-    thirdRelateName: "考试1",
-    courseName: "语文",
-    courseCode: "yw001",
-    paperNumber: 112345667,
-    paperType: "AB",
-    paperTypes: ["A", "B"],
-    status: "FINISH",
-  },
-};

+ 0 - 164
src/modules/stmms/components/paper.js

@@ -1,164 +0,0 @@
-const papers = [
-  {
-    url: "https://t7.baidu.com/it/u=2621658848,3952322712&fm=193&f=GIF",
-    width: 0,
-    height: 0,
-    track: [
-      {
-        top: 30,
-        left: 56,
-        content: "2",
-      },
-      {
-        top: 80,
-        left: 120,
-        content: "3",
-      },
-      {
-        top: 120,
-        left: 120,
-        content: "4",
-      },
-      {
-        top: 140,
-        left: 150,
-        content: "5",
-      },
-      {
-        top: 200,
-        left: 120,
-        content: "6",
-      },
-    ],
-  },
-  {
-    url: "https://t7.baidu.com/it/u=3631608752,3069876728&fm=193&f=GIF",
-    width: 0,
-    height: 0,
-    track: [
-      {
-        top: 30,
-        left: 56,
-        content: "2",
-      },
-      {
-        top: 80,
-        left: 120,
-        content: "3",
-      },
-      {
-        top: 120,
-        left: 120,
-        content: "4",
-      },
-      {
-        top: 140,
-        left: 150,
-        content: "5",
-      },
-      {
-        top: 200,
-        left: 120,
-        content: "6",
-      },
-    ],
-  },
-  {
-    url: "https://t7.baidu.com/it/u=4080826490,615918710&fm=193&f=GIF",
-    width: 0,
-    height: 0,
-    track: [
-      {
-        top: 30,
-        left: 56,
-        content: "2",
-      },
-      {
-        top: 80,
-        left: 120,
-        content: "3",
-      },
-      {
-        top: 120,
-        left: 120,
-        content: "4",
-      },
-      {
-        top: 140,
-        left: 150,
-        content: "5",
-      },
-      {
-        top: 200,
-        left: 120,
-        content: "6",
-      },
-    ],
-  },
-  {
-    url: "https://t7.baidu.com/it/u=3713375227,571533122&fm=193&f=GIF",
-    width: 0,
-    height: 0,
-    track: [
-      {
-        top: 30,
-        left: 56,
-        content: "2",
-      },
-      {
-        top: 80,
-        left: 120,
-        content: "3",
-      },
-      {
-        top: 120,
-        left: 120,
-        content: "4",
-      },
-      {
-        top: 140,
-        left: 150,
-        content: "5",
-      },
-      {
-        top: 200,
-        left: 120,
-        content: "6",
-      },
-    ],
-  },
-  {
-    url: "https://t7.baidu.com/it/u=3694360626,2933607547&fm=193&f=GIF",
-    width: 0,
-    height: 0,
-    track: [
-      {
-        top: 30,
-        left: 56,
-        content: "2",
-      },
-      {
-        top: 80,
-        left: 120,
-        content: "3",
-      },
-      {
-        top: 120,
-        left: 120,
-        content: "4",
-      },
-      {
-        top: 140,
-        left: 150,
-        content: "5",
-      },
-      {
-        top: 200,
-        left: 120,
-        content: "6",
-      },
-    ],
-  },
-];
-
-export default papers;

+ 1 - 44
src/modules/stmms/views/UploadStructure.vue

@@ -89,14 +89,6 @@
               @click="toTransfer(scope.row)"
               >{{ scope.row.transferId ? "打回" : "转办" }}</el-button
             >
-            <el-button
-              v-if="checkPrivilege('link', 'Preview')"
-              class="btn-primary"
-              type="text"
-              :disabled="!scope.row.paperAnswer"
-              @click="toViewAnswer(scope.row, scope.row.paperType)"
-              >查看标答文件</el-button
-            >
           </template>
         </el-table-column>
       </el-table>
@@ -130,11 +122,7 @@
 </template>
 
 <script>
-import {
-  examStructureListPage,
-  examBindMarkLeader,
-  examTransferUser,
-} from "../api";
+import { examStructureListPage, examTransferUser } from "../api";
 import ModifyMarkParams from "../components/markParam/ModifyMarkParams";
 import SelectTransferUser from "../components/SelectTransferUser.vue";
 
@@ -183,14 +171,6 @@ export default {
       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();
-    },
     toViewAnswer(row, paperType) {
       if (!row.paperAnswer) {
         this.$message.error("暂时还没有标答可预览!");
@@ -206,29 +186,6 @@ export default {
 
       window.open(paper.answerUrl);
     },
-    toBindMarkLeader(row) {
-      this.curTask = row;
-      const markLeaders = row.markLeader ? JSON.parse(row.markLeader) : [];
-      this.curMarkLeaders = markLeaders.map((item) => item.id);
-      this.$refs.SelectTypeUser.open();
-    },
-    toBindMarker(row) {
-      this.curTask = row;
-      this.$refs.ModifyPaperMarker.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();
-    },
     async toTransfer(row) {
       if (row.transferId) {
         const confirm = await this.$confirm(`确定要打回当前任务吗?`, "提示", {