askbot-dragon 1.7.22-beta → 1.7.23-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.
Files changed (33) hide show
  1. package/package.json +2 -1
  2. package/public/index.html +8 -10
  3. package/src/assets/js/AliyunlssUtil.js +50 -26
  4. package/src/assets/js/hammer.js +13 -2
  5. package/src/assets/less/converSationContainer/common.less +7 -0
  6. package/src/components/ActionAlertIframe.vue +24 -1
  7. package/src/components/AiGuide.vue +121 -154
  8. package/src/components/AnswerDocknowledge.vue +108 -100
  9. package/src/components/ConversationContainer.vue +13 -220
  10. package/src/components/MyEditor.vue +2 -1
  11. package/src/components/actionSatisfaction.vue +3 -3
  12. package/src/components/answerRadio.vue +3 -3
  13. package/src/components/askVideo.vue +23 -0
  14. package/src/components/associationIntention.vue +11 -7
  15. package/src/components/formTemplate.vue +54 -50
  16. package/src/components/intelligentSummary.vue +8 -4
  17. package/src/components/message/TextMessage.vue +15 -11
  18. package/src/components/message/swiper/ticketSwiper.vue +1 -1
  19. package/src/components/newPdfPosition.vue +878 -0
  20. package/src/components/pdfPosition.vue +217 -37
  21. package/src/components/popup.vue +2 -2
  22. package/src/components/previewDoc.vue +6 -2
  23. package/src/components/previewPdf.vue +159 -134
  24. package/src/components/senderMessagePlatform.vue +4 -4
  25. package/src/components/utils/ckeditor.js +1 -1
  26. package/src/components/welcomeKnowledgeFile.vue +6 -2
  27. package/src/components/welcomeLlmCard.vue +5 -1
  28. package/src/components/welcomeSuggest.vue +1 -1
  29. package/src/locales/cn.json +72 -0
  30. package/src/locales/en.json +73 -0
  31. package/src/locales/jp.json +73 -0
  32. package/src/main.js +18 -0
  33. package/src/components/QwFeedback.vue +0 -302
@@ -8,20 +8,20 @@
8
8
  <section @click="changeScale('zoom')">
9
9
  <i class="el-icon-plus"></i>
10
10
  </section>
11
- <el-select size="small" v-model="handScale" @change="changeScale" placeholder="请选择">
11
+ <el-select size="small" v-model="handScale" @change="changeScale" :placeholder="$t('common.selectPlaceholder')">
12
12
  <el-option v-for="item in scaleList" :key="item.value" :label="item.label" :value="item.value">
13
13
  </el-option>
14
14
  </el-select>
15
15
  </div>
16
16
  <div class="pdf_container_view" id="pdf_container_view" @scroll="pdfScroll" ref="pdfView"></div>
17
17
  <div class="btn_footer" v-if="tagIds.length > 1 && !isPC">
18
- <div class="prev" @click="prev">上一段</div>
19
- <div class="next" @click="next">下一段</div>
18
+ <div class="prev" @click="prev">{{$t('common.previous')}}</div>
19
+ <div class="next" @click="next">{{$t('common.next')}}</div>
20
20
  </div>
21
21
  <div id="pagination" v-if="tagIds.length > 1 && isPC">
22
22
  <el-pagination :current-page="currentPage + 1" @current-change="currentChange" @prev-click="prev"
23
23
  @next-click="next" layout="slot, prev, pager, next" :page-size="1" :total="tagIds.length">
24
- <span class="total-class">答案由{{ tagIds.length }}段内容生成</span>
24
+ <span class="total-class">{{$t('previewPdf.answer')}}{{ tagIds.length }}{{$t('previewPdf.answerTip')}}</span>
25
25
  </el-pagination>
26
26
  </div>
27
27
  </div>
@@ -45,10 +45,11 @@ if (pdfjsLib) {
45
45
  // 'pdfjs-dist/build/pdf.worker';
46
46
  }
47
47
  const { TextLayerBuilder } = window['pdfjs-dist/web/pdf_viewer']
48
+ const CSS_UNITS = 96.0 / 72.0
48
49
  // import { zoomElement } from '../assets/js/hammer'
49
50
  export default {
50
51
  name: 'pdfView',
51
- props: ['tagIds', 'isMessageRecord','textWatermarkStr'],
52
+ props: ['tagIds', 'isMessageRecord','fileName', "knowledgeItem",'textWatermarkStr'],
52
53
  data () {
53
54
  return {
54
55
  url: '',
@@ -95,6 +96,7 @@ export default {
95
96
  },
96
97
  isTouchMoved: false,
97
98
  transformSalce: null,
99
+ defaultTransform:0.8,
98
100
  isPC: false,
99
101
  handScale: 'auto',
100
102
  scaleList: [
@@ -285,12 +287,12 @@ export default {
285
287
  const { pdfPage, pageNo, dom } = page;
286
288
  // dom 元素已存在,无须重新渲染,直接返回
287
289
  if ((dom && dom.children.length != 0) || page.loading) {
288
- return;
290
+ return;
289
291
  }
290
292
  page.loading = true
291
293
  const viewport = pdfPage.getViewport({
292
- scale: this.scale,
293
- rotation: this.rotation,
294
+ scale: this.scale,
295
+ rotation: this.rotation,
294
296
  });
295
297
  // 创建新的canvas
296
298
  const canvas = document.createElement('canvas');
@@ -339,32 +341,34 @@ export default {
339
341
  rectdom.style.top = 0
340
342
  rectdom.style.left = 0
341
343
  rectdom.classList.add('rectdom')
342
- for (let index = 0; index < lines.length; index++) {
344
+ if (lines){
345
+ for (let index = 0; index < lines.length; index++) {
343
346
  if (!/^\s+$/g.test(lines[index].content)) {
344
- let postionArr = lines[index].location
345
- let div = document.createElement('div')
346
- div.style.position = 'absolute';
347
- div.style.left = postionArr[0] * this.scale + 'px',
348
- // 后端返回的坐标有基线对齐的问题,top 值是后端算好(基线top - 文字高度),在此加上文字高度的 1/9 (大致比例)为实际展示出文字的top值
349
- div.style.top = postionArr[1] * this.scale + 'px'
350
- div.style.height = postionArr[3] * this.scale + 'px';
351
- div.style.width = postionArr[2] * this.scale + 'px'
352
- div.style.backgroundColor = 'rgba(54, 106, 255, 0.3)'
353
- div.classList.add('lineHeight')
354
- rectdom.appendChild(div)
355
- if (index == 0 && j == 0) {
356
- if (this.transformSalce !== null) {
357
- rectdomTop = postionArr[1] * this.scale * this.transformSalce
358
- } else {
359
- rectdomTop = postionArr[1] * this.scale
360
- }
361
- // if(this.isPC) {
362
- // rectdomTop = rectdomTop - 50 < 0 ? 0 : rectdomTop - 50
363
- // }
347
+ let postionArr = lines[index].location
348
+ let div = document.createElement('div')
349
+ div.style.position = 'absolute';
350
+ div.style.left = postionArr[0] * this.scale + 'px',
351
+ // 后端返回的坐标有基线对齐的问题,top 值是后端算好(基线top - 文字高度),在此加上文字高度的 1/9 (大致比例)为实际展示出文字的top值
352
+ div.style.top = postionArr[1] * this.scale + 'px'
353
+ div.style.height = postionArr[3] * this.scale + 'px';
354
+ div.style.width = postionArr[2] * this.scale + 'px'
355
+ div.style.backgroundColor = 'rgba(54, 106, 255, 0.3)'
356
+ div.classList.add('lineHeight')
357
+ rectdom.appendChild(div)
358
+ if (index == 0 && j == 0) {
359
+ if (this.transformSalce !== null) {
360
+ rectdomTop = postionArr[1] * this.scale * this.transformSalce
361
+ } else {
362
+ rectdomTop = postionArr[1] * this.scale
364
363
  }
364
+ // if(this.isPC) {
365
+ // rectdomTop = rectdomTop - 50 < 0 ? 0 : rectdomTop - 50
366
+ // }
367
+ }
365
368
  }
369
+ }
366
370
  }
367
- if (rectdom.children.length > 0) {
371
+ if (rectdom.children && rectdom.children.length > 0) {
368
372
  pageDom.appendChild(rectdom)
369
373
  }
370
374
  }
@@ -381,6 +385,10 @@ export default {
381
385
  page.dom = await pageDom;
382
386
  page.loading = false
383
387
  this.contentView.appendChild(pageDom);
388
+ let pdf_view = document.getElementsByClassName('pdf_view');
389
+ if (pdf_view && pdf_view[0]){
390
+ pdf_view[0].style.backgroundImage = 'none'
391
+ }
384
392
  if (this.transformSalce !== null) {
385
393
  this.contentView.style.transform = `scale(${this.transformSalce}, ${this.transformSalce})`
386
394
  }
@@ -447,7 +455,7 @@ export default {
447
455
  startNum = Math.ceil(scrollTop / (that.pageSize.height + that.PAGE_INTVERVAL))
448
456
  endNum = startNum + Math.ceil(height / (that.pageSize.height + that.PAGE_INTVERVAL))
449
457
  }
450
- for (let pageIndex = startNum; pageIndex < endNum; pageIndex++) {
458
+ for (let pageIndex = startNum; pageIndex <= endNum; pageIndex++) {
451
459
  if (pageIndex > 0 && pageIndex <= that.pages.length) {
452
460
  that.loadPdfData(pageIndex)
453
461
  }
@@ -691,14 +699,20 @@ export default {
691
699
  // this.currentPageAllLine[i].allLines.lines.push(item.extractInfo.lines)
692
700
  this.currentPageAllLine[i].allLines.push({
693
701
  pageCount: index,
694
- lines: item.extractInfo.lines
702
+ lines: item.extractInfo.lines ? item.extractInfo.lines : [{
703
+ content:"测试内容填充,不必理会",
704
+ location:item.extractInfo.location
705
+ }]
695
706
  })
696
707
  } else {
697
708
  this.currentPageAllLine.push({
698
709
  page: item.page,
699
710
  allLines: [{
700
711
  pageCount: index,
701
- lines: item.extractInfo.lines
712
+ lines: item.extractInfo.lines ? item.extractInfo.lines : [{
713
+ content:"测试内容填充,不必理会",
714
+ location:item.extractInfo.location
715
+ }]
702
716
  }],
703
717
  })
704
718
  }
@@ -840,6 +854,164 @@ export default {
840
854
  this.contentView.style.transform = 'scale(' + this.transformSalce + ')';
841
855
  // this.getpdfResloutePage(this.cachePdf[0])
842
856
  },
857
+ //添加水印
858
+ watermark() {
859
+ //默认设置
860
+ var defaultSettings = {
861
+ watermark_txt:"",
862
+ watermark_x: 0,//水印起始位置x轴坐标
863
+ watermark_y: 0,//水印起始位置Y轴坐标
864
+ watermark_rows: 0,//水印行数
865
+ watermark_cols: 0,//水印列数
866
+ watermark_x_space: 40,//水印x轴间隔
867
+ watermark_y_space: 60,//水印y轴间隔
868
+ watermark_color: 'black',//水印字体颜色
869
+ watermark_alpha: .3,//水印透明度
870
+ watermark_fontsize: 12,//水印字体大小
871
+ watermark_font: '微软雅黑',//水印字体
872
+ watermark_width: 100,//水印宽度
873
+ watermark_height: 80,//水印长度
874
+ watermark_angle: 20,//水印倾斜度数***
875
+ visitorWatermark_txt:""
876
+ };
877
+ if(this.knowledgeItem.textWatermarkValue){
878
+ defaultSettings.watermark_txt = this.knowledgeItem.textWatermarkValue;
879
+ }
880
+ if (this.knowledgeItem.visitorWatermarkValue){
881
+ defaultSettings.visitorWatermark_txt = this.knowledgeItem.visitorWatermarkValue
882
+ }
883
+ //采用配置项替换默认值,作用类似jquery.extend
884
+ if (arguments.length === 1 && typeof arguments[0] === "object") {
885
+ console.log("arguments = " + JSON.stringify(arguments[0]));
886
+ // 获取参数配置
887
+ var src = arguments[0];
888
+ for (let key in src) {
889
+ if (src[key] && defaultSettings[key] && src[key] === defaultSettings[key])
890
+ continue;
891
+ else if (src[key])
892
+ defaultSettings[key] = src[key];
893
+ }
894
+ }
895
+ var oTemp = document.createDocumentFragment();
896
+ //获取页面最大宽度
897
+ console.debug('pdf_view',document.getElementById('pdf_view'))
898
+ let scrollWidth = document.getElementById('pdf_view').scrollWidth;
899
+ let clientWidth = document.getElementById('pdf_view').clientWidth;
900
+ var page_width = Math.max(scrollWidth, clientWidth);
901
+
902
+ var cutWidth = page_width * 0.0150;
903
+
904
+ page_width = page_width - cutWidth;
905
+
906
+ //获取页面最大高度
907
+ let height = parseInt(this.totalPageCount * this.pageSize.height)
908
+ var page_height = Math.max(document.getElementById('pdf_container_view').scrollHeight,height);
909
+
910
+ console.debug('page_height',page_height,this.totalPageCount * this.pageSize.height);
911
+
912
+ // var page_height = document.body.scrollHeight+document.body.scrollTop;
913
+
914
+ //如果将水印列数设置为0,或水印列数设置过大,超过页面最大宽度,则重新计算水印列数和水印x轴间隔
915
+
916
+ if (defaultSettings.watermark_cols == 0 || (parseInt(defaultSettings.watermark_x + defaultSettings
917
+ .watermark_width * defaultSettings.watermark_cols + defaultSettings.watermark_x_space *
918
+ (defaultSettings.watermark_cols - 1)) > page_width)) {
919
+ defaultSettings.watermark_cols = parseInt((page_width - defaultSettings.watermark_x + defaultSettings
920
+ .watermark_x_space) / (defaultSettings.watermark_width + defaultSettings
921
+ .watermark_x_space));
922
+ defaultSettings.watermark_x_space = parseInt((page_width - defaultSettings.watermark_x -
923
+ defaultSettings
924
+ .watermark_width * defaultSettings.watermark_cols) / (defaultSettings.watermark_cols - 1));
925
+ }
926
+
927
+ //如果将水印行数设置为0,或水印行数设置过大,超过页面最大长度,则重新计算水印行数和水印y轴间隔
928
+
929
+ if (defaultSettings.watermark_rows == 0 || (parseInt(defaultSettings.watermark_y + defaultSettings
930
+
931
+ .watermark_height * defaultSettings.watermark_rows + defaultSettings.watermark_y_space * (
932
+
933
+ defaultSettings.watermark_rows - 1)) > page_height)) {
934
+
935
+ defaultSettings.watermark_rows = parseInt((defaultSettings.watermark_y_space + page_height -
936
+
937
+ defaultSettings
938
+
939
+ .watermark_y) / (defaultSettings.watermark_height + defaultSettings.watermark_y_space));
940
+
941
+ defaultSettings.watermark_y_space = parseInt(((page_height - defaultSettings.watermark_y) -
942
+
943
+ defaultSettings
944
+
945
+ .watermark_height * defaultSettings.watermark_rows) / (defaultSettings.watermark_rows - 1));
946
+
947
+ }
948
+
949
+ var x;
950
+
951
+ var y;
952
+
953
+ for (var i = 0; i < defaultSettings.watermark_rows; i++) {
954
+ y = defaultSettings.watermark_y + (defaultSettings.watermark_y_space + defaultSettings.watermark_height) * i;
955
+ for (var j = 0; j < defaultSettings.watermark_cols; j++) {
956
+ x = defaultSettings.watermark_x + (defaultSettings.watermark_width + defaultSettings.watermark_x_space) * j;
957
+
958
+ var mask_div = document.createElement('div');
959
+ mask_div.id = 'mask_div' + i + j;
960
+ mask_div.className = 'mask_div';
961
+
962
+ //注意看这里加了图片水印
963
+ mask_div.style.webkitTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
964
+ mask_div.style.MozTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
965
+ mask_div.style.msTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
966
+ mask_div.style.OTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
967
+ mask_div.style.transform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
968
+ mask_div.style.visibility = "";
969
+ mask_div.style.position = "absolute";
970
+ //奇偶行错开,这样水印就不对齐,显的不呆板
971
+ console.debug('x',x)
972
+ if (i % 2 != 0) {
973
+ mask_div.style.left = x + 'px';
974
+ if (j % 2 != 0 && this.knowledgeItem.visitorWatermarkValue){
975
+ mask_div.appendChild(document.createTextNode(defaultSettings.visitorWatermark_txt));
976
+ } else {
977
+ if (!this.knowledgeItem.textWatermarkValue){
978
+ mask_div.appendChild(document.createTextNode(defaultSettings.visitorWatermark_txt));
979
+ } else {
980
+ mask_div.appendChild(document.createTextNode(defaultSettings.watermark_txt));
981
+ }
982
+ }
983
+ } else {
984
+ mask_div.style.left = x + 'px';
985
+ if (j % 2 != 0 && this.knowledgeItem.textWatermarkValue){
986
+ mask_div.appendChild(document.createTextNode(defaultSettings.watermark_txt));
987
+ } else {
988
+ if (!this.knowledgeItem.visitorWatermarkValue){
989
+ mask_div.appendChild(document.createTextNode(defaultSettings.watermark_txt));
990
+ } else {
991
+ mask_div.appendChild(document.createTextNode(defaultSettings.visitorWatermark_txt));
992
+ }
993
+ }
994
+ }
995
+
996
+ mask_div.style.top = y + 'px';
997
+ mask_div.style.overflow = "hidden";
998
+ mask_div.style.zIndex = "9999";
999
+ mask_div.style.pointerEvents = 'none'; //让水印不遮挡页面的点击事件
1000
+ mask_div.style.opacity = defaultSettings.watermark_alpha;
1001
+ mask_div.style.fontSize = defaultSettings.watermark_fontsize;
1002
+ mask_div.style.fontFamily = defaultSettings.watermark_font;
1003
+ mask_div.style.color = defaultSettings.watermark_color;
1004
+ mask_div.style.textAlign = "center";
1005
+ mask_div.style.width = defaultSettings.watermark_width + 'px';
1006
+ mask_div.style.height = defaultSettings.watermark_height + 'px';
1007
+ mask_div.style.display = "block";
1008
+ oTemp.appendChild(mask_div);
1009
+ }
1010
+ }
1011
+ let pageDom = document.getElementById('pdf_container_view')
1012
+ pageDom.appendChild(oTemp);
1013
+
1014
+ },
843
1015
  },
844
1016
  computed: {
845
1017
  perviewUrl () {
@@ -867,16 +1039,18 @@ export default {
867
1039
  if (value && value.length) {
868
1040
  // 在 pdf_view 下创建 所有canvs的容器
869
1041
  this.contentView = document.createElement('div')
1042
+ this.contentView.setAttribute('id','contentView')
870
1043
  this.contentView.style.transformOrigin = '0px 0px 0px'
871
1044
  this.contentView.setAttribute('id','contentView');
872
- this.$http.get('/knowledge-api/knowledge/knowledge-part-location-info/list?ids=' + value.join(',')).then(res => {
1045
+
1046
+ this.$http.get('/knowledge-api/knowledge/knowledge-part-location-info/list?ids=' + value.join(',')).then(res => {
873
1047
  // res.data = {"data":[{"id":"64591b7d8bb8ab1b91c65f24","knowledgeId":"64591a9c8da27649473f3b4b","mainId":"fb348d095c0b4fd7bbd37826563dac7d","page":3,"total":18,"pageHeight":540.0,"pageWidth":960.00946,"publicPageFileUrl":"https://askbot-pdf-all.oss-cn-zhangjiakou.aliyuncs.com/fb348d095c0b4fd7bbd37826563dac7d/2023/05/08/11/55/18/64591b638bb8ab1b91c65eed/3.pdf","extractInfo":{"location":[280.488,161.32,398.71573,61.99298],"content":"黄花城水长城旅游区位于北京市怀柔区九渡河镇境内,距北京市区65公里,是以奇而著称,融山川、碧水、古长城为一体的旅游休闲胜地。而这里的“三绝景”更是引人入","lines":[{"content":"黄花城水长城旅游区位于北京市怀柔区九渡河镇境内,距","location":[280.488,161.32,398.71573,15.9869995]},{"content":"北京市区65公里,是以奇而著称,融山川、碧水、古长","location":[283.691,184.30899,392.3055,15.9869995]},{"content":"城为一体的旅游休闲胜地。而这里的“三绝景”更是引人入","location":[282.699,207.32599,394.3033,15.9869995]}],"tagId":null}}],"code":"0","msg":null,"traceId":null}
874
1048
  // res.data = {"data":[{"id":"64590ce1eb1320043401cc90","knowledgeId":"64590cd5017b461d67e282e1","mainId":"fb348d095c0b4fd7bbd37826563dac7d","page":2,"total":5,"pageHeight":841.8898,"pageWidth":595.30396,"publicPageFileUrl":"https://askbot-pdf-all.oss-cn-zhangjiakou.aliyuncs.com/fb348d095c0b4fd7bbd37826563dac7d/2023/05/08/10/53/20/64590ce0eb1320043401cc7b/2.pdf","extractInfo":{"location":[89.32981,638.1907,415.15512,98.63251],"content":":北京地铁 13\r号线 :藤黄\r色 :西直门站—\r东直门站 :17 :41.\r5 :6\r准\rB :2002年\r09月\r28日 ","lines":[{"content":":北京地铁 13\r号线 ","location":[89.32981,638.1907,99.44599,98.63251]},{"content":":藤黄\r色 ","location":[188.7758,638.1907,46.79959,98.63251]},{"content":":西直门站—\r东直门站 ","location":[235.5754,638.1907,86.09996,98.63251]},{"content":":17 ","location":[321.67535,638.1907,36.200012,98.63251]},{"content":":41.\r5 ","location":[357.87537,638.1907,39.400696,98.63251]},{"content":":6\r准\rB ","location":[397.27606,638.1907,41.099,98.63251]},{"content":":2002年\r09月\r28日 ","location":[438.37506,638.1907,66.10986,98.63251]}],"tagId":null}}],"code":"0","msg":null,"traceId":null}
875
1049
  // res.data = {"data":[{"id":"64591b7d8bb8ab1b91c65f24","knowledgeId":"64591a9c8da27649473f3b4b","mainId":"fb348d095c0b4fd7bbd37826563dac7d","page":3,"total":18,"pageHeight":540.0,"pageWidth":960.00946,"publicPageFileUrl":"https://askbot-pdf-all.oss-cn-zhangjiakou.aliyuncs.com/fb348d095c0b4fd7bbd37826563dac7d/2023/05/08/11/55/18/64591b638bb8ab1b91c65eed/3.pdf","extractInfo":{"location":[280.488,161.32,398.71573,61.99298],"content":"黄花城水长城旅游区位于北京市怀柔区九渡河镇境内,距北京市区65公里,是以奇而著称,融山川、碧水、古长城为一体的旅游休闲胜地。而这里的“三绝景”更是引人入","lines":[{"content":"黄花城水长城旅游区位于北京市怀柔区九渡河镇境内,距","location":[280.488,161.32,398.71573,15.9869995]},{"content":"北京市区65公里,是以奇而著称,融山川、碧水、古长","location":[283.691,184.30899,392.3055,15.9869995]},{"content":"城为一体的旅游休闲胜地。而这里的“三绝景”更是引人入","location":[282.699,207.32599,394.3033,15.9869995]}],"tagId":null}}],"code":"0","msg":null,"traceId":null}
876
1050
  // res.data = {"data":[{"id":"6475eab868110215ab821a80","knowledgeId":"6475e7eac724c54c46cbfa2d","mainId":"5ecf2fcd704541149201ab9c1c31162d","page":0,"total":1,"pageHeight":0.0,"pageWidth":0.0,"publicPageFileUrl":"https://askbot-pdf-all.oss-cn-zhangjiakou.aliyuncs.com/5ecf2fcd704541149201ab9c1c31162d/2023/05/30/08/23/20/6475eab63339db423f26b196/0.html","extractInfo":{"location":null,"content":"产品:系统配置,产品型号:存储,VX30:4G+16G,VX50:16G+256G","lines":null,"tagId":"6475eab868110215ab821a80"}}],"code":"0","msg":null,"traceId":null}
877
1051
  // res.data = {"data":[{"id":"6475e9393339db423f26af01","knowledgeId":"6475e44fc724c54c46cbfa21","mainId":"5ecf2fcd704541149201ab9c1c31162d","page":2,"total":2,"pageHeight":510.25,"pageWidth":1559.05,"publicPageFileUrl":"https://askbot-pdf-all.oss-cn-zhangjiakou.aliyuncs.com/5ecf2fcd704541149201ab9c1c31162d/2023/05/30/08/00/29/6475e55d3339db423f26a9b8/2.pdf","extractInfo":{"location":[327.70532,288.0498,414.9734,12.241608],"content":"三、指示灯状态说明1.白色常亮:开机/开机中2.红色常亮:待机3.白色呼吸:息屏4.红色闪烁:升级1.LAN:通过网线连接到主机的Camera端口2.电源开关:电源切换开关","lines":[{"content":"三、指示灯状态说明","location":[634.3203,288.0498,108.3584,12.0]},{"content":"1.白色常亮:开机/开机中","location":[634.3203,320.08978,108.23407,9.0]},{"content":"2.红色常亮:待机","location":[634.3204,341.3298,78.597046,9.0]},{"content":"3.白色呼吸:息屏","location":[634.32043,362.45282,78.597046,9.0]},{"content":"4.红色闪烁:升级","location":[634.3205,383.6928,78.597046,9.0]},{"content":"1.LAN:通过网线连接到主机的","location":[327.70535,291.2914,144.35995,9.0]},{"content":"Camera端口","location":[327.70532,306.88843,55.322998,9.0]},{"content":"2.电源开关:电源切换开关","location":[482.74832,291.2914,105.36301,9.0]}],"tagId":null}}],"code":"0","msg":null,"traceId":null}
878
1052
  // if(value.length === 1) {
879
- // this.$refs.pdfView.style.height = 'calc(100% - 50px)'
1053
+ // this.$refs.pdfView.style.height = 'calc(100% - 50px)'
880
1054
  // }
881
1055
  // res.data = {
882
1056
  // "data": [
@@ -1051,18 +1225,23 @@ export default {
1051
1225
  "Content-Type": "application/json",
1052
1226
  },
1053
1227
  }).then(res => {
1054
- // 使用原声请求方式 axios会带有不需要的请求头
1228
+ // 使用原声请求方式 axios会带有不需要的请求头
1055
1229
  let xhr = new XMLHttpRequest();
1056
1230
  xhr.open('GET', res.data || res.bodyText, true);
1057
1231
  // 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑
1058
1232
  xhr.onload = ({ currentTarget }) => {
1059
1233
  // 请求完成
1060
1234
  if (currentTarget.status === 200) { // 返回200
1235
+ let pdf_view = document.getElementsByClassName('pdf_view');
1236
+ if (pdf_view && pdf_view[0]){
1237
+ pdf_view[0].style.backgroundImage = 'none'
1238
+ }
1061
1239
  this.contentView.innerHTML = currentTarget.response
1062
1240
  this.contentView.style.padding = '10px'
1063
1241
  // this.contentView.style.position = 'relative'
1064
1242
  this.$refs.pdfView.style.backgroundColor = '#FFFFFF'
1065
1243
  this.$refs.pdfView.appendChild(this.contentView)
1244
+
1066
1245
  let allTr = Array.from(this.$refs.pdfView.getElementsByTagName('tr'))
1067
1246
  this.allTr = []
1068
1247
  for (let index = 0; index < allTr.length; index++) {
@@ -1106,6 +1285,7 @@ export default {
1106
1285
  // height: calc(100% - 110px);
1107
1286
  height: 100%;
1108
1287
  overflow: auto;
1288
+ //overflow-y: scroll;
1109
1289
  background-color: #f5f7fb;
1110
1290
  // margin-bottom: 60px;
1111
1291
  box-sizing: border-box;
@@ -1331,4 +1511,4 @@ export default {
1331
1511
  100% {
1332
1512
  background: rgba(255, 136, 0, 0.3);
1333
1513
  }
1334
- }</style>
1514
+ }</style>
@@ -1,8 +1,8 @@
1
1
  <template>
2
2
  <div class="popUp">
3
3
  <div class="topBtn">
4
- <span class="cancel" @click="closeBtn">取消</span>
5
- <span class="sure" @click="sure">确定</span>
4
+ <span class="cancel" @click="closeBtn">{{$t('common.cancel')}}</span>
5
+ <span class="sure" @click="sure">{{$t('common.confirm')}}</span>
6
6
  </div>
7
7
  <slot name="popup-header" class="popup-header"></slot>
8
8
  <div class="popup-content">
@@ -6,7 +6,7 @@
6
6
 
7
7
  <div class="previewDoc">
8
8
  <div class="footer">
9
- <span>查看详情</span>
9
+ <span>{{$t('common.viewDetail')}}</span>
10
10
  <section @click="close">
11
11
  <i class="iconfont guoran-shanchu"></i>
12
12
  </section>
@@ -42,7 +42,7 @@
42
42
  <iframe class="preview_iframe" :src="previewUrl" style="border:none;"></iframe>
43
43
  </div>
44
44
  <div class="onload_btn" @click="downLoad">
45
- 下载
45
+ {{$t('common.download')}}
46
46
  </div>
47
47
  <div id="text">
48
48
  {{ copy }}
@@ -70,6 +70,10 @@ export default {
70
70
  officePreviewType: {
71
71
  type: String,
72
72
  default: ''
73
+ },
74
+ language:{
75
+ type:String,
76
+ default:"cn"
73
77
  }
74
78
  },
75
79
  computed: {