Selaa lähdekoodia

feat: 考试管理添加输出文件类型配置

zhangjie 10 kuukautta sitten
vanhempi
commit
4c8e2ec2d4

+ 9 - 0
src/constants/enumerate.js

@@ -316,6 +316,15 @@ export const PRINT_PDF_TYPE = {
   CHECK_IN: "登记表",
 };
 
+export const EXAM_PDF_TYPE = {
+  PAPER: "试卷",
+  CARD: "全部题卡",
+  CARD_CUSTOM: "仅专卡",
+  SIGN: "签到表",
+  PACKAGE: "卷袋贴",
+  CHECK_IN: "考试情况登记表",
+};
+
 // stmms
 export const MARK_TASK_SYNC_STATUS = {
   INIT: "未同步",

+ 36 - 0
src/modules/base/components/ModifyExamConfigDetail.vue

@@ -237,6 +237,23 @@
       </div>
 
       <el-form-item prop="selectedPrint"></el-form-item>
+
+      <div class="part-box">
+        <div class="config-title">
+          <h4>输出印品配置:</h4>
+        </div>
+        <el-form-item prop="pdfTypes" label="输出文件类型:">
+          <el-checkbox-group v-model="modalForm.pdfTypes">
+            <el-checkbox
+              v-for="(val, key) in EXAM_PDF_TYPE"
+              :label="val"
+              :key="key"
+            >
+              {{ val }}
+            </el-checkbox>
+          </el-checkbox-group>
+        </el-form-item>
+      </div>
     </el-form>
 
     <div slot="footer">
@@ -256,6 +273,7 @@ import {
   PAPER_BACKUP_TYPE,
   TEMPLATE_CLASSIFY,
   CONFIRM_PRINT_TYPE,
+  EXAM_PDF_TYPE,
 } from "@/constants/enumerate";
 import { deepCopy } from "@/plugins/utils";
 import { examConfigQuery, updateExamConfig } from "../api";
@@ -273,6 +291,7 @@ const initModalForm = {
   backupMethod: "ROOM",
   backupCount: 1,
   drawRule: "ONE",
+  pdfTypes: [],
   variableContent: [
     {
       type: "SIGN",
@@ -351,6 +370,14 @@ export default {
       }
     };
 
+    const pdfTypesValidator = (rule, value, callback) => {
+      if (!value.length) {
+        return callback(new Error("请选择输出文件类型"));
+      }
+
+      callback();
+    };
+
     return {
       modalIsShow: false,
       isSubmit: false,
@@ -361,6 +388,7 @@ export default {
       PAPER_BACKUP_TYPE,
       CONFIRM_PRINT_TYPE,
       TEMPLATE_CLASSIFY,
+      EXAM_PDF_TYPE,
       variableContent: [],
       ordinaryContent: [],
       templateSources: {},
@@ -403,6 +431,13 @@ export default {
             trigger: "change",
           },
         ],
+        pdfTypes: [
+          {
+            required: true,
+            validator: pdfTypesValidator,
+            trigger: "change",
+          },
+        ],
       },
     };
   },
@@ -485,6 +520,7 @@ export default {
 
         this.modalForm.printContent = JSON.parse(val.printContent || "[]");
         this.modalForm.auditContent = JSON.parse(val.auditContent || "[]");
+        this.modalForm.pdfTypes = JSON.parse(val.pdfTypes || "[]");
       } else {
         let modalForm = this.$objAssign(deepCopy(initModalForm), val);
         modalForm.variableContent = modalForm.variableContent.filter(