Jelajahi Sumber

试卷下载

zhangjie 2 tahun lalu
induk
melakukan
99fb18e9d5

File diff ditekan karena terlalu besar
+ 1 - 1
src/modules/card/previewTemp.js


+ 93 - 0
src/modules/paper-export/assets/styles/temp.css

@@ -0,0 +1,93 @@
+.paper-page {
+  color: #000;
+}
+.paper-page.is-view .page-box {
+  margin-top: 10px;
+  margin-bottom: 10px;
+}
+.paper-page .page-box-A3.page-box-0 .page-main-inner {
+  padding: 60px 40px 60px 160px;
+}
+.paper-page .page-box-A3.page-box-0 .page-main-inner.page-main-noside {
+  padding: 60px;
+}
+.paper-page .page-box-A3.page-box-1 .page-main-inner {
+  padding: 60px 160px 60px 40px;
+}
+.paper-page .page-box-A3.page-box-1 .page-main-inner.page-main-noside {
+  padding: 60px;
+}
+.paper-page .page-box-A3.page-box-1 .page-column-side {
+  right: 10px;
+  left: auto;
+}
+.paper-page .page-box-8K .page-column-side {
+  top: 40px;
+  bottom: 40px;
+  width: 110px;
+  left: 10px;
+}
+.paper-page .page-box-8K.page-box-0 .page-main-inner {
+  padding: 40px 20px 40px 130px;
+}
+.paper-page .page-box-8K.page-box-0 .page-main-inner.page-main-noside {
+  padding: 40px;
+}
+.paper-page .page-box-8K.page-box-1 .page-main-inner {
+  padding: 40px 130px 40px 20px;
+}
+.paper-page .page-box-8K.page-box-1 .page-main-inner.page-main-noside {
+  padding: 40px;
+}
+.paper-page .page-box-8K.page-box-1 .page-column-side {
+  right: 10px;
+  top: 40px;
+  left: auto;
+}
+.paper-page .page-box .page-column-body {
+  word-wrap: normal;
+  white-space: normal;
+}
+.paper-page .page-column-side {
+  position: absolute;
+  top: 60px;
+  bottom: 60px;
+  width: 130px;
+  left: 10px;
+  z-index: 10;
+}
+.paper-page .page-column-side .column-side-body {
+  position: absolute;
+  top: 0;
+  bottom: 0;
+  left: 0;
+  right: 0;
+  z-index: 9;
+}
+.paper-page .page-column-side .element-item {
+  position: absolute;
+}
+.paper-page .page-column-element .element-item::before {
+  border: none;
+}
+
+.elem-pane-box .elem-body {
+  min-height: 60px;
+  position: relative;
+}
+.elem-pane-box .elem-pane-box-elements {
+  position: absolute;
+  width: 100%;
+  height: 100%;
+  top: 0;
+  left: 0;
+  z-index: 8;
+}
+.elem-pane-box .elem-pane-box-element .element-item {
+  position: absolute;
+}
+
+.elem-rich-text {
+  display: inline-block;
+  white-space: pre-wrap;
+}

+ 22 - 0
src/modules/paper-export/previewTemp.js

@@ -0,0 +1,22 @@
+import { resetCss, previewCss } from "../card/previewTemp";
+
+const paperCss = `.paper-page .page-column-side .column-side-body{position:absolute;top:0;bottom:0;left:0;right:0;z-index:9}.paper-page .page-column-side .element-item{position:absolute}.paper-page .page-column-element .element-item::before{border:0}.elem-pane-box .elem-body{min-height:60px;position:relative}.elem-pane-box .elem-pane-box-elements{position:absolute;width:100%;height:100%;top:0;left:0;z-index:8}.elem-pane-box .elem-pane-box-element .element-item{position:absolute}.elem-rich-text{display:inline-block;white-space:pre-wrap}`;
+
+export default (domeStr) => {
+  return `
+  <!DOCTYPE html>
+    <html>
+      <head>
+        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
+        <meta name="viewport" content="width=device-width,initial-scale=1.0,
+        maximum-scale=1.0,minimum-scale=1.0, user-scalable=no" "="">
+        <meta name=" renderer" content="webkit|ie-comp|ie-stand" />
+        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
+        <title>试卷</title>
+
+      </head>
+      <style>${resetCss}${previewCss}${paperCss}</style>
+      <body>${domeStr}</body>
+    </html>
+  `;
+};

+ 11 - 1
src/modules/paper-export/views/PaperTemplateBuild.vue

@@ -1,5 +1,8 @@
 <template>
   <div class="paper-template-build">
+    <div v-if="isViewMode" style="text-align: center; margin-top: 10px">
+      <el-button type="primary" @click="toDownload">下载试卷</el-button>
+    </div>
     <paper-template-view
       ref="PaperTemplateView"
       :class="['preview-body', { 'is-view': isViewMode }]"
@@ -13,9 +16,10 @@ import PaperTemplateView from "../components/PaperTemplateView.vue";
 import { getModel as getRichTextModel } from "../elements/rich-text/model";
 import { getModel as getPageModel } from "../elements/page/model";
 import { getElementId, randomCode, deepCopy } from "../../card/plugins/utils";
+import { calcSum, maxNum } from "@/plugins/utils";
+import previewTemp from "../previewTemp";
 import paperJson from "./data/paper.json";
 import paperTempJson from "./data/paper-temp.json";
-import { calcSum, maxNum } from "@/plugins/utils";
 
 const numberToUpperCase = function (val) {
   if (val < 1 || val > 26) return;
@@ -483,6 +487,12 @@ export default {
         return Promise.reject();
       }
     },
+    getPreviewTemp() {
+      return previewTemp(this.$el.innerHTML);
+    },
+    toDownload() {
+      // const htmlCont = this.getPreviewTemp();
+    },
   },
 };
 </script>

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini