zartui 1.0.2 → 2.0.2
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/es/action-sheet/index.css +1 -1
- package/es/action-sheet/index.js +3 -3
- package/es/action-sheet/index.less +12 -8
- package/es/area/style/index.js +1 -0
- package/es/area/style/less.js +1 -0
- package/es/avatar/index.css +1 -1
- package/es/button/index.css +1 -1
- package/es/button/index.js +28 -13
- package/es/button/index.less +60 -27
- package/es/calendar/components/Header.js +1 -6
- package/es/calendar/index.css +1 -1
- package/es/calendar/index.js +31 -8
- package/es/calendar/index.less +16 -10
- package/es/cell/index.css +1 -1
- package/es/cell/index.js +62 -40
- package/es/cell/index.less +67 -12
- package/es/cell/shared.js +2 -0
- package/es/checkbox/index.css +1 -1
- package/es/checkbox/index.less +18 -15
- package/es/checkbox-group/index.js +1 -0
- package/es/datetime-picker/style/index.js +1 -0
- package/es/datetime-picker/style/less.js +1 -0
- package/es/field/index.css +1 -1
- package/es/field/index.js +94 -9
- package/es/field/index.less +81 -11
- package/es/hierarchy-select/hierarchySelect.js +1 -8
- package/es/hierarchy-select/index.css +1 -1
- package/es/hierarchy-select/index.js +6 -14
- package/es/hierarchy-select/index.less +4 -5
- package/es/hierarchy-select/markList.js +1 -16
- package/es/icon/index.css +1 -1
- package/es/image/index.css +1 -1
- package/es/image-preview/ImagePreview.js +1 -1
- package/es/image-preview/index.css +1 -1
- package/es/image-preview/index.less +4 -2
- package/es/index.js +3 -4
- package/es/loading/index.css +1 -1
- package/es/loading/index.js +3 -3
- package/es/loading/index.less +1 -1
- package/es/media-picker/image/PickFileIcon.js +2 -9
- package/es/media-picker/image/PickPhotoIcon.js +2 -9
- package/es/media-picker/image/TakeAudioIcon.js +2 -9
- package/es/media-picker/image/TakePhotoIcon.js +2 -9
- package/es/media-picker/image/TakeVideoIcon.js +2 -9
- package/es/media-picker/index.css +1 -1
- package/es/media-picker/index.js +22 -17
- package/es/media-picker/index.less +6 -4
- package/es/media-picker/style/index.js +4 -0
- package/es/media-picker/style/less.js +4 -0
- package/es/mixins/checkbox.js +12 -30
- package/es/multiple-picker/index.css +1 -1
- package/es/multiple-picker/index.js +18 -11
- package/es/multiple-picker/index.less +11 -7
- package/es/multiple-picker/style/index.js +1 -0
- package/es/multiple-picker/style/less.js +1 -0
- package/es/pdf-viewer/style/index.js +1 -0
- package/es/pdf-viewer/style/less.js +1 -0
- package/es/picker/index.css +1 -1
- package/es/picker/index.js +18 -9
- package/es/picker/index.less +18 -2
- package/es/picker/style/index.js +1 -0
- package/es/picker/style/less.js +1 -0
- package/es/popup/index.css +1 -1
- package/es/popup/index.js +120 -49
- package/es/popup/index.less +31 -2
- package/es/radio/index.css +1 -1
- package/es/radio/index.less +24 -29
- package/es/radio-group/index.js +1 -0
- package/es/search/index.css +1 -1
- package/es/search/index.js +1 -1
- package/es/search/index.less +31 -3
- package/es/signature/index.js +7 -6
- package/es/signature/index.less +1 -1
- package/es/step/index.css +1 -1
- package/es/step/index.js +3 -5
- package/es/step/index.less +3 -1
- package/es/stepper/index.css +1 -1
- package/es/steps/index.css +1 -1
- package/es/steps/index.less +3 -3
- package/es/style/reset.css +1 -1
- package/es/style/var.less +106 -62
- package/es/switch-cell/index.css +1 -1
- package/es/tabs/Title.js +6 -1
- package/es/tabs/index.css +1 -1
- package/es/tabs/index.js +2 -4
- package/es/tabs/index.less +18 -15
- package/es/toast/index.css +1 -1
- package/es/uploader/index.css +1 -1
- package/lib/action-sheet/index.css +1 -1
- package/lib/action-sheet/index.js +3 -3
- package/lib/action-sheet/index.less +12 -8
- package/lib/area/style/index.js +1 -0
- package/lib/area/style/less.js +1 -0
- package/lib/avatar/index.css +1 -1
- package/lib/button/index.css +1 -1
- package/lib/button/index.js +28 -13
- package/lib/button/index.less +60 -27
- package/lib/calendar/components/Header.js +1 -6
- package/lib/calendar/index.css +1 -1
- package/lib/calendar/index.js +31 -8
- package/lib/calendar/index.less +16 -10
- package/lib/cell/index.css +1 -1
- package/lib/cell/index.js +62 -40
- package/lib/cell/index.less +67 -12
- package/lib/cell/shared.js +2 -0
- package/lib/checkbox/index.css +1 -1
- package/lib/checkbox/index.less +18 -15
- package/lib/checkbox-group/index.js +1 -0
- package/lib/datetime-picker/style/index.js +1 -0
- package/lib/datetime-picker/style/less.js +1 -0
- package/lib/field/index.css +1 -1
- package/lib/field/index.js +94 -9
- package/lib/field/index.less +81 -11
- package/lib/hierarchy-select/hierarchySelect.js +1 -8
- package/lib/hierarchy-select/index.css +1 -1
- package/lib/hierarchy-select/index.js +6 -15
- package/lib/hierarchy-select/index.less +4 -5
- package/lib/hierarchy-select/markList.js +1 -16
- package/lib/icon/index.css +1 -1
- package/lib/image/index.css +1 -1
- package/lib/image-preview/ImagePreview.js +1 -1
- package/lib/image-preview/index.css +1 -1
- package/lib/image-preview/index.less +4 -2
- package/lib/index.css +1 -1
- package/lib/index.js +2 -6
- package/lib/index.less +3 -4
- package/lib/loading/index.css +1 -1
- package/lib/loading/index.js +3 -3
- package/lib/loading/index.less +1 -1
- package/lib/media-picker/image/PickFileIcon.js +2 -9
- package/lib/media-picker/image/PickPhotoIcon.js +2 -9
- package/lib/media-picker/image/TakeAudioIcon.js +2 -9
- package/lib/media-picker/image/TakePhotoIcon.js +2 -9
- package/lib/media-picker/image/TakeVideoIcon.js +2 -9
- package/lib/media-picker/index.css +1 -1
- package/lib/media-picker/index.js +22 -11
- package/lib/media-picker/index.less +6 -4
- package/lib/media-picker/style/index.js +4 -0
- package/lib/media-picker/style/less.js +4 -0
- package/lib/mixins/checkbox.js +12 -30
- package/lib/multiple-picker/index.css +1 -1
- package/lib/multiple-picker/index.js +19 -11
- package/lib/multiple-picker/index.less +11 -7
- package/lib/multiple-picker/style/index.js +1 -0
- package/lib/multiple-picker/style/less.js +1 -0
- package/lib/pdf-viewer/style/index.js +1 -0
- package/lib/pdf-viewer/style/less.js +1 -0
- package/lib/picker/index.css +1 -1
- package/lib/picker/index.js +19 -9
- package/lib/picker/index.less +18 -2
- package/lib/picker/style/index.js +1 -0
- package/lib/picker/style/less.js +1 -0
- package/lib/popup/index.css +1 -1
- package/lib/popup/index.js +120 -49
- package/lib/popup/index.less +31 -2
- package/lib/radio/index.css +1 -1
- package/lib/radio/index.less +24 -29
- package/lib/radio-group/index.js +1 -0
- package/lib/search/index.css +1 -1
- package/lib/search/index.js +1 -1
- package/lib/search/index.less +31 -3
- package/lib/signature/index.js +7 -6
- package/lib/signature/index.less +1 -1
- package/lib/step/index.css +1 -1
- package/lib/step/index.js +3 -5
- package/lib/step/index.less +3 -1
- package/lib/stepper/index.css +1 -1
- package/lib/steps/index.css +1 -1
- package/lib/steps/index.less +3 -3
- package/lib/style/reset.css +1 -1
- package/lib/style/var.less +106 -62
- package/lib/switch-cell/index.css +1 -1
- package/lib/tabs/Title.js +6 -1
- package/lib/tabs/index.css +1 -1
- package/lib/tabs/index.js +2 -4
- package/lib/tabs/index.less +18 -15
- package/lib/toast/index.css +1 -1
- package/lib/uploader/index.css +1 -1
- package/lib/zart.js +1199 -2181
- package/lib/zart.min.js +4 -4
- package/package.json +5 -6
- package/es/pdf-viewer-v2/index.css +0 -1
- package/es/pdf-viewer-v2/index.js +0 -231
- package/es/pdf-viewer-v2/index.less +0 -40
- package/es/pdf-viewer-v2/style/index.js +0 -8
- package/es/pdf-viewer-v2/style/less.js +0 -8
- package/lib/pdf-viewer-v2/index.css +0 -1
- package/lib/pdf-viewer-v2/index.js +0 -242
- package/lib/pdf-viewer-v2/index.less +0 -40
- package/lib/pdf-viewer-v2/style/index.js +0 -8
- package/lib/pdf-viewer-v2/style/less.js +0 -8
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zartui",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.2",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "lib/zart.js",
|
|
6
6
|
"module": "es/index.js",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"url-loader": "^4.1.1",
|
|
42
42
|
"vue": "^2.6.11",
|
|
43
43
|
"vue-template-compiler": "^2.6.11",
|
|
44
|
-
"zart-cli": "^
|
|
44
|
+
"zart-cli": "^20.0.7"
|
|
45
45
|
},
|
|
46
46
|
"eslintConfig": {
|
|
47
47
|
"root": true,
|
|
@@ -63,15 +63,14 @@
|
|
|
63
63
|
],
|
|
64
64
|
"dependencies": {
|
|
65
65
|
"@babel/runtime": "^7.15.4",
|
|
66
|
-
"@egova/media": "^0.0.12",
|
|
67
|
-
"@egova/util": "^0.0.6",
|
|
68
66
|
"@vant/popperjs": "^1.1.0",
|
|
69
67
|
"@vue/babel-helper-vue-jsx-merge-props": "^1.2.1",
|
|
70
68
|
"egova-vue-pdf": "4.2.11",
|
|
71
69
|
"lodash": "^4.17.21",
|
|
72
|
-
"pdfjs-dist": "^2.16.105",
|
|
73
70
|
"vue-i18n": "^8.25.0",
|
|
74
71
|
"vue-lazyload": "^1.3.3",
|
|
75
|
-
"zart-icons": "^
|
|
72
|
+
"zart-icons": "^2.0.4",
|
|
73
|
+
"@egova/util": "^0.0.6",
|
|
74
|
+
"@egova/media": "^0.0.12"
|
|
76
75
|
}
|
|
77
76
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.zt-pdf-viewer-v2{width:100%;height:100%;position:relative}.zt-pdf-viewer-v2::-webkit-scrollbar{width:0;height:0}.zt-pdf-viewer-v2__page-box{width:100%;height:44px;background-color:#fff;position:fixed;bottom:0;left:0;text-align:center;font-size:16px;line-height:44px}.zt-pdf-viewer-v2__page-box .zt-pdf-viewer-v2__next,.zt-pdf-viewer-v2__page-box .zt-pdf-viewer-v2__pre{cursor:pointer;color:#3a90f6}.zt-pdf-viewer-v2__page-box .zt-pdf-viewer-v2__page{margin:0 10px}.zt-pdf-viewer-v2 .zt-loading{position:absolute;top:50%;left:50%;margin-left:-18px;margin-top:-18px}
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
import { createNamespace } from '../utils';
|
|
2
|
-
|
|
3
|
-
var _createNamespace = createNamespace('pdf-viewer-v2'),
|
|
4
|
-
createComponent = _createNamespace[0],
|
|
5
|
-
bem = _createNamespace[1];
|
|
6
|
-
|
|
7
|
-
import Toast from '../toast';
|
|
8
|
-
import Loading from '../loading';
|
|
9
|
-
import { resetObject } from "../utils/index";
|
|
10
|
-
|
|
11
|
-
var defaultData = function defaultData() {
|
|
12
|
-
return {
|
|
13
|
-
pdfDocRef: null,
|
|
14
|
-
totalPage: 0,
|
|
15
|
-
currentPage: 1,
|
|
16
|
-
loading: false,
|
|
17
|
-
PDFJS: null
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
export default createComponent({
|
|
22
|
-
props: {
|
|
23
|
-
/**
|
|
24
|
-
* pdf地址
|
|
25
|
-
*/
|
|
26
|
-
pdfUrl: {
|
|
27
|
-
type: String,
|
|
28
|
-
default: ""
|
|
29
|
-
},
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* cMap的url地址(用于解决中文乱码或中文显示为空白的问题). 该资源的物理路径在: node_modules/pdfjs-dist/cmaps
|
|
33
|
-
*/
|
|
34
|
-
cMapUrl: {
|
|
35
|
-
type: String,
|
|
36
|
-
default: ""
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* 携带的特定http请求头
|
|
41
|
-
*/
|
|
42
|
-
httpHeaders: {
|
|
43
|
-
type: Object,
|
|
44
|
-
default: function _default() {
|
|
45
|
-
return {};
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
},
|
|
49
|
-
data: function data() {
|
|
50
|
-
return defaultData();
|
|
51
|
-
},
|
|
52
|
-
mounted: function mounted() {
|
|
53
|
-
this.reset();
|
|
54
|
-
this.renderPdf();
|
|
55
|
-
},
|
|
56
|
-
deactivated: function deactivated() {
|
|
57
|
-
this.pdfDocRef.destroy();
|
|
58
|
-
},
|
|
59
|
-
computed: {
|
|
60
|
-
urlObj: function urlObj() {
|
|
61
|
-
return {
|
|
62
|
-
pdfUrl: this.pdfUrl,
|
|
63
|
-
cMapUrl: this.cMapUrl
|
|
64
|
-
};
|
|
65
|
-
}
|
|
66
|
-
},
|
|
67
|
-
watch: {
|
|
68
|
-
urlObj: function urlObj() {
|
|
69
|
-
this.reset();
|
|
70
|
-
this.renderPdf();
|
|
71
|
-
}
|
|
72
|
-
},
|
|
73
|
-
methods: {
|
|
74
|
-
reset: function reset() {
|
|
75
|
-
resetObject(this, defaultData());
|
|
76
|
-
},
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* 渲染pdf文件的指定页到画板
|
|
80
|
-
* @param pdfViewerDom 承载pdf画板的dom容器
|
|
81
|
-
* @param pdfDoc pdf文件
|
|
82
|
-
* @param pageNum 需要渲染的页码
|
|
83
|
-
*/
|
|
84
|
-
renderPdfOnePage: function renderPdfOnePage(pdfViewerDom, pdfDoc, pageNum) {
|
|
85
|
-
var _this = this;
|
|
86
|
-
|
|
87
|
-
// 创建画布
|
|
88
|
-
var canvas = document.createElement("canvas");
|
|
89
|
-
canvas.id = "pdfCanvas" + pageNum;
|
|
90
|
-
pdfViewerDom.appendChild(canvas); // 获取2d上下文
|
|
91
|
-
|
|
92
|
-
var context = canvas.getContext("2d");
|
|
93
|
-
pdfDoc.getPage(pageNum).then(function (page) {
|
|
94
|
-
// 获取当前pdf页内容, 并设置缩放
|
|
95
|
-
var viewport = page.getViewport({
|
|
96
|
-
scale: 1
|
|
97
|
-
});
|
|
98
|
-
var width = viewport.width;
|
|
99
|
-
|
|
100
|
-
_this.$nextTick(function () {
|
|
101
|
-
var containerWidth = _this.$refs.pdfContainer.offsetWidth;
|
|
102
|
-
var ratio = containerWidth / width;
|
|
103
|
-
viewport = page.getViewport({
|
|
104
|
-
scale: ratio
|
|
105
|
-
}); // @ts-ignore
|
|
106
|
-
|
|
107
|
-
var realCanvas = context.canvas;
|
|
108
|
-
realCanvas.width = viewport.width;
|
|
109
|
-
realCanvas.height = viewport.height; // 将pdf当前页内容画到2d画板中
|
|
110
|
-
// @ts-ignore
|
|
111
|
-
|
|
112
|
-
page.render({
|
|
113
|
-
canvasContext: context,
|
|
114
|
-
viewport: viewport
|
|
115
|
-
});
|
|
116
|
-
});
|
|
117
|
-
});
|
|
118
|
-
},
|
|
119
|
-
|
|
120
|
-
/**
|
|
121
|
-
* 渲染pdf的画布
|
|
122
|
-
* @param pdfViewerDom 承载pdf画布的dom容器
|
|
123
|
-
* @param pdfDoc pdf文档
|
|
124
|
-
*/
|
|
125
|
-
renderPdfCanvas: function renderPdfCanvas(pdfViewerDom, pdfDoc) {
|
|
126
|
-
// 清除原来的pdf画布
|
|
127
|
-
pdfViewerDom.innerHTML = ""; // 获取总页数
|
|
128
|
-
|
|
129
|
-
this.totalPage = pdfDoc.numPages;
|
|
130
|
-
this.loading = false; // 获取显示容器
|
|
131
|
-
|
|
132
|
-
for (var i = 1; i <= this.totalPage; i++) {
|
|
133
|
-
// 循环处理pdf的每页
|
|
134
|
-
this.renderPdfOnePage(pdfViewerDom, pdfDoc, i);
|
|
135
|
-
}
|
|
136
|
-
},
|
|
137
|
-
renderPdf: function renderPdf() {
|
|
138
|
-
var _this2 = this;
|
|
139
|
-
|
|
140
|
-
if (!this.PDFJS) {
|
|
141
|
-
this.PDFJS = window['pdfjs-dist/build/pdf'];
|
|
142
|
-
console.log("window['pdfjs-dist/build/pdf']", window['pdfjs-dist/build/pdf']);
|
|
143
|
-
|
|
144
|
-
if (this.PDFJS && this.PDFJS.GlobalWorkerOptions) {
|
|
145
|
-
this.PDFJS.GlobalWorkerOptions.workerSrc = require("pdfjs-dist/build/pdf.worker.entry");
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
|
|
149
|
-
this.loading = true;
|
|
150
|
-
var pdfViewerDom = this.$refs.pdfViewerContainer;
|
|
151
|
-
|
|
152
|
-
if (this.pdfUrl) {
|
|
153
|
-
// 获取pdf文件
|
|
154
|
-
var pdfLoadingTask = this.PDFJS.getDocument({
|
|
155
|
-
url: this.pdfUrl,
|
|
156
|
-
withCredentials: true,
|
|
157
|
-
// 携带凭证
|
|
158
|
-
httpHeaders: this.httpHeaders,
|
|
159
|
-
cMapUrl: this.cMapUrl,
|
|
160
|
-
cMapPacked: true
|
|
161
|
-
});
|
|
162
|
-
pdfLoadingTask.promise.then(function (pdfDoc) {
|
|
163
|
-
if (pdfDoc && pdfViewerDom) {
|
|
164
|
-
// 缓存pdf内容
|
|
165
|
-
_this2.pdfDocRef = pdfDoc;
|
|
166
|
-
|
|
167
|
-
_this2.renderPdfCanvas(pdfViewerDom, pdfDoc);
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
},
|
|
172
|
-
changePage: function changePage(count) {
|
|
173
|
-
var page = this.currentPage + count;
|
|
174
|
-
|
|
175
|
-
if (page < 1) {
|
|
176
|
-
Toast("已经是首页");
|
|
177
|
-
return;
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
if (page > this.totalPage) {
|
|
181
|
-
Toast("已经是最后一页");
|
|
182
|
-
return;
|
|
183
|
-
}
|
|
184
|
-
|
|
185
|
-
if (document.getElementById("pdfCanvas" + page)) {
|
|
186
|
-
document.getElementById("pdfCanvas" + page).scrollIntoView(false);
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
this.currentPage = page;
|
|
190
|
-
},
|
|
191
|
-
clickPre: function clickPre() {
|
|
192
|
-
this.changePage(-1);
|
|
193
|
-
},
|
|
194
|
-
clickNext: function clickNext() {
|
|
195
|
-
this.changePage(1);
|
|
196
|
-
}
|
|
197
|
-
},
|
|
198
|
-
render: function render(h) {
|
|
199
|
-
return h("div", {
|
|
200
|
-
"class": bem(),
|
|
201
|
-
"ref": "pdfContainer"
|
|
202
|
-
}, [h(Loading, {
|
|
203
|
-
"directives": [{
|
|
204
|
-
name: "show",
|
|
205
|
-
value: this.loading
|
|
206
|
-
}],
|
|
207
|
-
"class": bem('loading-icon')
|
|
208
|
-
}), h("div", {
|
|
209
|
-
"directives": [{
|
|
210
|
-
name: "show",
|
|
211
|
-
value: !this.loading
|
|
212
|
-
}],
|
|
213
|
-
"ref": "pdfViewerContainer",
|
|
214
|
-
"class": bem("container")
|
|
215
|
-
}), this.totalPage ? h("div", {
|
|
216
|
-
"class": bem("page-box")
|
|
217
|
-
}, [h("span", {
|
|
218
|
-
"class": bem("pre"),
|
|
219
|
-
"on": {
|
|
220
|
-
"click": this.clickPre
|
|
221
|
-
}
|
|
222
|
-
}, ["<"]), h("span", {
|
|
223
|
-
"class": bem("page")
|
|
224
|
-
}, [this.currentPage, "/", this.totalPage]), h("span", {
|
|
225
|
-
"class": bem("next"),
|
|
226
|
-
"on": {
|
|
227
|
-
"click": this.clickNext
|
|
228
|
-
}
|
|
229
|
-
}, [">"])]) : h()]);
|
|
230
|
-
}
|
|
231
|
-
});
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
@import '../style/var';
|
|
2
|
-
.zt-pdf-viewer-v2 {
|
|
3
|
-
width: 100%;
|
|
4
|
-
height: 100%;
|
|
5
|
-
position: relative;
|
|
6
|
-
|
|
7
|
-
&::-webkit-scrollbar {
|
|
8
|
-
width: 0;
|
|
9
|
-
height: 0;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
&__page-box {
|
|
13
|
-
width: 100%;
|
|
14
|
-
height: 44px;
|
|
15
|
-
background-color: #fff;
|
|
16
|
-
position: fixed;
|
|
17
|
-
bottom: 0;
|
|
18
|
-
left: 0;
|
|
19
|
-
text-align: center;
|
|
20
|
-
font-size: 16px;
|
|
21
|
-
line-height: 44px;
|
|
22
|
-
|
|
23
|
-
.zt-pdf-viewer-v2__pre, .zt-pdf-viewer-v2__next {
|
|
24
|
-
cursor: pointer;
|
|
25
|
-
color: #3a90f6;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.zt-pdf-viewer-v2__page {
|
|
29
|
-
margin: 0 10px;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.zt-loading {
|
|
34
|
-
position: absolute;
|
|
35
|
-
top: 50%;
|
|
36
|
-
left: 50%;
|
|
37
|
-
margin-left: -18px;
|
|
38
|
-
margin-top: -18px;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
import '../../style/base.less';
|
|
2
|
-
import '../../overlay/index.less';
|
|
3
|
-
import '../../info/index.less';
|
|
4
|
-
import '../../icon/index.less';
|
|
5
|
-
import '../../popup/index.less';
|
|
6
|
-
import '../../loading/index.less';
|
|
7
|
-
import '../../toast/index.less';
|
|
8
|
-
import '../index.less';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
.zt-pdf-viewer-v2{width:100%;height:100%;position:relative}.zt-pdf-viewer-v2::-webkit-scrollbar{width:0;height:0}.zt-pdf-viewer-v2__page-box{width:100%;height:44px;background-color:#fff;position:fixed;bottom:0;left:0;text-align:center;font-size:16px;line-height:44px}.zt-pdf-viewer-v2__page-box .zt-pdf-viewer-v2__next,.zt-pdf-viewer-v2__page-box .zt-pdf-viewer-v2__pre{cursor:pointer;color:#3a90f6}.zt-pdf-viewer-v2__page-box .zt-pdf-viewer-v2__page{margin:0 10px}.zt-pdf-viewer-v2 .zt-loading{position:absolute;top:50%;left:50%;margin-left:-18px;margin-top:-18px}
|
|
@@ -1,242 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.default = void 0;
|
|
7
|
-
|
|
8
|
-
var _utils = require("../utils");
|
|
9
|
-
|
|
10
|
-
var _toast = _interopRequireDefault(require("../toast"));
|
|
11
|
-
|
|
12
|
-
var _loading = _interopRequireDefault(require("../loading"));
|
|
13
|
-
|
|
14
|
-
var _index = require("../utils/index");
|
|
15
|
-
|
|
16
|
-
var _createNamespace = (0, _utils.createNamespace)('pdf-viewer-v2'),
|
|
17
|
-
createComponent = _createNamespace[0],
|
|
18
|
-
bem = _createNamespace[1];
|
|
19
|
-
|
|
20
|
-
var defaultData = function defaultData() {
|
|
21
|
-
return {
|
|
22
|
-
pdfDocRef: null,
|
|
23
|
-
totalPage: 0,
|
|
24
|
-
currentPage: 1,
|
|
25
|
-
loading: false,
|
|
26
|
-
PDFJS: null
|
|
27
|
-
};
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
var _default2 = createComponent({
|
|
31
|
-
props: {
|
|
32
|
-
/**
|
|
33
|
-
* pdf地址
|
|
34
|
-
*/
|
|
35
|
-
pdfUrl: {
|
|
36
|
-
type: String,
|
|
37
|
-
default: ""
|
|
38
|
-
},
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* cMap的url地址(用于解决中文乱码或中文显示为空白的问题). 该资源的物理路径在: node_modules/pdfjs-dist/cmaps
|
|
42
|
-
*/
|
|
43
|
-
cMapUrl: {
|
|
44
|
-
type: String,
|
|
45
|
-
default: ""
|
|
46
|
-
},
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* 携带的特定http请求头
|
|
50
|
-
*/
|
|
51
|
-
httpHeaders: {
|
|
52
|
-
type: Object,
|
|
53
|
-
default: function _default() {
|
|
54
|
-
return {};
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
},
|
|
58
|
-
data: function data() {
|
|
59
|
-
return defaultData();
|
|
60
|
-
},
|
|
61
|
-
mounted: function mounted() {
|
|
62
|
-
this.reset();
|
|
63
|
-
this.renderPdf();
|
|
64
|
-
},
|
|
65
|
-
deactivated: function deactivated() {
|
|
66
|
-
this.pdfDocRef.destroy();
|
|
67
|
-
},
|
|
68
|
-
computed: {
|
|
69
|
-
urlObj: function urlObj() {
|
|
70
|
-
return {
|
|
71
|
-
pdfUrl: this.pdfUrl,
|
|
72
|
-
cMapUrl: this.cMapUrl
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
watch: {
|
|
77
|
-
urlObj: function urlObj() {
|
|
78
|
-
this.reset();
|
|
79
|
-
this.renderPdf();
|
|
80
|
-
}
|
|
81
|
-
},
|
|
82
|
-
methods: {
|
|
83
|
-
reset: function reset() {
|
|
84
|
-
(0, _index.resetObject)(this, defaultData());
|
|
85
|
-
},
|
|
86
|
-
|
|
87
|
-
/**
|
|
88
|
-
* 渲染pdf文件的指定页到画板
|
|
89
|
-
* @param pdfViewerDom 承载pdf画板的dom容器
|
|
90
|
-
* @param pdfDoc pdf文件
|
|
91
|
-
* @param pageNum 需要渲染的页码
|
|
92
|
-
*/
|
|
93
|
-
renderPdfOnePage: function renderPdfOnePage(pdfViewerDom, pdfDoc, pageNum) {
|
|
94
|
-
var _this = this;
|
|
95
|
-
|
|
96
|
-
// 创建画布
|
|
97
|
-
var canvas = document.createElement("canvas");
|
|
98
|
-
canvas.id = "pdfCanvas" + pageNum;
|
|
99
|
-
pdfViewerDom.appendChild(canvas); // 获取2d上下文
|
|
100
|
-
|
|
101
|
-
var context = canvas.getContext("2d");
|
|
102
|
-
pdfDoc.getPage(pageNum).then(function (page) {
|
|
103
|
-
// 获取当前pdf页内容, 并设置缩放
|
|
104
|
-
var viewport = page.getViewport({
|
|
105
|
-
scale: 1
|
|
106
|
-
});
|
|
107
|
-
var width = viewport.width;
|
|
108
|
-
|
|
109
|
-
_this.$nextTick(function () {
|
|
110
|
-
var containerWidth = _this.$refs.pdfContainer.offsetWidth;
|
|
111
|
-
var ratio = containerWidth / width;
|
|
112
|
-
viewport = page.getViewport({
|
|
113
|
-
scale: ratio
|
|
114
|
-
}); // @ts-ignore
|
|
115
|
-
|
|
116
|
-
var realCanvas = context.canvas;
|
|
117
|
-
realCanvas.width = viewport.width;
|
|
118
|
-
realCanvas.height = viewport.height; // 将pdf当前页内容画到2d画板中
|
|
119
|
-
// @ts-ignore
|
|
120
|
-
|
|
121
|
-
page.render({
|
|
122
|
-
canvasContext: context,
|
|
123
|
-
viewport: viewport
|
|
124
|
-
});
|
|
125
|
-
});
|
|
126
|
-
});
|
|
127
|
-
},
|
|
128
|
-
|
|
129
|
-
/**
|
|
130
|
-
* 渲染pdf的画布
|
|
131
|
-
* @param pdfViewerDom 承载pdf画布的dom容器
|
|
132
|
-
* @param pdfDoc pdf文档
|
|
133
|
-
*/
|
|
134
|
-
renderPdfCanvas: function renderPdfCanvas(pdfViewerDom, pdfDoc) {
|
|
135
|
-
// 清除原来的pdf画布
|
|
136
|
-
pdfViewerDom.innerHTML = ""; // 获取总页数
|
|
137
|
-
|
|
138
|
-
this.totalPage = pdfDoc.numPages;
|
|
139
|
-
this.loading = false; // 获取显示容器
|
|
140
|
-
|
|
141
|
-
for (var i = 1; i <= this.totalPage; i++) {
|
|
142
|
-
// 循环处理pdf的每页
|
|
143
|
-
this.renderPdfOnePage(pdfViewerDom, pdfDoc, i);
|
|
144
|
-
}
|
|
145
|
-
},
|
|
146
|
-
renderPdf: function renderPdf() {
|
|
147
|
-
var _this2 = this;
|
|
148
|
-
|
|
149
|
-
if (!this.PDFJS) {
|
|
150
|
-
this.PDFJS = window['pdfjs-dist/build/pdf'];
|
|
151
|
-
console.log("window['pdfjs-dist/build/pdf']", window['pdfjs-dist/build/pdf']);
|
|
152
|
-
|
|
153
|
-
if (this.PDFJS && this.PDFJS.GlobalWorkerOptions) {
|
|
154
|
-
this.PDFJS.GlobalWorkerOptions.workerSrc = require("pdfjs-dist/build/pdf.worker.entry");
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
|
|
158
|
-
this.loading = true;
|
|
159
|
-
var pdfViewerDom = this.$refs.pdfViewerContainer;
|
|
160
|
-
|
|
161
|
-
if (this.pdfUrl) {
|
|
162
|
-
// 获取pdf文件
|
|
163
|
-
var pdfLoadingTask = this.PDFJS.getDocument({
|
|
164
|
-
url: this.pdfUrl,
|
|
165
|
-
withCredentials: true,
|
|
166
|
-
// 携带凭证
|
|
167
|
-
httpHeaders: this.httpHeaders,
|
|
168
|
-
cMapUrl: this.cMapUrl,
|
|
169
|
-
cMapPacked: true
|
|
170
|
-
});
|
|
171
|
-
pdfLoadingTask.promise.then(function (pdfDoc) {
|
|
172
|
-
if (pdfDoc && pdfViewerDom) {
|
|
173
|
-
// 缓存pdf内容
|
|
174
|
-
_this2.pdfDocRef = pdfDoc;
|
|
175
|
-
|
|
176
|
-
_this2.renderPdfCanvas(pdfViewerDom, pdfDoc);
|
|
177
|
-
}
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
},
|
|
181
|
-
changePage: function changePage(count) {
|
|
182
|
-
var page = this.currentPage + count;
|
|
183
|
-
|
|
184
|
-
if (page < 1) {
|
|
185
|
-
(0, _toast.default)("已经是首页");
|
|
186
|
-
return;
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
if (page > this.totalPage) {
|
|
190
|
-
(0, _toast.default)("已经是最后一页");
|
|
191
|
-
return;
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
if (document.getElementById("pdfCanvas" + page)) {
|
|
195
|
-
document.getElementById("pdfCanvas" + page).scrollIntoView(false);
|
|
196
|
-
}
|
|
197
|
-
|
|
198
|
-
this.currentPage = page;
|
|
199
|
-
},
|
|
200
|
-
clickPre: function clickPre() {
|
|
201
|
-
this.changePage(-1);
|
|
202
|
-
},
|
|
203
|
-
clickNext: function clickNext() {
|
|
204
|
-
this.changePage(1);
|
|
205
|
-
}
|
|
206
|
-
},
|
|
207
|
-
render: function render(h) {
|
|
208
|
-
return h("div", {
|
|
209
|
-
"class": bem(),
|
|
210
|
-
"ref": "pdfContainer"
|
|
211
|
-
}, [h(_loading.default, {
|
|
212
|
-
"directives": [{
|
|
213
|
-
name: "show",
|
|
214
|
-
value: this.loading
|
|
215
|
-
}],
|
|
216
|
-
"class": bem('loading-icon')
|
|
217
|
-
}), h("div", {
|
|
218
|
-
"directives": [{
|
|
219
|
-
name: "show",
|
|
220
|
-
value: !this.loading
|
|
221
|
-
}],
|
|
222
|
-
"ref": "pdfViewerContainer",
|
|
223
|
-
"class": bem("container")
|
|
224
|
-
}), this.totalPage ? h("div", {
|
|
225
|
-
"class": bem("page-box")
|
|
226
|
-
}, [h("span", {
|
|
227
|
-
"class": bem("pre"),
|
|
228
|
-
"on": {
|
|
229
|
-
"click": this.clickPre
|
|
230
|
-
}
|
|
231
|
-
}, ["<"]), h("span", {
|
|
232
|
-
"class": bem("page")
|
|
233
|
-
}, [this.currentPage, "/", this.totalPage]), h("span", {
|
|
234
|
-
"class": bem("next"),
|
|
235
|
-
"on": {
|
|
236
|
-
"click": this.clickNext
|
|
237
|
-
}
|
|
238
|
-
}, [">"])]) : h()]);
|
|
239
|
-
}
|
|
240
|
-
});
|
|
241
|
-
|
|
242
|
-
exports.default = _default2;
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
@import '../style/var';
|
|
2
|
-
.zt-pdf-viewer-v2 {
|
|
3
|
-
width: 100%;
|
|
4
|
-
height: 100%;
|
|
5
|
-
position: relative;
|
|
6
|
-
|
|
7
|
-
&::-webkit-scrollbar {
|
|
8
|
-
width: 0;
|
|
9
|
-
height: 0;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
&__page-box {
|
|
13
|
-
width: 100%;
|
|
14
|
-
height: 44px;
|
|
15
|
-
background-color: #fff;
|
|
16
|
-
position: fixed;
|
|
17
|
-
bottom: 0;
|
|
18
|
-
left: 0;
|
|
19
|
-
text-align: center;
|
|
20
|
-
font-size: 16px;
|
|
21
|
-
line-height: 44px;
|
|
22
|
-
|
|
23
|
-
.zt-pdf-viewer-v2__pre, .zt-pdf-viewer-v2__next {
|
|
24
|
-
cursor: pointer;
|
|
25
|
-
color: #3a90f6;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.zt-pdf-viewer-v2__page {
|
|
29
|
-
margin: 0 10px;
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
.zt-loading {
|
|
34
|
-
position: absolute;
|
|
35
|
-
top: 50%;
|
|
36
|
-
left: 50%;
|
|
37
|
-
margin-left: -18px;
|
|
38
|
-
margin-top: -18px;
|
|
39
|
-
}
|
|
40
|
-
}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
require('../../style/base.css');
|
|
2
|
-
require('../../overlay/index.css');
|
|
3
|
-
require('../../info/index.css');
|
|
4
|
-
require('../../icon/index.css');
|
|
5
|
-
require('../../popup/index.css');
|
|
6
|
-
require('../../loading/index.css');
|
|
7
|
-
require('../../toast/index.css');
|
|
8
|
-
require('../index.css');
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
require('../../style/base.less');
|
|
2
|
-
require('../../overlay/index.less');
|
|
3
|
-
require('../../info/index.less');
|
|
4
|
-
require('../../icon/index.less');
|
|
5
|
-
require('../../popup/index.less');
|
|
6
|
-
require('../../loading/index.less');
|
|
7
|
-
require('../../toast/index.less');
|
|
8
|
-
require('../index.less');
|