askbot-dragon 1.6.55-beta → 1.6.57-beta
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/assets/js/common.js +176 -1
- package/src/components/AnswerDocknowledge.vue +3 -1
- package/src/components/pdfPosition.vue +4 -3
- package/src/components/previewDoc.vue +5 -0
- package/src/components/previewPdf.vue +32 -24
- package/src/components/welcomeKnowledgeFile.vue +4 -1
package/package.json
CHANGED
package/src/assets/js/common.js
CHANGED
|
@@ -70,7 +70,182 @@ let imageTypeObj = {
|
|
|
70
70
|
aiv: "video",
|
|
71
71
|
news:"news"
|
|
72
72
|
}
|
|
73
|
+
function newInitWaterMark(elId, textValue) {
|
|
74
|
+
//默认设置
|
|
75
|
+
var defaultSettings = {
|
|
73
76
|
|
|
77
|
+
watermark_txt: "",
|
|
78
|
+
|
|
79
|
+
visitorWatermark_txt: "",
|
|
80
|
+
|
|
81
|
+
watermark_x: 0, //水印起始位置x轴坐标
|
|
82
|
+
|
|
83
|
+
watermark_y: 0, //水印起始位置Y轴坐标
|
|
84
|
+
|
|
85
|
+
watermark_rows: 0, //水印行数
|
|
86
|
+
|
|
87
|
+
watermark_cols: 0, //水印列数
|
|
88
|
+
|
|
89
|
+
watermark_x_space: 40, //水印x轴间隔
|
|
90
|
+
|
|
91
|
+
watermark_y_space: 60, //水印y轴间隔
|
|
92
|
+
|
|
93
|
+
watermark_color: "black", //水印字体颜色
|
|
94
|
+
|
|
95
|
+
watermark_alpha: 0.3, //水印透明度
|
|
96
|
+
|
|
97
|
+
watermark_fontsize: "12px", //水印字体大小
|
|
98
|
+
|
|
99
|
+
watermark_font: "微软雅黑", //水印字体
|
|
100
|
+
|
|
101
|
+
watermark_width: 100, //水印宽度
|
|
102
|
+
|
|
103
|
+
watermark_height: 60, //水印长度
|
|
104
|
+
|
|
105
|
+
watermark_angle: 20 //水印倾斜度数
|
|
106
|
+
|
|
107
|
+
};
|
|
108
|
+
let textWatermarkValue = textValue;
|
|
109
|
+
if (textWatermarkValue) {
|
|
110
|
+
defaultSettings.watermark_txt = textWatermarkValue;
|
|
111
|
+
}
|
|
112
|
+
if (!textWatermarkValue) {
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
//采用配置项替换默认值,作用类似jquery.extend
|
|
117
|
+
|
|
118
|
+
if (arguments.length === 1 && typeof arguments[0] === "object") {
|
|
119
|
+
|
|
120
|
+
// 获取参数配置
|
|
121
|
+
|
|
122
|
+
var src = arguments[0];
|
|
123
|
+
|
|
124
|
+
for (let key in src) {
|
|
125
|
+
|
|
126
|
+
if (src[key] && defaultSettings[key] && src[key] === defaultSettings[key])
|
|
127
|
+
|
|
128
|
+
continue;
|
|
129
|
+
|
|
130
|
+
else if (src[key])
|
|
131
|
+
|
|
132
|
+
defaultSettings[key] = src[key];
|
|
133
|
+
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
var oTemp = document.createDocumentFragment();
|
|
139
|
+
|
|
140
|
+
//获取页面最大宽度
|
|
141
|
+
|
|
142
|
+
var page_width = Math.max(document.getElementById(elId).scrollWidth, document.getElementById(elId).clientWidth);
|
|
143
|
+
|
|
144
|
+
var cutWidth = page_width * 0.0150;
|
|
145
|
+
|
|
146
|
+
page_width = page_width - cutWidth;
|
|
147
|
+
|
|
148
|
+
//获取页面最大高度
|
|
149
|
+
var page_height = document.getElementById(elId).scrollHeight;
|
|
150
|
+
console.log('page_height',page_height, page_width);
|
|
151
|
+
|
|
152
|
+
// var page_height = Math.max(document.body.scrollHeight, document.body.clientHeight);
|
|
153
|
+
|
|
154
|
+
// var page_height = document.body.scrollHeight+document.body.scrollTop;
|
|
155
|
+
|
|
156
|
+
//如果将水印列数设置为0,或水印列数设置过大,超过页面最大宽度,则重新计算水印列数和水印x轴间隔
|
|
157
|
+
|
|
158
|
+
if (defaultSettings.watermark_cols == 0 || (parseInt(defaultSettings.watermark_x + defaultSettings
|
|
159
|
+
|
|
160
|
+
.watermark_width * defaultSettings.watermark_cols + defaultSettings.watermark_x_space * (
|
|
161
|
+
|
|
162
|
+
defaultSettings.watermark_cols - 1)) > page_width)) {
|
|
163
|
+
|
|
164
|
+
defaultSettings.watermark_cols = parseInt((page_width - defaultSettings.watermark_x + defaultSettings
|
|
165
|
+
|
|
166
|
+
.watermark_x_space) / (defaultSettings.watermark_width + defaultSettings
|
|
167
|
+
|
|
168
|
+
.watermark_x_space));
|
|
169
|
+
|
|
170
|
+
defaultSettings.watermark_x_space = parseInt((page_width - defaultSettings.watermark_x -
|
|
171
|
+
|
|
172
|
+
defaultSettings
|
|
173
|
+
|
|
174
|
+
.watermark_width * defaultSettings.watermark_cols) / (defaultSettings.watermark_cols - 1));
|
|
175
|
+
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
//如果将水印行数设置为0,或水印行数设置过大,超过页面最大长度,则重新计算水印行数和水印y轴间隔
|
|
179
|
+
|
|
180
|
+
if (defaultSettings.watermark_rows == 0 || (parseInt(defaultSettings.watermark_y + defaultSettings
|
|
181
|
+
|
|
182
|
+
.watermark_height * defaultSettings.watermark_rows + defaultSettings.watermark_y_space * (
|
|
183
|
+
|
|
184
|
+
defaultSettings.watermark_rows - 1)) > page_height)) {
|
|
185
|
+
|
|
186
|
+
defaultSettings.watermark_rows = parseInt((defaultSettings.watermark_y_space + page_height -
|
|
187
|
+
|
|
188
|
+
defaultSettings
|
|
189
|
+
|
|
190
|
+
.watermark_y) / (defaultSettings.watermark_height + defaultSettings.watermark_y_space));
|
|
191
|
+
|
|
192
|
+
defaultSettings.watermark_y_space = parseInt(((page_height - defaultSettings.watermark_y) -
|
|
193
|
+
|
|
194
|
+
defaultSettings
|
|
195
|
+
|
|
196
|
+
.watermark_height * defaultSettings.watermark_rows) / (defaultSettings.watermark_rows - 1));
|
|
197
|
+
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
var x;
|
|
201
|
+
var y;
|
|
202
|
+
for (var i = 0; i < defaultSettings.watermark_rows; i++) {
|
|
203
|
+
y = defaultSettings.watermark_y + (defaultSettings.watermark_y_space + defaultSettings.watermark_height) * i;
|
|
204
|
+
for (var j = 0; j < defaultSettings.watermark_cols; j++) {
|
|
205
|
+
x = defaultSettings.watermark_x + (defaultSettings.watermark_width + defaultSettings.watermark_x_space) * j;
|
|
206
|
+
var mask_div = document.createElement("div");
|
|
207
|
+
|
|
208
|
+
mask_div.id = "mask_div" + i + j;
|
|
209
|
+
mask_div.className = "mask_div";
|
|
210
|
+
mask_div.style.webkitTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
|
|
211
|
+
mask_div.style.MozTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
|
|
212
|
+
mask_div.style.msTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
|
|
213
|
+
mask_div.style.OTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
|
|
214
|
+
mask_div.style.transform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
|
|
215
|
+
mask_div.style.visibility = "";
|
|
216
|
+
mask_div.style.position = "absolute";
|
|
217
|
+
//奇偶行错开,这样水印就不对齐,显的不呆板
|
|
218
|
+
mask_div.style.left = x + 20 + "px";
|
|
219
|
+
mask_div.appendChild(document.createTextNode(defaultSettings.watermark_txt));
|
|
220
|
+
|
|
221
|
+
mask_div.style.top = y + 10 + "px";
|
|
222
|
+
|
|
223
|
+
mask_div.style.overflow = "hidden";
|
|
224
|
+
|
|
225
|
+
mask_div.style.pointerEvents = "none"; //让水印不遮挡页面的点击事件
|
|
226
|
+
|
|
227
|
+
mask_div.style.opacity = defaultSettings.watermark_alpha;
|
|
228
|
+
|
|
229
|
+
mask_div.style.fontSize = defaultSettings.watermark_fontsize;
|
|
230
|
+
|
|
231
|
+
mask_div.style.fontFamily = defaultSettings.watermark_font;
|
|
232
|
+
|
|
233
|
+
mask_div.style.color = defaultSettings.watermark_color;
|
|
234
|
+
|
|
235
|
+
mask_div.style.textAlign = "center";
|
|
236
|
+
|
|
237
|
+
mask_div.style.width = defaultSettings.watermark_width + "px";
|
|
238
|
+
|
|
239
|
+
mask_div.style.height = defaultSettings.watermark_width + "px";
|
|
240
|
+
|
|
241
|
+
mask_div.style.display = "block";
|
|
242
|
+
|
|
243
|
+
oTemp.appendChild(mask_div);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
document.getElementById(elId).appendChild(oTemp);
|
|
247
|
+
}
|
|
74
248
|
export {
|
|
75
|
-
imageTypeObj
|
|
249
|
+
imageTypeObj,
|
|
250
|
+
newInitWaterMark
|
|
76
251
|
}
|
|
@@ -98,6 +98,7 @@
|
|
|
98
98
|
</div>
|
|
99
99
|
<previewPdf ref="previewPdf"
|
|
100
100
|
:url="previewHref"
|
|
101
|
+
:previewOssPath="previewOssPath"
|
|
101
102
|
:title="title" :sourceFileType="sourceFileType"
|
|
102
103
|
officePreviewType="pdf"
|
|
103
104
|
@previewToDialog="previewToDialog"
|
|
@@ -203,7 +204,7 @@ export default {
|
|
|
203
204
|
title:'',
|
|
204
205
|
previewKnowledgeId:"",
|
|
205
206
|
previewKnowledge:{},
|
|
206
|
-
|
|
207
|
+
previewOssPath:""
|
|
207
208
|
}
|
|
208
209
|
},
|
|
209
210
|
props: ['msg', 'isAskLightning', 'isMessageRecord', "isApp","isHasChat","activeKnowledgeId"],
|
|
@@ -288,6 +289,7 @@ export default {
|
|
|
288
289
|
this.previewKnowledgeId = item.knowledgeId
|
|
289
290
|
this.$refs.previewPdf.previewShowPopup = false;
|
|
290
291
|
this.$refs.previewPdf.drawer = false;
|
|
292
|
+
this.previewOssPath = url;
|
|
291
293
|
let index = url.lastIndexOf('?')
|
|
292
294
|
let type = ''
|
|
293
295
|
let httpUrl = '/knowledge-api/knowledge/getTemporaryCertificate'
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
|
|
34
34
|
<script>
|
|
35
35
|
import _ from 'lodash'
|
|
36
|
+
import { newInitWaterMark } from "../assets/js/common";
|
|
36
37
|
// import * as pdfjsLib from 'pdfjs-dist'
|
|
37
38
|
// pdfjsLib.GlobalWorkerOptions.workerSrc = 'pdfjs-dist/build/pdf.worker';
|
|
38
39
|
// import { TextLayerBuilder } from "pdfjs-dist/web/pdf_viewer";
|
|
@@ -49,7 +50,7 @@ const CSS_UNITS = 96.0 / 72.0
|
|
|
49
50
|
// import { zoomElement } from '../assets/js/hammer'
|
|
50
51
|
export default {
|
|
51
52
|
name: 'pdfView',
|
|
52
|
-
props: ['tagIds', 'isMessageRecord','fileName', "knowledgeItem"],
|
|
53
|
+
props: ['tagIds', 'isMessageRecord','fileName', "knowledgeItem",'textWatermarkStr'],
|
|
53
54
|
data () {
|
|
54
55
|
return {
|
|
55
56
|
url: '',
|
|
@@ -261,8 +262,8 @@ export default {
|
|
|
261
262
|
this.contentView.style.paddingBottom = '60px'
|
|
262
263
|
// contentView.style.overflowY = 'auto'
|
|
263
264
|
this.$refs.pdfView.appendChild(this.contentView);
|
|
264
|
-
if (this.
|
|
265
|
-
this.
|
|
265
|
+
if (this.textWatermarkStr){
|
|
266
|
+
newInitWaterMark('pdf_container_view',this.textWatermarkStr)
|
|
266
267
|
}
|
|
267
268
|
}
|
|
268
269
|
this.renderPages(pageIndex)
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
|
|
2
|
+
<!-- preview-pdf
|
|
3
|
+
组件主要负责 知识项目中 文件的预览,携带定位信息参数 tagIds tagId 的会解析文件增加定位功能
|
|
4
|
+
不携带定位信息的 也是走 kkview项目预览
|
|
5
|
+
另外增加了在知识项目中预览当前文件的一些功能
|
|
6
|
+
-->
|
|
1
7
|
<template>
|
|
2
8
|
<!-- <van-popup v-model="previewShowPopup" position="bottom" :style="{ height: '90%', background:'#FFFFFF'}" v-if="previewShowPopup">
|
|
3
9
|
<div class="footer">
|
|
@@ -49,6 +55,9 @@
|
|
|
49
55
|
<div class="drawer-footer">
|
|
50
56
|
<span>{{title ? title : "查看详情"}}</span>
|
|
51
57
|
<div class="header-right">
|
|
58
|
+
<div class="onload_btn" v-if="isDownload" @click="downLoad">
|
|
59
|
+
下载
|
|
60
|
+
</div>
|
|
52
61
|
<div class="summaryBtn"
|
|
53
62
|
:class="showSummary ? 'summaryActiveBtn' : ''"
|
|
54
63
|
@click="summaryFun"
|
|
@@ -71,7 +80,7 @@
|
|
|
71
80
|
</section>
|
|
72
81
|
</div>
|
|
73
82
|
</div>
|
|
74
|
-
<div id="drawer_content_pre"
|
|
83
|
+
<div id="drawer_content_pre">
|
|
75
84
|
<intelligent-summary
|
|
76
85
|
v-show="showSummary"
|
|
77
86
|
:knowledgeId="knowledgeId"
|
|
@@ -81,7 +90,7 @@
|
|
|
81
90
|
:style="{marginTop:tagIds && tagIds.length != 0 ? '50px' : ''}"
|
|
82
91
|
></intelligent-summary>
|
|
83
92
|
<template v-if="tagIds && tagIds.length != 0 && drawer">
|
|
84
|
-
<pdfPosition :tagIds="tagIds" :isMessageRecord="isMessageRecord" :fileName="fileName" :
|
|
93
|
+
<pdfPosition :tagIds="tagIds" :isMessageRecord="isMessageRecord" :fileName="fileName" :textWatermarkStr="textWatermarkStr" ref="pdfPosition"></pdfPosition>
|
|
85
94
|
</template>
|
|
86
95
|
<template v-else>
|
|
87
96
|
<div v-if="fileType == 'VIDEO'" style="width: 100%;">
|
|
@@ -104,9 +113,6 @@
|
|
|
104
113
|
</template>
|
|
105
114
|
</template>
|
|
106
115
|
</div>
|
|
107
|
-
<div class="onload_btn" v-if="isDownload" @click="downLoad">
|
|
108
|
-
下载
|
|
109
|
-
</div>
|
|
110
116
|
<div class="loading_img" v-show="loading">
|
|
111
117
|
<img src="https://guoranopen-zjk.oss-cn-zhangjiakou.aliyuncs.com/cdn-common/images/loading.gif" alt="">
|
|
112
118
|
</div>
|
|
@@ -134,15 +140,12 @@ export default {
|
|
|
134
140
|
previewKnowledgeId:"",
|
|
135
141
|
showSummary:true,
|
|
136
142
|
iframeHeight:"100%",
|
|
137
|
-
isDownload:
|
|
143
|
+
isDownload:false,
|
|
138
144
|
textWatermarkStr:""
|
|
139
145
|
}
|
|
140
146
|
},
|
|
141
147
|
mounted() {
|
|
142
148
|
window.addEventListener('message',this.handleIframeMessage,false);
|
|
143
|
-
if (!this.tagIds || this.tagIds.length == 0){
|
|
144
|
-
this.getTextWatermark();
|
|
145
|
-
}
|
|
146
149
|
},
|
|
147
150
|
props:{
|
|
148
151
|
url:{
|
|
@@ -172,6 +175,10 @@ export default {
|
|
|
172
175
|
knowledgeId:{
|
|
173
176
|
type: String,
|
|
174
177
|
default: '',
|
|
178
|
+
},
|
|
179
|
+
previewOssPath:{
|
|
180
|
+
type: String,
|
|
181
|
+
default: '',
|
|
175
182
|
}
|
|
176
183
|
},
|
|
177
184
|
components:{
|
|
@@ -210,6 +217,14 @@ export default {
|
|
|
210
217
|
this.getSummarySuccess();
|
|
211
218
|
}
|
|
212
219
|
}
|
|
220
|
+
},
|
|
221
|
+
knowledgeId:{
|
|
222
|
+
handler(val){
|
|
223
|
+
console.log('knowledgeId',val)
|
|
224
|
+
if (val){
|
|
225
|
+
this.getTextWatermark();
|
|
226
|
+
}
|
|
227
|
+
}
|
|
213
228
|
}
|
|
214
229
|
},
|
|
215
230
|
computed:{
|
|
@@ -331,7 +346,7 @@ export default {
|
|
|
331
346
|
let url = '/knowledge-api/open/knowledge/getPermissionInfo';
|
|
332
347
|
let obj = {
|
|
333
348
|
"knowledgeId":this.knowledgeId,
|
|
334
|
-
"userId":sessionStorage.getItem('
|
|
349
|
+
"userId":sessionStorage.getItem('loginUserId')
|
|
335
350
|
}
|
|
336
351
|
this.$http.post(url,obj).then(res => {
|
|
337
352
|
console.log('getTextWatermark',res.data.data)
|
|
@@ -342,7 +357,7 @@ export default {
|
|
|
342
357
|
})
|
|
343
358
|
},
|
|
344
359
|
downLoad () {
|
|
345
|
-
let url = this.
|
|
360
|
+
let url = this.previewOssPath
|
|
346
361
|
if (decodeURIComponent(url) != url) {
|
|
347
362
|
url = decodeURIComponent(url)
|
|
348
363
|
}
|
|
@@ -415,23 +430,16 @@ export default {
|
|
|
415
430
|
scroll-behavior: smooth;
|
|
416
431
|
}
|
|
417
432
|
.onload_btn {
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
transform: translateX(-50%);
|
|
421
|
-
bottom: 10px;
|
|
422
|
-
width: 200px;
|
|
423
|
-
background-color: #366AFF;
|
|
424
|
-
color: white;
|
|
425
|
-
height: 48px;
|
|
433
|
+
width: 80px;
|
|
434
|
+
height: 26px;
|
|
426
435
|
display: flex;
|
|
427
436
|
align-items: center;
|
|
428
437
|
justify-content: center;
|
|
429
|
-
border-radius: 28px;
|
|
430
438
|
cursor: pointer;
|
|
431
|
-
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
439
|
+
margin-right: 10px;
|
|
440
|
+
border-radius: 15px;
|
|
441
|
+
color: #ffffff;
|
|
442
|
+
background-color: #366aff;
|
|
435
443
|
}
|
|
436
444
|
.preview_iframe {
|
|
437
445
|
width: 100%;
|
|
@@ -36,6 +36,7 @@
|
|
|
36
36
|
</div>
|
|
37
37
|
<previewPdf ref="previewPdf"
|
|
38
38
|
:url="previewHref"
|
|
39
|
+
:previewOssPath="previewOssPath"
|
|
39
40
|
:sourceFileType="sourceFileType"
|
|
40
41
|
officePreviewType="pdf"
|
|
41
42
|
@previewToDialog="previewToDialog"
|
|
@@ -97,7 +98,8 @@ export default {
|
|
|
97
98
|
sourceFileType: '',
|
|
98
99
|
page: 1,
|
|
99
100
|
previewKnowledgeId:"",
|
|
100
|
-
previewKnowledge:{}
|
|
101
|
+
previewKnowledge:{},
|
|
102
|
+
previewOssPath:""
|
|
101
103
|
}
|
|
102
104
|
},
|
|
103
105
|
components: {
|
|
@@ -116,6 +118,7 @@ export default {
|
|
|
116
118
|
this.previewKnowledgeId = item.knowledgeId
|
|
117
119
|
this.$refs.previewPdf.previewShowPopup = false;
|
|
118
120
|
this.$refs.previewPdf.drawer = false;
|
|
121
|
+
this.previewOssPath = item.url;
|
|
119
122
|
let index = item.url.lastIndexOf('?')
|
|
120
123
|
let type = ''
|
|
121
124
|
let httpUrl = '/knowledge-api/knowledge/getTemporaryCertificate'
|