|
@@ -29,6 +29,18 @@
|
|
|
>
|
|
|
</el-option>
|
|
|
</el-select>
|
|
|
+ <el-input-number
|
|
|
+ v-if="showScaleEdit"
|
|
|
+ v-model="pdfScale"
|
|
|
+ class="margin-right-10"
|
|
|
+ style="width: 100px"
|
|
|
+ :min="1"
|
|
|
+ :max="6"
|
|
|
+ :step="1"
|
|
|
+ step-strictly
|
|
|
+ :controls="false"
|
|
|
+ placeholder="缩放比率"
|
|
|
+ ></el-input-number>
|
|
|
<el-button
|
|
|
type="primary"
|
|
|
size="small"
|
|
@@ -142,6 +154,9 @@ export default {
|
|
|
paperId: this.$route.params.paperId,
|
|
|
viewType: this.$route.params.viewType,
|
|
|
seqMode: "MODE3",
|
|
|
+ showScaleEdit: false,
|
|
|
+ keys: [],
|
|
|
+ pdfScale: 6,
|
|
|
paperJson: {},
|
|
|
paperTempJson: {
|
|
|
pages: [],
|
|
@@ -176,6 +191,10 @@ export default {
|
|
|
}
|
|
|
|
|
|
this.initData();
|
|
|
+ this.registScaleEvent();
|
|
|
+ },
|
|
|
+ beforeDestroy() {
|
|
|
+ this.unRegistScaleEvent();
|
|
|
},
|
|
|
methods: {
|
|
|
async initFrame() {
|
|
@@ -241,6 +260,7 @@ export default {
|
|
|
{
|
|
|
element: document.getElementById("paper-template-view"),
|
|
|
pageSize: this.paperTempJson.pageConfig.pageSize,
|
|
|
+ scale: this.pdfScale,
|
|
|
},
|
|
|
true
|
|
|
).catch((error) => {
|
|
@@ -516,6 +536,7 @@ export default {
|
|
|
element: document.getElementById("paper-template-view"),
|
|
|
filename: `${this.fieldData.courseName}(${this.fieldData.courseCode})_${this.fieldData.paperName}.pdf`,
|
|
|
pageSize: this.paperTempJson.pageConfig.pageSize,
|
|
|
+ scale: this.pdfScale,
|
|
|
}).catch((error) => {
|
|
|
result = false;
|
|
|
console.error(error);
|
|
@@ -536,6 +557,7 @@ export default {
|
|
|
{
|
|
|
element: document.getElementById("paper-template-view"),
|
|
|
pageSize: this.paperTempJson.pageConfig.pageSize,
|
|
|
+ scale: this.pdfScale,
|
|
|
},
|
|
|
true
|
|
|
).catch((error) => {
|
|
@@ -551,6 +573,7 @@ export default {
|
|
|
{
|
|
|
element: document.getElementById("answer-template-view"),
|
|
|
pageSize: "A4",
|
|
|
+ scale: this.pdfScale,
|
|
|
},
|
|
|
true
|
|
|
).catch((error) => {
|
|
@@ -634,6 +657,31 @@ export default {
|
|
|
dom.setAttribute("style", undefined);
|
|
|
});
|
|
|
},
|
|
|
+ // scale event
|
|
|
+ registScaleEvent() {
|
|
|
+ document.addEventListener("keydown", this.scaleEventHandle);
|
|
|
+ },
|
|
|
+ unRegistScaleEvent() {
|
|
|
+ document.removeEventListener("keydown", this.scaleEventHandle);
|
|
|
+ },
|
|
|
+ scaleEventHandle(e) {
|
|
|
+ if (e.target.tagName !== "BODY") return;
|
|
|
+ e.preventDefault();
|
|
|
+ // console.log(e);
|
|
|
+ if (!this.keys.length) {
|
|
|
+ setTimeout(() => {
|
|
|
+ this.keys = [];
|
|
|
+ }, 1000);
|
|
|
+ }
|
|
|
+ if (e.repeat) return;
|
|
|
+ this.keys.push(e.code);
|
|
|
+ // console.log(this.keys);
|
|
|
+ if (this.keys.join("-") === "Space-KeyF") {
|
|
|
+ this.showScaleEdit = !this.showScaleEdit;
|
|
|
+ this.keys = [];
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ },
|
|
|
},
|
|
|
};
|
|
|
</script>
|