zydx-plus 1.35.539 → 1.35.540
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/components/data_table/src/table_row.vue +1 -1
- package/src/components/dragPopup/src/dragPopup.vue +27 -9
- package/src/components/dragPopup2/src/dragPopup.vue +10 -6
- package/src/components/editor/src/editor.vue +9 -7
- package/src/components/read/src/read.vue +352 -304
- package/src/index.js +1 -1
package/package.json
CHANGED
|
@@ -46,7 +46,7 @@ export default defineComponent({
|
|
|
46
46
|
</td>
|
|
47
47
|
)
|
|
48
48
|
: (
|
|
49
|
-
<td class="table_cell" style={`min-width:${width}px; max-width:${width}px
|
|
49
|
+
<td class="table_cell" style={`min-width:${width}px; max-width:${width}px;color: ${row[key]=='已使用'?'rgba(111, 61, 146, 1)':''}`} rowspan={rowSpan} colspan={colSpan} data-col-key={key}>
|
|
50
50
|
{row[key]}
|
|
51
51
|
</td>
|
|
52
52
|
)
|
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<div class="drag-pop" :class="{trans: transAll, 'drag-pop-shadow': !fixedStart}" :style="position" :id="id" @click.stop="dragTap">
|
|
3
3
|
<div v-show="!fixedStart" class="drag-head" :style="{'background-color':titleColor}" @click="selectedDrag">
|
|
4
|
-
<span :id="'draggable' + id"
|
|
4
|
+
<span class="title" :id="'draggable' + id">
|
|
5
|
+
<slot name="title">
|
|
6
|
+
<div v-html="title" style="width: 100%" :style="{'text-align': title === ''? 'center':'left'}"></div>
|
|
7
|
+
</slot>
|
|
8
|
+
</span>
|
|
5
9
|
<div class="drag-i">
|
|
6
10
|
<i class="share" v-if="share" @click.stop="shareTap"></i>
|
|
7
11
|
<i class="minimize-cir" v-if="minimizeCir" @click.stop="minimizeTap"></i>
|
|
@@ -149,7 +153,7 @@ export default {
|
|
|
149
153
|
handler: function (val) {
|
|
150
154
|
this.footRightOffset = val
|
|
151
155
|
if (this.isInitShowBottomRight) {
|
|
152
|
-
this.x = window.innerWidth - val
|
|
156
|
+
this.x = window.innerWidth - val -3
|
|
153
157
|
}
|
|
154
158
|
},
|
|
155
159
|
immediate: true
|
|
@@ -158,7 +162,7 @@ export default {
|
|
|
158
162
|
handler: function (val) {
|
|
159
163
|
this.footDownOffset = val
|
|
160
164
|
if (this.isInitShowBottomRight) {
|
|
161
|
-
this.y = window.innerHeight - val
|
|
165
|
+
this.y = window.innerHeight - val -3
|
|
162
166
|
console.log('this.y', this.y)
|
|
163
167
|
}
|
|
164
168
|
},
|
|
@@ -306,15 +310,19 @@ export default {
|
|
|
306
310
|
init() {
|
|
307
311
|
const that = this
|
|
308
312
|
if(this.fixedStart) {
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
313
|
+
if(!this.isInitShowBottomRight) {
|
|
314
|
+
const wid = document.getElementById('app').offsetWidth
|
|
315
|
+
this.x = this.left + (wid-this.initWidth)/2
|
|
316
|
+
this.y = this.top - document.documentElement.scrollTop
|
|
317
|
+
}
|
|
312
318
|
} else {
|
|
313
319
|
this.clientWidth = document.documentElement.clientWidth;
|
|
314
320
|
this.clientHeight = document.documentElement.clientHeight;
|
|
315
|
-
this.
|
|
316
|
-
|
|
317
|
-
|
|
321
|
+
if(!this.isInitShowBottomRight) {
|
|
322
|
+
this.x = this.clientWidth / 2 - this.footRightOffset / 2;
|
|
323
|
+
this.y = this.clientHeight / 2 - this.footDownOffset / 2;
|
|
324
|
+
this.y=isNaN(this.y)?100:this.y
|
|
325
|
+
}
|
|
318
326
|
}
|
|
319
327
|
setTimeout(() => {
|
|
320
328
|
this.draggableState = interact(`#draggable${that.id}`)
|
|
@@ -631,4 +639,14 @@ export default {
|
|
|
631
639
|
z-index: 5;
|
|
632
640
|
background-color: rgba(255,255,255,0);
|
|
633
641
|
}
|
|
642
|
+
.drag-head > .title {
|
|
643
|
+
display: inline-block;
|
|
644
|
+
margin-right: 15px;
|
|
645
|
+
flex: 1;
|
|
646
|
+
cursor: move;
|
|
647
|
+
overflow: hidden;
|
|
648
|
+
text-overflow: ellipsis;
|
|
649
|
+
white-space: nowrap;
|
|
650
|
+
font-size: 16px;
|
|
651
|
+
}
|
|
634
652
|
</style>
|
|
@@ -318,15 +318,19 @@ export default {
|
|
|
318
318
|
init() {
|
|
319
319
|
let that = this
|
|
320
320
|
if(this.fixedStart) {
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
321
|
+
if(!this.isInitShowBottomRight) {
|
|
322
|
+
const wid = document.getElementById('app').offsetWidth
|
|
323
|
+
this.x = this.left + (wid-this.initWidth)/2
|
|
324
|
+
this.y = this.top - document.documentElement.scrollTop
|
|
325
|
+
}
|
|
324
326
|
} else {
|
|
325
327
|
this.clientWidth = document.documentElement.clientWidth;
|
|
326
328
|
this.clientHeight = document.documentElement.clientHeight;
|
|
327
|
-
this.
|
|
328
|
-
|
|
329
|
-
|
|
329
|
+
if(!this.isInitShowBottomRight) {
|
|
330
|
+
this.x = this.clientWidth / 2 - this.footRightOffset / 2;
|
|
331
|
+
this.y = this.clientHeight / 2 - this.footDownOffset / 2;
|
|
332
|
+
this.y=isNaN(this.y)?100:this.y
|
|
333
|
+
}
|
|
330
334
|
}
|
|
331
335
|
setTimeout(() => {
|
|
332
336
|
this.draggableState = interact(`#draggable${that.id}`)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div ref="only" class="z-editor" :style="!readOnly&&showBorder?'border: 1px solid rgba(204, 204, 204, 1);':''">
|
|
2
|
+
<div ref="only" :class="`z-editor z-editor-${refSrc}`" :style="!readOnly&&showBorder?'border: 1px solid rgba(204, 204, 204, 1);':''">
|
|
3
3
|
<div v-show="!readOnly" class="editor-header">
|
|
4
4
|
<div v-for="(item,index) in butData" :key="index" class="editor-but">
|
|
5
5
|
<div v-if="uploadTypeArr.indexOf(item.key) !== -1" class="editor-but-name">
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
</div>-->
|
|
74
74
|
</div>
|
|
75
75
|
<zydx-chat v-model='isShowAi'></zydx-chat>
|
|
76
|
-
<div :class="{'editor-content-show': !editableShow}" class="editor-content">
|
|
76
|
+
<div :class="[{'editor-content-show': !editableShow}, `editor-content-${refSrc}`]" class="editor-content">
|
|
77
77
|
<div class="editing">
|
|
78
78
|
<div v-if="signMenuShow" class="editing-header">
|
|
79
79
|
<img :src="menusData('signMenu')?.ico" alt=""/>
|
|
@@ -828,7 +828,8 @@ export default {
|
|
|
828
828
|
key: 'signMenu',
|
|
829
829
|
text: '致用大学',
|
|
830
830
|
ico: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABPCAYAAAB8kULjAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyFpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoyOThBN0E1NUNDM0QxMUU4QjNFQ0Y2RTQyQUQxOTZGQSIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoyOThBN0E1NkNDM0QxMUU4QjNFQ0Y2RTQyQUQxOTZGQSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjI5OEE3QTUzQ0MzRDExRThCM0VDRjZFNDJBRDE5NkZBIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjI5OEE3QTU0Q0MzRDExRThCM0VDRjZFNDJBRDE5NkZBIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+WxRDagAAFoJJREFUeNrMnQl8VdXx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'
|
|
831
|
-
}]
|
|
831
|
+
}],
|
|
832
|
+
refSrc: '',
|
|
832
833
|
}
|
|
833
834
|
},
|
|
834
835
|
props: {
|
|
@@ -1027,6 +1028,7 @@ export default {
|
|
|
1027
1028
|
},
|
|
1028
1029
|
mounted() {
|
|
1029
1030
|
const _this = this
|
|
1031
|
+
_this.refSrc = _this.randomId()
|
|
1030
1032
|
_this.htmlJson = _this.html ? JSON.parse(JSON.stringify(_this.html)) : []
|
|
1031
1033
|
// let dataHtml = json2html({node: "root", child: (_this.html === undefined || _this.html === null) ? [] : _this.html})
|
|
1032
1034
|
this.interpositionData = _this.htmlJson.popupsData ? _this.htmlJson.popupsData.data : []
|
|
@@ -4350,11 +4352,11 @@ export default {
|
|
|
4350
4352
|
const element = document.querySelector(`.${item.anchors}`)
|
|
4351
4353
|
if (element) {
|
|
4352
4354
|
if (this.readOnly) {
|
|
4353
|
-
let
|
|
4354
|
-
|
|
4355
|
+
let body_s = document.querySelector(`.z-editor-${this.refSrc}`)
|
|
4356
|
+
body_s.scrollTop = element.offsetTop + 100
|
|
4355
4357
|
} else {
|
|
4356
|
-
let
|
|
4357
|
-
|
|
4358
|
+
let body_s = document.querySelector(`.editor-content-${this.refSrc}`)
|
|
4359
|
+
body_s.scrollTop = element.offsetTop + 70
|
|
4358
4360
|
}
|
|
4359
4361
|
|
|
4360
4362
|
// element.scrollIntoView({behavior: 'smooth'});
|
|
@@ -1,24 +1,26 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<div
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
2
|
+
<div :ref="refSrc" class="read">
|
|
3
|
+
<vue-office-docx v-if="fileType === 'docx'" :src="url" style="height: 100%;" @error="errorHandler"
|
|
4
|
+
@rendered="renderedHandler"/>
|
|
5
|
+
<vue-office-excel v-if="fileType === 'xlsx' && xlsx" :src="url" style="height: 100%;" @error="errorHandler"
|
|
6
|
+
@rendered="renderedHandler"/>
|
|
7
|
+
<div v-if="fileType === 'pdf'" ref="view-pdf" class="view-pdf" @scroll="scroll">
|
|
8
|
+
<div v-for="(item,index) in idArr[`${refSrc}`]" :key="index" :ref="`pdfPage${index + 1}`" class="pageContainer">
|
|
9
|
+
<canvas :id="item"></canvas>
|
|
10
|
+
<div class="pdfPage">{{ index + 1 }}/{{ pdfPages }}</div>
|
|
10
11
|
</div>
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
</div>
|
|
13
|
+
<div v-if="fileType === 'mp4'" class="mp4">
|
|
14
|
+
<video id="video" :src="url" controls></video>
|
|
15
|
+
</div>
|
|
16
|
+
<div v-if="fileType === 'mp3'" class="mp3">
|
|
17
|
+
<audio :src="url" controls></audio>
|
|
18
|
+
</div>
|
|
19
|
+
<div v-if="loading" class="loading-back">
|
|
20
|
+
<div class="loading-cont">
|
|
21
|
+
<div class="loadings">Loading</div>
|
|
21
22
|
</div>
|
|
23
|
+
</div>
|
|
22
24
|
</div>
|
|
23
25
|
</template>
|
|
24
26
|
|
|
@@ -36,336 +38,382 @@ import '@vue-office/excel/lib/index.css'
|
|
|
36
38
|
|
|
37
39
|
import Mess from '../../tipBox/index'
|
|
38
40
|
import {debounce} from "../../utils";
|
|
41
|
+
|
|
39
42
|
let pdfs = {}
|
|
40
43
|
export default {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
44
|
+
name: "zydx-read",
|
|
45
|
+
components: {VueOfficeDocx, VueOfficeExcel},
|
|
46
|
+
data() {
|
|
47
|
+
return {
|
|
48
|
+
fileType: null,
|
|
49
|
+
PdfJs: null,
|
|
50
|
+
svgArr: [],
|
|
51
|
+
container: null,
|
|
52
|
+
pdfPages: 0,
|
|
53
|
+
loading: false,
|
|
54
|
+
repeat: false,
|
|
55
|
+
idArr: {},
|
|
56
|
+
scales: 1.35,
|
|
57
|
+
timer: null,
|
|
58
|
+
pdf: null,
|
|
59
|
+
page: 0,
|
|
60
|
+
xlsx: true,
|
|
61
|
+
canvasArr: {},
|
|
62
|
+
pageIndex: 0,
|
|
63
|
+
refSrc: '',
|
|
64
|
+
resizeObserver: {},
|
|
65
|
+
loadingTask: {},
|
|
66
|
+
// pdfs:null
|
|
67
|
+
}
|
|
68
|
+
},
|
|
69
|
+
props: {
|
|
70
|
+
url: {
|
|
71
|
+
type: String,
|
|
72
|
+
default: '',
|
|
65
73
|
},
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
scale: {
|
|
75
|
+
type: Number,
|
|
76
|
+
default: 1.35
|
|
77
|
+
},
|
|
78
|
+
scaleStyle: {
|
|
79
|
+
type: Object,
|
|
80
|
+
default: () => {
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
},
|
|
84
|
+
watch: {
|
|
85
|
+
url: {
|
|
86
|
+
handler: function () {
|
|
87
|
+
this.refSrc = this.randomId()
|
|
88
|
+
this.idArr[`${this.refSrc}`] = []
|
|
89
|
+
this.repeatInit()
|
|
78
90
|
},
|
|
91
|
+
deep: true,
|
|
92
|
+
immediate: true
|
|
79
93
|
},
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
handler: function (val) {
|
|
92
|
-
if(!val) return
|
|
93
|
-
if (this.repeat) return
|
|
94
|
-
if (this.timer) {
|
|
95
|
-
clearTimeout(this.timer)
|
|
94
|
+
scaleStyle: {
|
|
95
|
+
handler: function (val) {
|
|
96
|
+
if (!val) return
|
|
97
|
+
if (this.repeat) return
|
|
98
|
+
if (this.timer) {
|
|
99
|
+
clearTimeout(this.timer)
|
|
100
|
+
}
|
|
101
|
+
this.timer = setTimeout(() => {
|
|
102
|
+
this.scales = val.width / 550
|
|
103
|
+
if (this.scales >= this.scale) {
|
|
104
|
+
this.scales = this.scale
|
|
96
105
|
}
|
|
97
|
-
this.
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
106
|
+
if (this.fileType === 'pdf') {
|
|
107
|
+
if (val.width >= 800) return
|
|
108
|
+
this.canvasArr[`${this.refSrc}`].map(item => {
|
|
109
|
+
item.style.width = val.width + 'px'
|
|
110
|
+
item.style.height = val.width * 1.35 + 'px'
|
|
111
|
+
})
|
|
112
|
+
}
|
|
113
|
+
if (this.fileType === 'xlsx') {
|
|
114
|
+
this.xlsx = false
|
|
115
|
+
setTimeout(() => {
|
|
116
|
+
this.xlsx = true
|
|
117
|
+
}, 0)
|
|
118
|
+
}
|
|
119
|
+
}, 200)
|
|
120
|
+
},
|
|
121
|
+
deep: true
|
|
122
|
+
}
|
|
123
|
+
},
|
|
124
|
+
methods: {
|
|
125
|
+
errorHandler() {
|
|
126
|
+
Mess({
|
|
127
|
+
promptContent: '文件加载错误',
|
|
128
|
+
cancelShow: false
|
|
129
|
+
})
|
|
130
|
+
this.loading = false
|
|
131
|
+
},
|
|
132
|
+
repeatInit() {
|
|
133
|
+
if (this.repeat) return // 防止重复加载
|
|
134
|
+
this.repeat = true
|
|
135
|
+
this.fileType = this.url.split('.').pop()
|
|
136
|
+
if (this.fileType === 'pdf' || this.fileType === 'docx' || this.fileType === 'xlsx') {
|
|
137
|
+
this.loading = true
|
|
138
|
+
}
|
|
139
|
+
// if(this.fileType === 'mp4') this.videoFun()
|
|
140
|
+
if (this.fileType === 'pdf') {
|
|
141
|
+
this.init()
|
|
142
|
+
setTimeout(() => {
|
|
143
|
+
const el = this.$refs[`${this.refSrc}`];
|
|
144
|
+
this.resizeObserver[`${this.refSrc}`] = new ResizeObserver(() => {
|
|
145
|
+
this.refreshCanvas()
|
|
146
|
+
});
|
|
147
|
+
this.resizeObserver[`${this.refSrc}`].observe(el);
|
|
148
|
+
}, 300)
|
|
118
149
|
}
|
|
150
|
+
setTimeout(() => {
|
|
151
|
+
this.repeat = false
|
|
152
|
+
}, 1000)
|
|
153
|
+
},
|
|
154
|
+
renderedHandler() {
|
|
155
|
+
this.loading = false
|
|
119
156
|
},
|
|
120
|
-
|
|
121
|
-
|
|
157
|
+
videoFun() {
|
|
158
|
+
const video = document.getElementById('video')
|
|
159
|
+
video.addEventListener('loadeddata', function () {
|
|
160
|
+
console.log(video);
|
|
161
|
+
});
|
|
162
|
+
},
|
|
163
|
+
init() {
|
|
164
|
+
let that = this
|
|
165
|
+
this.canvasArr[`${this.refSrc}`] = []
|
|
166
|
+
this.loadingTask[`${this.refSrc}`] = PdfJs.getDocument({
|
|
167
|
+
url: this.url,
|
|
168
|
+
cMapUrl: "/zydx/static/cmaps/",
|
|
169
|
+
cMapPacked: true
|
|
170
|
+
})
|
|
171
|
+
this.loadingTask[`${this.refSrc}`].promise.then((pdf) => {
|
|
172
|
+
pdfs[`${that.refSrc}`] = pdf
|
|
173
|
+
that.pdfPages = pdf.numPages // 获取pdf文件的总页数
|
|
174
|
+
that.page = pdf.numPages
|
|
175
|
+
that.pageIndex = that.page > 1 ? 2 : 1
|
|
176
|
+
that.getPDF(pdf, that.pageIndex)
|
|
177
|
+
}).catch(() => {
|
|
178
|
+
that.loading = false
|
|
122
179
|
Mess({
|
|
123
180
|
promptContent: '文件加载错误',
|
|
124
181
|
cancelShow: false
|
|
125
182
|
})
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
183
|
+
})
|
|
184
|
+
},
|
|
185
|
+
scroll(e) {
|
|
186
|
+
const dom = e.target
|
|
187
|
+
var scrollTop = dom.scrollTop; //滑入屏幕上方的高度
|
|
188
|
+
var windowHeitht = dom.clientHeight; //能看到的页面的高度
|
|
189
|
+
var scrollHeight = dom.scrollHeight; //监控的整个div的高度(包括现在看到的和上下隐藏起来看不到的)
|
|
190
|
+
let total = scrollTop + windowHeitht
|
|
191
|
+
if (total >= scrollHeight - 50) {
|
|
192
|
+
if (this.pageIndex >= this.page) return
|
|
193
|
+
if ((this.page - this.pageIndex) >= 2) {
|
|
194
|
+
this.pageIndex += 2
|
|
195
|
+
this.getPDF(pdfs[`${this.refSrc}`], 2)
|
|
196
|
+
} else {
|
|
197
|
+
this.pageIndex += 1
|
|
198
|
+
this.getPDF(pdfs[`${this.refSrc}`], 1)
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
|
|
203
|
+
|
|
204
|
+
async getPDF(pdf, page) {
|
|
205
|
+
let that = this
|
|
206
|
+
for (let i = 0; i < page; i++) {
|
|
207
|
+
const id = 'canvas' + Math.random().toString(36).substr(2)
|
|
208
|
+
that.idArr[`${that.refSrc}`].push(id)
|
|
209
|
+
await pdf.getPage(this.pageIndex === 1 ? 1 : this.pageIndex + i - 1).then(function (pdfPage) {
|
|
210
|
+
// let canvas = document.createElement('canvas')
|
|
211
|
+
let canvas = document.getElementById(id)
|
|
212
|
+
that.canvasArr[`${that.refSrc}`] = []
|
|
213
|
+
that.canvasArr[`${that.refSrc}`].push(canvas)
|
|
214
|
+
if (!canvas) return
|
|
215
|
+
let ctx = canvas.getContext('2d');
|
|
216
|
+
// let viewport = page.getViewport({scale: that.scales})
|
|
217
|
+
// canvas.width = viewport.width * 2
|
|
218
|
+
// canvas.height = viewport.height * 2
|
|
219
|
+
// canvas.style.width = viewport.width + 'px'
|
|
220
|
+
// canvas.style.height = viewport.height + 'px'
|
|
221
|
+
|
|
222
|
+
let boxWidth = that.$refs['view-pdf'].offsetWidth
|
|
223
|
+
let scales = (boxWidth / 846) * (boxWidth / (boxWidth - (boxWidth * 0.115 * 2)))
|
|
224
|
+
let viewport = pdfPage.getViewport({scale: scales})
|
|
225
|
+
const sc = viewport.width / viewport.height
|
|
226
|
+
const wid = boxWidth - 20
|
|
227
|
+
const hei = wid / sc
|
|
228
|
+
canvas.width = wid * 2
|
|
229
|
+
canvas.height = hei * 2
|
|
230
|
+
canvas.style.width = wid + 'px'
|
|
231
|
+
canvas.style.height = hei + 'px'
|
|
232
|
+
let renderContext = {
|
|
233
|
+
canvasContext: ctx,
|
|
234
|
+
viewport: viewport,
|
|
235
|
+
transform: [2, 0, 0, 2, 0, 0]
|
|
236
|
+
}
|
|
237
|
+
pdfPage.render(renderContext)
|
|
238
|
+
})
|
|
239
|
+
}
|
|
240
|
+
that.renderedHandler()
|
|
241
|
+
},
|
|
242
|
+
refreshCanvas: debounce(function () {
|
|
243
|
+
let that = this
|
|
244
|
+
that.idArr[`${that.refSrc}`].forEach((item, index) => {
|
|
245
|
+
pdfs[`${this.refSrc}`].getPage(index + 1).then(function (page) {
|
|
246
|
+
// let canvas = document.createElement('canvas')
|
|
247
|
+
let canvas = document.getElementById(item)
|
|
248
|
+
that.canvasArr[`${that.refSrc}`] = []
|
|
249
|
+
that.canvasArr[`${that.refSrc}`].push(canvas)
|
|
250
|
+
if (!canvas) return
|
|
251
|
+
let ctx = canvas.getContext('2d');
|
|
252
|
+
let boxWidth = that.$refs['view-pdf'].offsetWidth
|
|
253
|
+
let scales = (boxWidth / 846) * (boxWidth / (boxWidth - (boxWidth * 0.115 * 2)))
|
|
254
|
+
let viewport = page.getViewport({scale: scales})
|
|
255
|
+
const sc = viewport.width / viewport.height
|
|
256
|
+
const wid = boxWidth - 20
|
|
257
|
+
const hei = wid / sc
|
|
258
|
+
canvas.width = wid * 2
|
|
259
|
+
canvas.height = hei * 2
|
|
260
|
+
canvas.style.width = wid + 'px'
|
|
261
|
+
canvas.style.height = hei + 'px'
|
|
262
|
+
let renderContext = {
|
|
263
|
+
canvasContext: ctx,
|
|
264
|
+
viewport: viewport,
|
|
265
|
+
transform: [2, 0, 0, 2, 0, 0]
|
|
266
|
+
}
|
|
267
|
+
page.render(renderContext)
|
|
268
|
+
})
|
|
269
|
+
})
|
|
270
|
+
}, 50),
|
|
271
|
+
randomId() {
|
|
272
|
+
const id = Math.random().toString(36).substr(2)
|
|
273
|
+
return id.replace(/[0-9]/g, '')
|
|
274
|
+
},
|
|
275
|
+
async flipLeft(e) {
|
|
276
|
+
const element = this.$refs['view-pdf']
|
|
277
|
+
if (element) {
|
|
278
|
+
let cycleNum = 0
|
|
279
|
+
if (this.pageIndex < e) {
|
|
280
|
+
if ((e % 2) === 0) {
|
|
281
|
+
cycleNum = Math.floor((e / 2))
|
|
282
|
+
} else {
|
|
283
|
+
cycleNum = Math.floor((e / 2)) + 1
|
|
284
|
+
}
|
|
285
|
+
for (let i = 0; i < cycleNum; i++) {
|
|
286
|
+
if (this.pageIndex >= this.page) return
|
|
287
|
+
if ((this.page - this.pageIndex) >= 2) {
|
|
189
288
|
this.pageIndex += 2
|
|
190
|
-
this.getPDF(pdfs[`${this.refSrc}`],2)
|
|
191
|
-
}else {
|
|
289
|
+
await this.getPDF(pdfs[`${this.refSrc}`], 2)
|
|
290
|
+
} else {
|
|
192
291
|
this.pageIndex += 1
|
|
193
|
-
this.getPDF(pdfs[`${this.refSrc}`],1)
|
|
292
|
+
await this.getPDF(pdfs[`${this.refSrc}`], 1)
|
|
194
293
|
}
|
|
195
294
|
}
|
|
196
|
-
},
|
|
197
|
-
getPDF(pdf,page) {
|
|
198
|
-
let that = this
|
|
199
|
-
for (let i = 0; i < page; i++) {
|
|
200
|
-
const id = 'canvas' + Math.random().toString(36).substr(2)
|
|
201
|
-
that.idArr[`${that.refSrc}`].push(id)
|
|
202
|
-
pdf.getPage(this.pageIndex === 1? 1:this.pageIndex + i - 1).then(function (page) {
|
|
203
|
-
// let canvas = document.createElement('canvas')
|
|
204
|
-
let canvas = document.getElementById(id)
|
|
205
|
-
that.canvasArr[`${that.refSrc}`]=[]
|
|
206
|
-
that.canvasArr[`${that.refSrc}`].push(canvas)
|
|
207
|
-
let ctx = canvas.getContext('2d');
|
|
208
|
-
// let viewport = page.getViewport({scale: that.scales})
|
|
209
|
-
// canvas.width = viewport.width * 2
|
|
210
|
-
// canvas.height = viewport.height * 2
|
|
211
|
-
// canvas.style.width = viewport.width + 'px'
|
|
212
|
-
// canvas.style.height = viewport.height + 'px'
|
|
213
|
-
|
|
214
|
-
let boxWidth = that.$refs['view-pdf'].offsetWidth
|
|
215
|
-
let scales=(boxWidth/846)*(boxWidth/(boxWidth-(boxWidth*0.115*2)))
|
|
216
|
-
let viewport = page.getViewport({scale: scales})
|
|
217
|
-
const sc = viewport.width / viewport.height
|
|
218
|
-
const wid = boxWidth - 20
|
|
219
|
-
const hei = wid / sc
|
|
220
|
-
canvas.width = wid * 2
|
|
221
|
-
canvas.height = hei * 2
|
|
222
|
-
canvas.style.width = wid + 'px'
|
|
223
|
-
canvas.style.height = hei + 'px'
|
|
224
|
-
let renderContext = {
|
|
225
|
-
canvasContext: ctx,
|
|
226
|
-
viewport: viewport,
|
|
227
|
-
transform: [2, 0, 0, 2, 0, 0]
|
|
228
|
-
}
|
|
229
|
-
page.render(renderContext)
|
|
230
|
-
})
|
|
231
|
-
}
|
|
232
|
-
that.renderedHandler()
|
|
233
|
-
},
|
|
234
|
-
refreshCanvas:debounce(function (){
|
|
235
|
-
let that = this
|
|
236
|
-
that.idArr[`${that.refSrc}`].forEach((item,index)=>{
|
|
237
|
-
pdfs[`${this.refSrc}`].getPage( index + 1).then(function (page) {
|
|
238
|
-
// let canvas = document.createElement('canvas')
|
|
239
|
-
let canvas = document.getElementById(item)
|
|
240
|
-
that.canvasArr[`${that.refSrc}`]=[]
|
|
241
|
-
that.canvasArr[`${that.refSrc}`].push(canvas)
|
|
242
|
-
let ctx = canvas.getContext('2d');
|
|
243
|
-
let boxWidth = that.$refs['view-pdf'].offsetWidth
|
|
244
|
-
let scales=(boxWidth/846)*(boxWidth/(boxWidth-(boxWidth*0.115*2)))
|
|
245
|
-
let viewport = page.getViewport({scale: scales})
|
|
246
|
-
const sc = viewport.width / viewport.height
|
|
247
|
-
const wid = boxWidth - 20
|
|
248
|
-
const hei = wid / sc
|
|
249
|
-
canvas.width = wid * 2
|
|
250
|
-
canvas.height = hei * 2
|
|
251
|
-
canvas.style.width = wid + 'px'
|
|
252
|
-
canvas.style.height = hei + 'px'
|
|
253
|
-
let renderContext = {
|
|
254
|
-
canvasContext: ctx,
|
|
255
|
-
viewport: viewport,
|
|
256
|
-
transform: [2, 0, 0, 2, 0, 0]
|
|
257
|
-
}
|
|
258
|
-
page.render(renderContext)
|
|
259
|
-
})
|
|
260
|
-
})
|
|
261
|
-
},50),
|
|
262
|
-
randomId() {
|
|
263
|
-
const id = Math.random().toString(36).substr(2)
|
|
264
|
-
return id.replace(/[0-9]/g, '')
|
|
265
295
|
}
|
|
296
|
+
setTimeout(() => {
|
|
297
|
+
const body_s = this.$refs[`pdfPage${e}`][0]
|
|
298
|
+
element.scrollTop = body_s.offsetTop - 10
|
|
299
|
+
}, cycleNum * 60)
|
|
300
|
+
}
|
|
266
301
|
}
|
|
302
|
+
}
|
|
267
303
|
}
|
|
268
304
|
</script>
|
|
269
305
|
|
|
270
306
|
<style scoped>
|
|
271
|
-
.pdfPage{
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
307
|
+
.pdfPage {
|
|
308
|
+
position: absolute;
|
|
309
|
+
bottom: 20px;
|
|
310
|
+
left: 0;
|
|
311
|
+
z-index: 1;
|
|
312
|
+
text-align: center;
|
|
313
|
+
font-size: 14px;
|
|
314
|
+
color: #666;
|
|
315
|
+
width: 100%;
|
|
280
316
|
}
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
317
|
+
|
|
318
|
+
.pageContainer {
|
|
319
|
+
width: 100%;
|
|
320
|
+
/*box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);*/
|
|
321
|
+
margin-bottom: 10px;
|
|
322
|
+
display: inline-block;
|
|
323
|
+
position: relative;
|
|
324
|
+
box-sizing: border-box;
|
|
325
|
+
overflow: hidden;
|
|
326
|
+
border: 1px solid #cccccc;
|
|
290
327
|
}
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
328
|
+
|
|
329
|
+
.mp4, .mp3 {
|
|
330
|
+
max-width: 100%;
|
|
331
|
+
height: 100%;
|
|
332
|
+
display: flex;
|
|
333
|
+
align-items: center;
|
|
296
334
|
}
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
335
|
+
|
|
336
|
+
.mp4 video, .mp3 audio {
|
|
337
|
+
width: 100%;
|
|
338
|
+
max-height: 100%;
|
|
300
339
|
}
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
340
|
+
|
|
341
|
+
.ppt {
|
|
342
|
+
width: 100%;
|
|
343
|
+
height: 100%;
|
|
304
344
|
}
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
345
|
+
|
|
346
|
+
.view-pdf {
|
|
347
|
+
text-align: center;
|
|
348
|
+
height: 100%;
|
|
349
|
+
overflow: auto;
|
|
350
|
+
padding: 10px;
|
|
310
351
|
}
|
|
352
|
+
|
|
311
353
|
.view-pdf::-webkit-scrollbar {
|
|
312
|
-
|
|
354
|
+
width: 0
|
|
313
355
|
}
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
356
|
+
|
|
357
|
+
.read {
|
|
358
|
+
width: 100%;
|
|
359
|
+
height: 100%;
|
|
360
|
+
position: relative;
|
|
318
361
|
}
|
|
362
|
+
|
|
319
363
|
:deep(.vue-office-docx)::-webkit-scrollbar {
|
|
320
|
-
|
|
364
|
+
width: 0
|
|
321
365
|
}
|
|
366
|
+
|
|
322
367
|
:deep(.docx-wrapper) {
|
|
323
|
-
|
|
368
|
+
background-color: #fff;
|
|
324
369
|
}
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
370
|
+
|
|
371
|
+
.loading-back {
|
|
372
|
+
position: absolute;
|
|
373
|
+
top: 0;
|
|
374
|
+
left: 0;
|
|
375
|
+
right: 0;
|
|
376
|
+
bottom: 0;
|
|
377
|
+
z-index: 100;
|
|
378
|
+
display: flex;
|
|
379
|
+
align-items: center;
|
|
334
380
|
}
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
381
|
+
|
|
382
|
+
.loading-cont {
|
|
383
|
+
display: inline-block;
|
|
384
|
+
margin: 0 auto;
|
|
338
385
|
}
|
|
386
|
+
|
|
339
387
|
.loadings {
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
388
|
+
display: inline-block;
|
|
389
|
+
font-size: 28px;
|
|
390
|
+
font-family: Arial, Helvetica, sans-serif;
|
|
391
|
+
font-weight: bold;
|
|
392
|
+
color: #fff;
|
|
393
|
+
text-shadow: 0 0 2px #ff3d00, 0 0 1px #ff3d00, 0 0 1px #ff3d00;
|
|
394
|
+
letter-spacing: 2px;
|
|
395
|
+
position: relative;
|
|
348
396
|
}
|
|
349
397
|
|
|
350
398
|
.loadings::after {
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
399
|
+
content: "Loading";
|
|
400
|
+
position: absolute;
|
|
401
|
+
left: 0;
|
|
402
|
+
top: 0;
|
|
403
|
+
color: #ff3d00;
|
|
404
|
+
width: 0%;
|
|
405
|
+
height: 100%;
|
|
406
|
+
overflow: hidden;
|
|
407
|
+
animation: loading-animation 6s linear infinite;
|
|
360
408
|
}
|
|
361
409
|
|
|
362
410
|
@keyframes loading-animation {
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
411
|
+
0% {
|
|
412
|
+
width: 0%;
|
|
413
|
+
}
|
|
366
414
|
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
415
|
+
100% {
|
|
416
|
+
width: 100%;
|
|
417
|
+
}
|
|
370
418
|
}
|
|
371
419
|
</style>
|