zhangjie 3 سال پیش
والد
کامیت
2561692322

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

@@ -350,9 +350,6 @@ export const updateExam = datas => {
 export const ableExam = ({ id, enable }) => {
   return $postParam("/api/admin/basic/exam/enable", { id, enable });
 };
-export const examConfigByExamIdOrgId = datas => {
-  return $postParam("/api/admin/basic/exam/get_by_exam_id_and_org_id", datas);
-};
 
 // exam-config
 export const examConfigQuery = datas => {
@@ -367,7 +364,12 @@ export const updateExamConfig = datas => {
 export const ableExamConfig = ({ id, enable }) => {
   return $postParam("/api/admin/basic/print_config/enable", { id, enable });
 };
-
+export const examConfigByExamIdOrgId = datas => {
+  return $postParam(
+    "/api/admin/basic/print_config/get_by_exam_id and_org_id",
+    datas
+  );
+};
 // common
 export const uploadFile = datas => {
   return $post("/api/admin/common/file/upload", datas);

+ 6 - 7
src/modules/exam/components/ApplyContent.vue

@@ -260,7 +260,7 @@
                 v-for="item in rejectSetupList"
                 :key="item.taskKey"
                 :value="item.setup"
-                :label="item.taskName"
+                :label="item.name"
               >
               </el-option>
             </el-select>
@@ -610,12 +610,8 @@ export default {
       if (this.IS_AUDIT) this.getRejectSetupList();
     },
     async getFlowHistory() {
-      if (
-        !this.curTaskApply.flowId ||
-        (this.curTaskApply.setup !== null && this.curTaskApply.setup <= 0)
-      ) {
-        return;
-      }
+      if (!this.curTaskApply.flowId) return;
+
       const data = await taskFlowDetail(
         this.curTaskApply.flowId
       ).catch(() => {});
@@ -651,6 +647,9 @@ export default {
     async getRejectSetupList() {
       const data = await taskFlowNodeInfo(this.curTaskApply.flowTaskId);
       this.rejectSetupList = (data && data.rejectSetupList) || [];
+      this.rejectSetupList.forEach(item => {
+        item.name = `【${item.taskName}】${item.approveUserNames}`;
+      });
     },
     approvePassChange() {
       this.auditRules.remark[0].required =

+ 43 - 26
src/modules/exam/components/createExamAndPrintTask/CreateExamAndPrintTask.vue

@@ -93,10 +93,6 @@ const initExamTaskDetail = {
 };
 
 const initPrintPlan = {
-  name: "",
-  examStartTime: "",
-  examEndTime: "",
-  semesterId: "",
   printContent: [],
   backupMethod: "ROOM",
   backupCount: 1,
@@ -178,7 +174,8 @@ export default {
       this.infos = {
         examTask: { ...initExamTask },
         examTaskDetail,
-        printTask: { ...initPrintTask }
+        printTask: { ...initPrintTask },
+        examPrintPlan: {}
       };
 
       this.dataReady = true;
@@ -194,12 +191,47 @@ export default {
         this.infos[key] = Object.assign(this.infos[key], val);
       });
     },
-    printTaskRelateInfoChange(data) {
-      this.dataChange(data);
+    async printTaskRelateInfoChange(data, type) {
+      if (type === "exam") {
+        const { examId, teachingRoomId } = data.examTask;
+        const {
+          examId: infoExamId,
+          teachingRoomId: infoTeachingRoomId
+        } = this.infos.examTask;
+        if (
+          examId &&
+          teachingRoomId &&
+          (examId !== infoExamId || teachingRoomId !== infoTeachingRoomId)
+        ) {
+          this.dataChange(data);
+          await this.updatePrintPlan({ examId, orgId: teachingRoomId });
+          this.$nextTick(() => {
+            this.$refs.InfoPrintTask.updatePackageInfos();
+          });
+        }
+        return;
+      }
 
-      this.$nextTick(() => {
-        this.$refs.InfoPrintTask.initData();
-      });
+      if (type === "course") {
+        this.dataChange(data);
+
+        this.$nextTick(() => {
+          this.$refs.InfoPrintTask.initData();
+        });
+      }
+    },
+    async updatePrintPlan({ examId, orgId }) {
+      const printPlan = await examConfigByExamIdOrgId({
+        examId,
+        orgId
+      }).catch(() => {});
+      if (!printPlan) {
+        this.loading = false;
+        return;
+      }
+      let examPrintPlan = Object.assign({}, initPrintPlan, printPlan);
+      this.infos.examPrintPlan = examPrintPlan;
+      this.infos.examTask.cardRuleId = examPrintPlan.cardRuleId;
     },
     async cancel() {
       const result = await this.$confirm("确定取消该任务?", "提示", {
@@ -241,30 +273,15 @@ export default {
       examDatas.forEach(item => {
         this.dataChange(item);
       });
-      // 更新printPlan
-      const printPlan = await examConfigByExamIdOrgId({
-        examId: this.infos.examTask.examId,
-        orgId: this.$ls.get("orgId")
-      }).catch(() => {});
-      if (!printPlan) {
-        this.loading = false;
-        return;
-      }
-      let examPrintPlan = Object.assign({}, initPrintPlan, printPlan);
-      examPrintPlan.printContent = JSON.parse(data.printContent);
-      this.infos.examTask.cardRuleId = examPrintPlan.cardRuleId;
 
       const examTaskContent = {
         examTask: this.infos.examTask,
         examTaskDetail: this.infos.examTaskDetail,
-        examDetail: this.infos.printTask,
-        examPrintPlan
+        examDetail: this.infos.printTask
       };
       let datas = {
         examTaskContent: JSON.stringify(examTaskContent)
       };
-      if (this.infos.approveUserIds.length)
-        datas.approveUserIds = this.infos.approveUserIds;
 
       const data = await teacherSubmitTaskApply(datas).catch(() => {});
       this.loading = false;

+ 5 - 4
src/modules/exam/components/createExamAndPrintTask/InfoExamTask.vue

@@ -32,7 +32,7 @@
                 :semester-id="examTask.semesterId"
                 :clearable="false"
                 class="width-full"
-                @change="emitRelateInfo"
+                @change="emitRelateInfo('exam')"
               ></exam-select>
             </el-form-item>
           </el-col>
@@ -383,6 +383,7 @@ export default {
       this.examTaskDetail.cardId = "";
       this.cards = [];
       this.getCourses();
+      this.emitRelateInfo("exam");
     },
     courseChange(val) {
       if (val) {
@@ -395,7 +396,7 @@ export default {
       this.examTaskDetail.cardId = "";
       this.cards = [];
       this.getCardList();
-      this.emitRelateInfo();
+      this.emitRelateInfo("course");
     },
     async checkData() {
       const valid = await this.$refs.examTaskComp.validate().catch(() => {});
@@ -428,8 +429,8 @@ export default {
       };
       return data;
     },
-    emitRelateInfo() {
-      this.$emit("relate-info-change", this.getData());
+    emitRelateInfo(type) {
+      this.$emit("relate-info-change", this.getData(), type);
     },
     // exam-task-detail edit
     addAtachment() {

+ 8 - 8
src/modules/exam/components/createExamAndPrintTask/InfoPrintTask.vue

@@ -172,13 +172,15 @@ export default {
 
       await this.getClassList();
 
-      const data = this.datas.printTask;
+      const printTask = this.datas.printTask;
       this.tableData =
-        data.courseCode === this.datas.examTask.courseCode ? data.list : [];
+        printTask.courseCode === this.datas.examTask.courseCode
+          ? printTask.list
+          : [];
 
-      if (data.examStartTime && data.examEndTime) {
-        this.createTime = [data.examStartTime, data.examEndTime];
-        this.createDate = getTimeDatestamp(data.examStartTime);
+      if (printTask.examStartTime && printTask.examEndTime) {
+        this.createTime = [printTask.examStartTime, printTask.examEndTime];
+        this.createDate = getTimeDatestamp(printTask.examStartTime);
         this.modalForm.examStartTime = this.createTime[0];
         this.modalForm.examEndTime = this.createTime[1];
       }
@@ -264,8 +266,6 @@ export default {
         data.extends = extendFieldModal;
         return data;
       });
-
-      console.log(this.tableData);
     },
     updateUnusedClassList() {
       let usedClassIds = [];
@@ -284,7 +284,7 @@ export default {
       );
       this.packageInfos.paperReleaseCount = this.packageInfos.studentCount;
       this.packageInfos.paperBackupCount =
-        this.packageInfos.packageCount * this.datas.printPlan.backupCount;
+        this.packageInfos.packageCount * this.datas.examPrintPlan.backupCount;
       this.packageInfos.paperCount =
         this.packageInfos.paperReleaseCount +
         this.packageInfos.paperBackupCount;