@toolspack/ttd-common 0.3.2 → 0.4.4
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/README.md +5 -12
- package/lib/ttd-common.common.js +3642 -17498
- package/lib/ttd-common.umd.js +3646 -17502
- package/lib/ttd-common.umd.min.js +1 -31
- package/package.json +2 -7
- package/src/App.vue +0 -9
- package/src/main.js +0 -20
- package/src/packages/cfca/CfcaPdf.vue +30 -14
- package/src/packages/index.js +0 -34
- package/src/packages/ukey/WzhSign.vue +72 -37
- package/lib/fonts/iconfont.1a79c8ea.eot +0 -0
- package/lib/fonts/iconfont.3303ffae.ttf +0 -0
- package/lib/img/iconfont.18b11516.svg +0 -65
- package/lib/ttd-common.common.vendors~pdfjsWorker.js +0 -442
- package/lib/ttd-common.umd.min.vendors~pdfjsWorker.js +0 -23
- package/lib/ttd-common.umd.vendors~pdfjsWorker.js +0 -442
- package/src/packages/img-view/hevue-img-preview.vue +0 -626
- package/src/packages/img-view/iconfont/iconfont.css +0 -69
- package/src/packages/img-view/iconfont/iconfont.eot +0 -0
- package/src/packages/img-view/iconfont/iconfont.svg +0 -65
- package/src/packages/img-view/iconfont/iconfont.ttf +0 -0
- package/src/packages/img-view/iconfont/iconfont.woff +0 -0
- package/src/packages/img-view/index.js +0 -51
- package/src/packages/label-list/LabelOperate.vue +0 -179
- package/src/packages/make-label/LabelMake.vue +0 -631
- package/src/packages/make-label/commontag.vue +0 -55
- package/src/packages/make-label/config/label_config.js +0 -90
- package/src/packages/make-label/config/label_size.js +0 -32
- package/src/packages/make-label/directive.js +0 -23
- package/src/packages/make-label/labelProterty.vue +0 -134
- package/src/packages/pdf-view/PdfView.vue +0 -273
- package/src/packages/pdf-view/SwitchPage.vue +0 -78
- package/src/packages/pdf-view/build/pdf.js +0 -26002
- package/src/packages/pdf-view/build/pdf.sandbox.js +0 -414
- package/src/packages/pdf-view/build/pdf.worker.js +0 -92533
- package/src/packages/pdf-view/pdf.worker.js +0 -68364
- package/src/packages/pdf-view/pdf.worker.min.js +0 -22
- package/src/packages/test-compare/LabelMake.vue +0 -681
- package/src/router/route.js +0 -18
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* 标签类型 http://192.168.88.120:200/index.php?s=/25&page_id=721
|
|
3
|
-
* 定义 自然人签名标签: 110
|
|
4
|
-
*/
|
|
5
|
-
// shape: 1: 长方形样式;;2: 圆形 3选项标签 4 正方形
|
|
6
|
-
export const labelConfig = [
|
|
7
|
-
{
|
|
8
|
-
type: 1,
|
|
9
|
-
name: '文本标签',
|
|
10
|
-
shape: 1,
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
type: 2,
|
|
14
|
-
name: '选项',
|
|
15
|
-
shape: 1,
|
|
16
|
-
}, {
|
|
17
|
-
type: 3,
|
|
18
|
-
name: '多选',
|
|
19
|
-
shape: 1,
|
|
20
|
-
}, {
|
|
21
|
-
type: 5,
|
|
22
|
-
name: '自然人投资者签名',
|
|
23
|
-
shape: 1,
|
|
24
|
-
}, {
|
|
25
|
-
type: 21,
|
|
26
|
-
name: '机构经办人签名',
|
|
27
|
-
shape: 1,
|
|
28
|
-
}, {
|
|
29
|
-
type: 11,
|
|
30
|
-
name: '管理人签章',
|
|
31
|
-
shape: 2,
|
|
32
|
-
}, {
|
|
33
|
-
type: 19,
|
|
34
|
-
name: '理财师签名',
|
|
35
|
-
shape: 1,
|
|
36
|
-
}, {
|
|
37
|
-
type: 15,
|
|
38
|
-
name: '托管人签章',
|
|
39
|
-
shape: 2,
|
|
40
|
-
}, {
|
|
41
|
-
type: 7,
|
|
42
|
-
name: '投资机构签章',
|
|
43
|
-
shape: 2,
|
|
44
|
-
}, {
|
|
45
|
-
type: 23,
|
|
46
|
-
name: '管理人法人签章',
|
|
47
|
-
shape: 2,
|
|
48
|
-
}, {
|
|
49
|
-
type: 25,
|
|
50
|
-
name: '托管人法人签章',
|
|
51
|
-
shape: 2,
|
|
52
|
-
}, {
|
|
53
|
-
type: 27,
|
|
54
|
-
name: '管理人合同签章',
|
|
55
|
-
shape: 2,
|
|
56
|
-
}, {
|
|
57
|
-
name: '募集机构公章签章',
|
|
58
|
-
type: 29,
|
|
59
|
-
shape: 2,
|
|
60
|
-
}, {
|
|
61
|
-
name: '募集机构法人章签章',
|
|
62
|
-
type: 31,
|
|
63
|
-
shape: 2,
|
|
64
|
-
}, {
|
|
65
|
-
name: '募集机构业务或合同章',
|
|
66
|
-
type: 33,
|
|
67
|
-
shape: 2,
|
|
68
|
-
}, {
|
|
69
|
-
name: '募集机构理财师签名',
|
|
70
|
-
type: 35,
|
|
71
|
-
shape: 1,
|
|
72
|
-
}, {
|
|
73
|
-
name: '机构投资者法人章',
|
|
74
|
-
type: 37,
|
|
75
|
-
shape: 4,
|
|
76
|
-
}, {
|
|
77
|
-
name: '妥妥递公章',
|
|
78
|
-
type: 97,
|
|
79
|
-
shape: 2,
|
|
80
|
-
}, {
|
|
81
|
-
name: '妥妥递法人章',
|
|
82
|
-
type: 98,
|
|
83
|
-
shape: 2,
|
|
84
|
-
}, {
|
|
85
|
-
name: '自定义标签',
|
|
86
|
-
type: 99,
|
|
87
|
-
shape: 2,
|
|
88
|
-
}]
|
|
89
|
-
|
|
90
|
-
export default labelConfig
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
// shape: 1: 长方形样式;2: 圆形 3选项标签 4 正方形
|
|
2
|
-
function getShapSize(shape) {
|
|
3
|
-
switch (shape) {
|
|
4
|
-
case 1: // 切换到签名标签样式
|
|
5
|
-
return {
|
|
6
|
-
width: '120px',
|
|
7
|
-
height: '35px',
|
|
8
|
-
}
|
|
9
|
-
case 2: // 切换到签章标签样式,因签章为圆形,所以单独使用shapeStyle方法来设置border-radius为70px(见下方)
|
|
10
|
-
return {
|
|
11
|
-
width: '140px',
|
|
12
|
-
height: '140px',
|
|
13
|
-
}
|
|
14
|
-
case 3: // 切换到选项组标签样式
|
|
15
|
-
return {
|
|
16
|
-
width: '30px',
|
|
17
|
-
height: '30px',
|
|
18
|
-
}
|
|
19
|
-
case 4: // 切换到选项组标签样式
|
|
20
|
-
return {
|
|
21
|
-
width: '100px',
|
|
22
|
-
height: '100px',
|
|
23
|
-
}
|
|
24
|
-
default: // 切换到文本标签样式
|
|
25
|
-
return {
|
|
26
|
-
width: '200px',
|
|
27
|
-
height: '35px',
|
|
28
|
-
}
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export default getShapSize
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
const directive = {
|
|
2
|
-
move: {
|
|
3
|
-
inserted(el, binding, vnode) {
|
|
4
|
-
el.onmousedown = function (e) {
|
|
5
|
-
binding.value(e, el)
|
|
6
|
-
// console.log('执行onmousedown', el.className)
|
|
7
|
-
e.stopPropagation();
|
|
8
|
-
}
|
|
9
|
-
},
|
|
10
|
-
},
|
|
11
|
-
size: {
|
|
12
|
-
inserted(el, binding, vnode) {
|
|
13
|
-
// 修改标签大小
|
|
14
|
-
el.onmousedown = function (e) {
|
|
15
|
-
binding.value(e, el)
|
|
16
|
-
// console.log('onmousedown', el.className)
|
|
17
|
-
e.stopPropagation();
|
|
18
|
-
}
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export default directive
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div>
|
|
3
|
-
<el-dialog
|
|
4
|
-
title="标签属性"
|
|
5
|
-
:modal="true"
|
|
6
|
-
:visible.sync="dialogVisible"
|
|
7
|
-
:close-on-click-modal="false"
|
|
8
|
-
append-to-body
|
|
9
|
-
width="480px"
|
|
10
|
-
custom-class="discard-flow-wrapper"
|
|
11
|
-
:before-close="beforeClose"
|
|
12
|
-
:close-on-press-escape="false"
|
|
13
|
-
>
|
|
14
|
-
<el-form ref="prodForm" :model="formData" size="small">
|
|
15
|
-
<el-form-item label="字体大小" prop="fontSize">
|
|
16
|
-
<el-select v-model="formData.fontSize">
|
|
17
|
-
<el-option label="自动" :value="0"></el-option>
|
|
18
|
-
<el-option label="12px" :value="12"></el-option>
|
|
19
|
-
<el-option label="14px" :value="14"></el-option>
|
|
20
|
-
<el-option label="16px" :value="16"></el-option>
|
|
21
|
-
<el-option label="18px" :value="18"></el-option>
|
|
22
|
-
<el-option label="32px" :value="32"></el-option>
|
|
23
|
-
</el-select>
|
|
24
|
-
</el-form-item>
|
|
25
|
-
<el-form-item label="对齐方式" prop="alignment">
|
|
26
|
-
<el-select v-model="formData.alignment">
|
|
27
|
-
<el-option label="居左" :value="0"></el-option>
|
|
28
|
-
<el-option label="居中" :value="1"></el-option>
|
|
29
|
-
<el-option label="居右" :value="2"></el-option>
|
|
30
|
-
</el-select>
|
|
31
|
-
</el-form-item>
|
|
32
|
-
<el-form-item class="remark-wrapper" label="是否换行" prop="isMultiline">
|
|
33
|
-
<el-select v-model="formData.isMultiline">
|
|
34
|
-
<el-option label="单行" :value="0"></el-option>
|
|
35
|
-
<el-option label="多行" :value="1"></el-option>
|
|
36
|
-
</el-select>
|
|
37
|
-
</el-form-item>
|
|
38
|
-
</el-form>
|
|
39
|
-
<span slot="footer" class="dialog-footer">
|
|
40
|
-
<el-button @click="beforeClose">取消</el-button>
|
|
41
|
-
<el-button type="primary" @click="onSubmit">确认提交</el-button>
|
|
42
|
-
</span>
|
|
43
|
-
</el-dialog>
|
|
44
|
-
</div>
|
|
45
|
-
</template>
|
|
46
|
-
|
|
47
|
-
<script>
|
|
48
|
-
|
|
49
|
-
export default {
|
|
50
|
-
props: {
|
|
51
|
-
role: {
|
|
52
|
-
type: String,
|
|
53
|
-
default: '',
|
|
54
|
-
},
|
|
55
|
-
},
|
|
56
|
-
data() {
|
|
57
|
-
return {
|
|
58
|
-
dialogVisible: false,
|
|
59
|
-
editItem: '',
|
|
60
|
-
productId: '',
|
|
61
|
-
labelNode: null,
|
|
62
|
-
formData: {
|
|
63
|
-
fontSize: 0,
|
|
64
|
-
alignment: '',
|
|
65
|
-
isMultiline: '',
|
|
66
|
-
},
|
|
67
|
-
}
|
|
68
|
-
},
|
|
69
|
-
methods: {
|
|
70
|
-
openDialog(labelData, index, element) {
|
|
71
|
-
this.dialogVisible = true
|
|
72
|
-
this.labelNode = {
|
|
73
|
-
labelData,
|
|
74
|
-
index, // 序号
|
|
75
|
-
element, // html元素
|
|
76
|
-
}
|
|
77
|
-
this.formData.fontSize = labelData.fontSize == null ? 0 : labelData.fontSize
|
|
78
|
-
// 不全等,可以判断null 和 undefined
|
|
79
|
-
this.formData.alignment = labelData.alignment == null ? 1 : labelData.alignment
|
|
80
|
-
this.formData.isMultiline = labelData.isMultiline == null ? 0 : labelData.isMultiline
|
|
81
|
-
},
|
|
82
|
-
beforeClose() {
|
|
83
|
-
this.dialogVisible = false
|
|
84
|
-
},
|
|
85
|
-
onSubmit() {
|
|
86
|
-
console.log('--', this.formData)
|
|
87
|
-
this.$emit('change', this.formData, this.labelNode)
|
|
88
|
-
this.dialogVisible = false
|
|
89
|
-
},
|
|
90
|
-
},
|
|
91
|
-
}
|
|
92
|
-
</script>
|
|
93
|
-
|
|
94
|
-
<style lang="less" scoped>
|
|
95
|
-
.el-dialog {
|
|
96
|
-
border-radius: 5px;
|
|
97
|
-
background: #ffffff;
|
|
98
|
-
box-shadow: 0 5px 10px 0 rgba(0, 0, 0, 0.05);
|
|
99
|
-
border-radius: 10px;
|
|
100
|
-
overflow: hidden;
|
|
101
|
-
}
|
|
102
|
-
.discard-flow {
|
|
103
|
-
margin-top: 25px;
|
|
104
|
-
border-top: 1px dashed #c9c9c9;
|
|
105
|
-
&__title {
|
|
106
|
-
margin-top: 13px;
|
|
107
|
-
font-size: 16px;
|
|
108
|
-
color: #c9c9c9;
|
|
109
|
-
line-height: 22px;
|
|
110
|
-
&.acitve {
|
|
111
|
-
color: #474d55;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
&__list {
|
|
115
|
-
margin-top: 4px;
|
|
116
|
-
font-size: 13px;
|
|
117
|
-
color: #999999;
|
|
118
|
-
line-height: 20px;
|
|
119
|
-
}
|
|
120
|
-
.words {
|
|
121
|
-
margin-right: 30px;
|
|
122
|
-
color: #101010;
|
|
123
|
-
&:last-child {
|
|
124
|
-
margin: 0;
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
.remark-wrapper {
|
|
129
|
-
margin-top: 20px;
|
|
130
|
-
.remark {
|
|
131
|
-
height: 64px;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
</style>
|
|
@@ -1,273 +0,0 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="pdf-view" :style="style">
|
|
3
|
-
<div class="pdf-view-control" v-if="showPages">
|
|
4
|
-
<switch-page ref="switchPage" @page="onChangePage" :numPages="page_count"></switch-page>
|
|
5
|
-
</div>
|
|
6
|
-
<div
|
|
7
|
-
class="center pdf-view-area"
|
|
8
|
-
@drop="onDrop"
|
|
9
|
-
@dragover="onDragOver"
|
|
10
|
-
:style="{'border': border?'1px solid #666': ''}"
|
|
11
|
-
v-if="pdfurl"
|
|
12
|
-
>
|
|
13
|
-
<canvas class="canvasstyle" ref="canvas"></canvas>
|
|
14
|
-
<div class="label-area">
|
|
15
|
-
<slot></slot>
|
|
16
|
-
</div>
|
|
17
|
-
</div>
|
|
18
|
-
<div v-else class="pdf-view-empty">未找到资源,请联系管理员!</div>
|
|
19
|
-
</div>
|
|
20
|
-
</template>
|
|
21
|
-
<script>
|
|
22
|
-
import SwitchPage from './SwitchPage.vue'
|
|
23
|
-
|
|
24
|
-
const PDFJS = require('pdfjs-dist')
|
|
25
|
-
|
|
26
|
-
PDFJS.GlobalWorkerOptions.workerSrc = 'https://wsp.totodi.com/jz/pdfjs/pdf.worker-2.2.228.js'
|
|
27
|
-
// PDFJS.GlobalWorkerOptions.workerSrc = 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.9.359/build/pdf.worker.min.js'
|
|
28
|
-
// PDFJS.GlobalWorkerOptions.workerSrc = 'https://cdn.jsdelivr.net/npm/pdfjs-dist@2.5.207/build/pdf.worker.min.js'
|
|
29
|
-
|
|
30
|
-
export default {
|
|
31
|
-
name: 'pdf-view',
|
|
32
|
-
components: { SwitchPage },
|
|
33
|
-
props: {
|
|
34
|
-
pdfurl: {
|
|
35
|
-
default: '',
|
|
36
|
-
},
|
|
37
|
-
scale: {
|
|
38
|
-
type: Number,
|
|
39
|
-
default: 1.5,
|
|
40
|
-
},
|
|
41
|
-
showPages: {
|
|
42
|
-
type: [String, Number, Boolean],
|
|
43
|
-
default: true,
|
|
44
|
-
},
|
|
45
|
-
border: {
|
|
46
|
-
type: [String, Number, Boolean],
|
|
47
|
-
default: true,
|
|
48
|
-
},
|
|
49
|
-
marginAuto: {
|
|
50
|
-
type: [String, Number, Boolean],
|
|
51
|
-
default: false,
|
|
52
|
-
},
|
|
53
|
-
page: {
|
|
54
|
-
type: [String, Number],
|
|
55
|
-
default: 1,
|
|
56
|
-
},
|
|
57
|
-
showWidth: {
|
|
58
|
-
type: [String, Number],
|
|
59
|
-
default: 0,
|
|
60
|
-
},
|
|
61
|
-
},
|
|
62
|
-
data() {
|
|
63
|
-
return {
|
|
64
|
-
pdfDoc: null, // pdfjs 生成的对象
|
|
65
|
-
pageNum: 1, // 当前页数
|
|
66
|
-
pageRendering: false,
|
|
67
|
-
pageNumPending: null,
|
|
68
|
-
compuscale: 1.5, // 放大倍数
|
|
69
|
-
page_count: 0, // 总页数
|
|
70
|
-
maxscale: 1.5, // 最大放大倍数
|
|
71
|
-
minscale: 0.8, // 最小放大倍数
|
|
72
|
-
isready: false,
|
|
73
|
-
initPage: true, // 初始化页面
|
|
74
|
-
style: {
|
|
75
|
-
width: '860px', // 先给个默认值,当渲染后,后自动按实际值渲染,否则打标签那里,会显示异常
|
|
76
|
-
margin: this.marginAuto === '' || this.marginAuto ? '0 auto' : '0',
|
|
77
|
-
},
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
methods: {
|
|
81
|
-
renderPage(num) {
|
|
82
|
-
// 渲染pdf
|
|
83
|
-
const vm = this
|
|
84
|
-
this.pageRendering = true
|
|
85
|
-
// Using promise to fetch the page
|
|
86
|
-
this.pdfDoc.getPage(num).then((page) => {
|
|
87
|
-
let scaleNum = vm.compuscale
|
|
88
|
-
let viewport = ''
|
|
89
|
-
const viewboxWidth = this.showWidth
|
|
90
|
-
if (this.initPage && viewboxWidth) {
|
|
91
|
-
const desiredWidth = parseInt(viewboxWidth, 10) - 2
|
|
92
|
-
// 首先获得pdf 原本宽度,然后根据showWidth 计算缩放倍数
|
|
93
|
-
viewport = page.getViewport({ scale: 1.0 })
|
|
94
|
-
scaleNum = desiredWidth / viewport.width
|
|
95
|
-
this.initPage = false
|
|
96
|
-
this.compuscale = scaleNum
|
|
97
|
-
this.maxscale = scaleNum
|
|
98
|
-
}
|
|
99
|
-
// 重新渲染 缩放过的PDF
|
|
100
|
-
viewport = page.getViewport({ scale: scaleNum })
|
|
101
|
-
|
|
102
|
-
// 将 canvas 尺寸 传给父组件
|
|
103
|
-
this.$emit('size', viewport, num)
|
|
104
|
-
|
|
105
|
-
// Render PDF page into canvas context
|
|
106
|
-
vm.isready = true
|
|
107
|
-
|
|
108
|
-
const { canvas } = vm.$refs
|
|
109
|
-
|
|
110
|
-
this.style.width = `${viewport.width + 2}px`;
|
|
111
|
-
canvas.height = viewport.height
|
|
112
|
-
canvas.width = viewport.width
|
|
113
|
-
|
|
114
|
-
const renderContext = {
|
|
115
|
-
canvasContext: canvas.getContext('2d'),
|
|
116
|
-
viewport,
|
|
117
|
-
}
|
|
118
|
-
const renderTask = page.render(renderContext)
|
|
119
|
-
|
|
120
|
-
// Wait for rendering to finish
|
|
121
|
-
renderTask.promise.then(() => {
|
|
122
|
-
vm.pageRendering = false
|
|
123
|
-
if (vm.pageNumPending !== null) {
|
|
124
|
-
// New page rendering is pending
|
|
125
|
-
vm.renderPage(vm.pageNumPending)
|
|
126
|
-
vm.pageNumPending = null
|
|
127
|
-
}
|
|
128
|
-
})
|
|
129
|
-
})
|
|
130
|
-
},
|
|
131
|
-
prev() {
|
|
132
|
-
// 上一页
|
|
133
|
-
if (this.pageNum <= 1) {
|
|
134
|
-
return
|
|
135
|
-
}
|
|
136
|
-
this.pageNum--
|
|
137
|
-
this.queueRenderPage(this.pageNum)
|
|
138
|
-
},
|
|
139
|
-
next() {
|
|
140
|
-
// 下一页
|
|
141
|
-
if (this.pageNum >= this.page_count) {
|
|
142
|
-
return
|
|
143
|
-
}
|
|
144
|
-
this.pageNum++
|
|
145
|
-
this.queueRenderPage(this.pageNum)
|
|
146
|
-
},
|
|
147
|
-
onChangePage(page) {
|
|
148
|
-
// switch page 改变页码
|
|
149
|
-
this.queueRenderPage(page)
|
|
150
|
-
},
|
|
151
|
-
closepdf() {
|
|
152
|
-
// 关闭PDF
|
|
153
|
-
if (this.pdfDoc) {
|
|
154
|
-
this.pdfDoc.destroy();
|
|
155
|
-
}
|
|
156
|
-
this.pdfDoc = null
|
|
157
|
-
this.isready = false
|
|
158
|
-
this.compuscale = this.scale
|
|
159
|
-
this.$emit('closepdf')
|
|
160
|
-
},
|
|
161
|
-
queueRenderPage(num) {
|
|
162
|
-
if (this.pageRendering) {
|
|
163
|
-
this.pageNumPending = num
|
|
164
|
-
} else {
|
|
165
|
-
this.renderPage(num)
|
|
166
|
-
}
|
|
167
|
-
},
|
|
168
|
-
loadUrl(url) {
|
|
169
|
-
if (!PDFJS) {
|
|
170
|
-
return false
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
// 此处无法确定,到底是否使用encodeURI
|
|
174
|
-
// var reg = /[\u4e00-\u9fa5]+/
|
|
175
|
-
// if (reg.test(url)) {
|
|
176
|
-
// url = encodeURI(url)
|
|
177
|
-
// console.log('-----encodeURI------', url)
|
|
178
|
-
// }
|
|
179
|
-
console.log('----PdfView---', url)
|
|
180
|
-
PDFJS.getDocument({
|
|
181
|
-
url: encodeURI(url),
|
|
182
|
-
cMapUrl: 'https://unpkg.com/pdfjs-dist@2.2.228/cmaps/',
|
|
183
|
-
cMapPacked: true,
|
|
184
|
-
}).promise.then((pdfDoc_) => {
|
|
185
|
-
// 初始化pdf
|
|
186
|
-
if (this.pdfDoc) {
|
|
187
|
-
console.log('pdfDocument is ready destroy,,')
|
|
188
|
-
this.pdfDoc.destroy();
|
|
189
|
-
}
|
|
190
|
-
this.pdfDoc = pdfDoc_
|
|
191
|
-
this.page_count = pdfDoc_.numPages
|
|
192
|
-
console.log('this.page_count 22.37', this.page_count)
|
|
193
|
-
this.$emit('numPages', pdfDoc_.numPages)
|
|
194
|
-
this.renderPage(this.pageNum)
|
|
195
|
-
})/* .catch((err) => {
|
|
196
|
-
console.log(err)
|
|
197
|
-
}) */
|
|
198
|
-
},
|
|
199
|
-
onDrop(event) {
|
|
200
|
-
this.$emit('drop', event)
|
|
201
|
-
},
|
|
202
|
-
onDragOver(event) {
|
|
203
|
-
// 默认地,无法将数据/元素放置到其他元素中。如果需要设置允许放置,我们必须阻止对元素的默认处理方式。
|
|
204
|
-
// 这要通过调用 ondragover 事件的 event.preventDefault() 方法:
|
|
205
|
-
event.preventDefault()
|
|
206
|
-
},
|
|
207
|
-
},
|
|
208
|
-
mounted() {
|
|
209
|
-
this.compuscale = this.scale
|
|
210
|
-
this.initPage = true
|
|
211
|
-
if (this.pdfurl) {
|
|
212
|
-
this.loadUrl(this.pdfurl)
|
|
213
|
-
}
|
|
214
|
-
},
|
|
215
|
-
beforeDestroy() {
|
|
216
|
-
if (this.pdfDoc) {
|
|
217
|
-
this.pdfDoc.destroy();
|
|
218
|
-
}
|
|
219
|
-
},
|
|
220
|
-
watch: {
|
|
221
|
-
pdfurl(val) {
|
|
222
|
-
if (val) {
|
|
223
|
-
this.pageNum = 1
|
|
224
|
-
this.initPage = true
|
|
225
|
-
this.loadUrl(val)
|
|
226
|
-
if (this.pdfDoc) {
|
|
227
|
-
this.pdfDoc.destroy();
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
if (this.showPages) {
|
|
231
|
-
this.$refs.switchPage.setPage(1)
|
|
232
|
-
}
|
|
233
|
-
},
|
|
234
|
-
// 监听页码变化,渲染对应合同页
|
|
235
|
-
page(newPage, oldPage) {
|
|
236
|
-
this.queueRenderPage(newPage)
|
|
237
|
-
},
|
|
238
|
-
},
|
|
239
|
-
}
|
|
240
|
-
</script>
|
|
241
|
-
|
|
242
|
-
<style lang="less" scoped>
|
|
243
|
-
.pdf-view {
|
|
244
|
-
height: 100%;
|
|
245
|
-
max-width: 100%;
|
|
246
|
-
}
|
|
247
|
-
.pdf-view-control {
|
|
248
|
-
text-align: center;
|
|
249
|
-
margin: 10px 0;
|
|
250
|
-
}
|
|
251
|
-
.pdf-view-area {
|
|
252
|
-
position: relative;
|
|
253
|
-
margin: 0 auto;
|
|
254
|
-
min-height: 700px;
|
|
255
|
-
.canvasstyle {
|
|
256
|
-
display: block;
|
|
257
|
-
margin: 0 auto;
|
|
258
|
-
}
|
|
259
|
-
.label-area {
|
|
260
|
-
position: absolute;
|
|
261
|
-
right: 0;
|
|
262
|
-
bottom: 0;
|
|
263
|
-
top: 0;
|
|
264
|
-
left: 0;
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
.pdf-view-empty {
|
|
268
|
-
text-align: center;
|
|
269
|
-
line-height: 150px;
|
|
270
|
-
font-size: 14px;
|
|
271
|
-
color: #999;
|
|
272
|
-
}
|
|
273
|
-
</style>
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
<template lang="html">
|
|
2
|
-
<div class="switch-page">
|
|
3
|
-
<el-button size="mini" @click="switchPage('prev')"><i class="el-icon-caret-left"></i></el-button>
|
|
4
|
-
<el-button size="mini" @click="switchPage('next')"><i class="el-icon-caret-right"></i></el-button>
|
|
5
|
-
<span style="margin-left: 10px;">{{page}}/{{numPages}}</span>
|
|
6
|
-
<span style="margin-left: 6px">
|
|
7
|
-
跳转至
|
|
8
|
-
<el-input v-model.number="itemPage" style="width: 50px;margin: 0 4px" size="mini" @keyup.native.enter="goPage"></el-input>
|
|
9
|
-
页
|
|
10
|
-
</span>
|
|
11
|
-
</div>
|
|
12
|
-
</template>
|
|
13
|
-
|
|
14
|
-
<script>
|
|
15
|
-
export default {
|
|
16
|
-
name: 'switch-page',
|
|
17
|
-
props: {
|
|
18
|
-
numPages: {
|
|
19
|
-
type: [Number, String],
|
|
20
|
-
},
|
|
21
|
-
},
|
|
22
|
-
data() {
|
|
23
|
-
return {
|
|
24
|
-
page: 1,
|
|
25
|
-
itemPage: '',
|
|
26
|
-
}
|
|
27
|
-
},
|
|
28
|
-
watch: {
|
|
29
|
-
numPages() {
|
|
30
|
-
this.page = 1
|
|
31
|
-
},
|
|
32
|
-
},
|
|
33
|
-
methods: {
|
|
34
|
-
switchPage(str) {
|
|
35
|
-
if (str === 'prev') {
|
|
36
|
-
if (this.page === 1) {
|
|
37
|
-
return
|
|
38
|
-
}
|
|
39
|
-
this.page--
|
|
40
|
-
}
|
|
41
|
-
if (str === 'next') {
|
|
42
|
-
if (this.page === this.numPages) {
|
|
43
|
-
this.$message({ message: '当前已是最后一页', type: 'warning' })
|
|
44
|
-
return
|
|
45
|
-
}
|
|
46
|
-
this.page++
|
|
47
|
-
}
|
|
48
|
-
this.$emit('page', this.page)
|
|
49
|
-
},
|
|
50
|
-
setPage(page = 1) {
|
|
51
|
-
this.page = page
|
|
52
|
-
},
|
|
53
|
-
goPage() {
|
|
54
|
-
if (this.itemPage > 0) {
|
|
55
|
-
if (this.itemPage >= this.numPages) {
|
|
56
|
-
this.page = this.numPages
|
|
57
|
-
this.itemPage = this.page
|
|
58
|
-
} else {
|
|
59
|
-
this.page = this.itemPage
|
|
60
|
-
}
|
|
61
|
-
this.$emit('page', this.page)
|
|
62
|
-
}
|
|
63
|
-
},
|
|
64
|
-
},
|
|
65
|
-
}
|
|
66
|
-
</script>
|
|
67
|
-
|
|
68
|
-
<style lang="css" scoped>
|
|
69
|
-
.switch-page {
|
|
70
|
-
margin: 0;
|
|
71
|
-
padding: 0;
|
|
72
|
-
overflow: auto;
|
|
73
|
-
}
|
|
74
|
-
.switch-page button {
|
|
75
|
-
font-size: 16px;
|
|
76
|
-
padding: 6px !important;
|
|
77
|
-
}
|
|
78
|
-
</style>
|