浏览代码

pdf查看与印刷任务类型修改

zhangjie 3 年之前
父节点
当前提交
d583e02646

+ 5 - 0
src/constants/enumerate.js

@@ -187,6 +187,11 @@ export const PRINT_TASK_STATUS = {
   PRINTING: "印刷中",
   FINISH: "已完成"
 };
+// pdf文件类型
+export const PRINT_PDF_TYPE = {
+  ALL_A3: "试卷题卡合并文件",
+  CARD_A3: "题卡合并文件"
+};
 
 // stmms
 export const MARK_TASK_SYNC_STATUS = {

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

@@ -202,7 +202,7 @@
 
 <script>
 import {
-  // PRINT_CONTENT_TYPE,
+  PRINT_CONTENT_TYPE,
   DRAW_RULE_TYPE,
   PRINT_BACKUP_TYPE,
   PAPER_BACKUP_TYPE,
@@ -259,9 +259,10 @@ export default {
       isSubmit: false,
       modalForm: {},
       createTime: [],
-      PRINT_CONTENT_TYPE: {
-        PAPER: "试卷"
-      },
+      PRINT_CONTENT_TYPE,
+      // PRINT_CONTENT_TYPE: {
+      //   PAPER: "试卷"
+      // },
       DRAW_RULE_TYPE,
       PRINT_BACKUP_TYPE,
       PAPER_BACKUP_TYPE,

+ 37 - 3
src/modules/print/views/PrintTaskManage.vue

@@ -301,6 +301,27 @@
       :instance="curTask"
       ref="PreviewPrintTaskTemplate"
     ></preview-print-task-template>
+    <!-- pdf-view -->
+    <el-dialog
+      class="pdf-view-dialog"
+      :visible.sync="padViewDialogVisible"
+      title="请选择PDF类型"
+      top="10vh"
+      width="400px"
+      :close-on-click-modal="false"
+      :close-on-press-escape="false"
+      append-to-body
+    >
+      <el-button
+        v-for="item in pdfList"
+        :key="item.name"
+        type="primary"
+        size="large"
+        @click="viewPdf(item)"
+        >{{ item.type | printPdfTypeFilter }}</el-button
+      >
+      <div slot="footer"></div>
+    </el-dialog>
   </div>
 </template>
 
@@ -346,6 +367,9 @@ export default {
       multipleSelection: [],
       PRINT_TASK_STATUS,
       loading: false,
+      // view-pdf
+      padViewDialogVisible: false,
+      pdfList: [],
       // view-template
       curTask: {},
       // date-picker
@@ -464,16 +488,26 @@ export default {
         .catch(() => {});
     },
     async toViewPdf(row) {
+      this.pdfList = [];
       let result = true;
       const data = await getPrintTaskPdf(row.examDetailId).catch(() => {
         result = false;
       });
       if (!result) return;
-      if (data) {
-        window.open(data);
-      } else {
+      if (!data || !data.length) {
         this.$message.error("当前任务pdf还未生成好,请稍后再试!");
+        return;
       }
+      if (data.length === 1) {
+        this.viewPdf(data[0]);
+      } else {
+        this.pdfList = data;
+        this.padViewDialogVisible = true;
+      }
+    },
+    viewPdf(item) {
+      window.open(item.url);
+      // this.padViewDialogVisible = false;
     },
     async toExport() {
       if (this.loading) return;

+ 5 - 1
src/plugins/filters.js

@@ -13,7 +13,8 @@ import {
   CARD_SOURCE_TYPE,
   MARK_TASK_SYNC_STATUS,
   STMMS_SYNC_TYPE,
-  SYNC_PRINT_STATUS
+  SYNC_PRINT_STATUS,
+  PRINT_PDF_TYPE
 } from "../constants/enumerate";
 import { formatDate } from "../plugins/utils";
 
@@ -84,3 +85,6 @@ Vue.filter("stmmsSyncTypeFilter", function(val) {
 Vue.filter("syncPrintStatusFilter", function(val) {
   return SYNC_PRINT_STATUS[val] || DEFAULT_FIELD;
 });
+Vue.filter("printPdfTypeFilter", function(val) {
+  return PRINT_PDF_TYPE[val] || DEFAULT_FIELD;
+});