zhangjie 6 mesi fa
parent
commit
4f289e0684

+ 1 - 1
src/modules/paper-export/components/AnswerTemplateView.vue

@@ -1,7 +1,7 @@
 <template>
 <template>
   <div class="paper-template-view answer-template-view card-view paper-page">
   <div class="paper-template-view answer-template-view card-view paper-page">
     <div v-for="(singlePageData, index) in flatData" :key="index">
     <div v-for="(singlePageData, index) in flatData" :key="index">
-      <div class="page-box page-box-A4 page-box-answer">
+      <div class="page-box page-box-A4 page-box-answer page-answer-flat">
         <div class="page-main-inner" style="font-size: 14px">
         <div class="page-main-inner" style="font-size: 14px">
           <div v-for="(row, i) in singlePageData || []" :key="i">
           <div v-for="(row, i) in singlePageData || []" :key="i">
             <div v-if="row.type == 'bigTitle'" class="is-detail-title">
             <div v-if="row.type == 'bigTitle'" class="is-detail-title">

+ 3 - 1
src/modules/paper-export/views/AnswerTemplateBuild.vue

@@ -63,7 +63,9 @@ export default {
       this.$nextTick(async () => {
       this.$nextTick(async () => {
         const answerBlob = await buildPdf(
         const answerBlob = await buildPdf(
           {
           {
-            element: document.getElementById("answer-template-view"),
+            elements: document
+              .getElementById("answer-template-view")
+              .querySelectorAll(".page-answer-flat"),
             pageSize: "A4",
             pageSize: "A4",
           },
           },
           true
           true

+ 2 - 2
src/modules/questions/views/GenPaper.vue

@@ -125,14 +125,14 @@
           width="50"
           width="50"
           align="center"
           align="center"
         ></el-table-column>
         ></el-table-column>
-        <el-table-column label="课程名称(代码)" width="180">
+        <el-table-column label="课程名称(代码)" min-width="180">
           <template slot-scope="scope">
           <template slot-scope="scope">
             <span
             <span
               >{{ scope.row.course.name }}({{ scope.row.course.code }})</span
               >{{ scope.row.course.name }}({{ scope.row.course.code }})</span
             >
             >
           </template>
           </template>
         </el-table-column>
         </el-table-column>
-        <el-table-column label="试卷名称" width="180">
+        <el-table-column label="试卷名称" min-width="120">
           <template slot-scope="scope">
           <template slot-scope="scope">
             <span>{{ scope.row.name }}</span>
             <span>{{ scope.row.name }}</span>
           </template>
           </template>

+ 22 - 1
src/plugins/htmlToPdf.js

@@ -1,4 +1,4 @@
-// import html2pdf from "html2pdf.js";
+import html2pdf from "html2pdf.js";
 import html2canvas from "html2canvas";
 import html2canvas from "html2canvas";
 import jsPDF from "jspdf";
 import jsPDF from "jspdf";
 
 
@@ -14,6 +14,27 @@ export const jsPDFConfigs = {
   },
   },
 };
 };
 
 
+export async function buildPdfSimple(
+  { element, pageSize, filename },
+  returnBlob = false
+) {
+  const opt = {
+    margin: 0,
+    html2canvas: { scale: 6, useCORS: true },
+    filename: filename || "",
+    image: { type: "jpeg", quality: 0.8 },
+    jsPDF: {
+      ...jsPDFConfigs[pageSize],
+    },
+  };
+
+  if (returnBlob) {
+    return await html2pdf().set(opt).from(element).outputPdf("blob");
+  } else {
+    await html2pdf().set(opt).from(element).save();
+  }
+}
+
 export async function buildPdf(
 export async function buildPdf(
   { elements, pageSize, filename, scale },
   { elements, pageSize, filename, scale },
   returnBlob = false
   returnBlob = false