askbot-dragon 1.6.55-beta → 1.6.56-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.56-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,7 +140,7 @@ 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
  },
@@ -172,6 +178,10 @@ export default {
172
178
  knowledgeId:{
173
179
  type: String,
174
180
  default: '',
181
+ },
182
+ previewOssPath:{
183
+ type: String,
184
+ default: '',
175
185
  }
176
186
  },
177
187
  components:{
@@ -342,7 +352,7 @@ export default {
342
352
  })
343
353
  },
344
354
  downLoad () {
345
- let url = this.url
355
+ let url = this.previewOssPath
346
356
  if (decodeURIComponent(url) != url) {
347
357
  url = decodeURIComponent(url)
348
358
  }
@@ -415,23 +425,16 @@ export default {
415
425
  scroll-behavior: smooth;
416
426
  }
417
427
  .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;
428
+ width: 80px;
429
+ height: 26px;
426
430
  display: flex;
427
431
  align-items: center;
428
432
  justify-content: center;
429
- border-radius: 28px;
430
433
  cursor: pointer;
431
- z-index: 9999;
432
- i{
433
- margin-right: 8px;
434
- }
434
+ margin-right: 10px;
435
+ border-radius: 15px;
436
+ color: #ffffff;
437
+ background-color: #366aff;
435
438
  }
436
439
  .preview_iframe {
437
440
  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'