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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "askbot-dragon",
3
- "version": "1.6.55-beta",
3
+ "version": "1.6.57-beta",
4
4
  "scripts": {
5
5
  "serve": "vue-cli-service serve",
6
6
  "build": "vue-cli-service build",
@@ -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
- title:'',
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.knowledgeItem && (this.knowledgeItem.source === 'CORP_LOCAL_FILE' || this.knowledgeItem.source === 'YUQUE' || this.knowledgeItem.source === 'FEISHU') && (this.knowledgeItem.visitorWatermarkValue || this.knowledgeItem.textWatermarkValue)){
265
- this.watermark()
265
+ if (this.textWatermarkStr){
266
+ newInitWaterMark('pdf_container_view',this.textWatermarkStr)
266
267
  }
267
268
  }
268
269
  this.renderPages(pageIndex)
@@ -1,4 +1,9 @@
1
+ <!-- preview-document
2
+ 组件主要负责 富文本中配置的链接,图片 及上传附件下的附件列表中的单纯预览
3
+ 走的是kkview项目预览或者iframe直接打开文件地址,不对预览文件解析不包含其他功能开发
4
+ -->
1
5
  <template>
6
+
2
7
  <div class="previewDoc">
3
8
  <div class="footer">
4
9
  <span>查看详情</span>
@@ -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" :style="{ height:isDownload ? 'calc(100% - 110px)' :'calc(100% - 50px)'}">
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" :knowledgeItem="watermark" ref="pdfPosition"></pdfPosition>
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:true,
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('_userId') || localStorage.getItem('_userId')
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.url
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
- position: absolute;
419
- left: 50%;
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
- z-index: 9999;
432
- i{
433
- margin-right: 8px;
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'