askbot-dragon 1.7.18-beta → 1.7.19-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 (34) hide show
  1. package/package.json +2 -1
  2. package/public/index.html +8 -10
  3. package/src/assets/js/AliyunlssUtil.js +52 -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 +10 -8
  9. package/src/components/ConversationContainer.vue +952 -1794
  10. package/src/components/MyEditor.vue +6 -5
  11. package/src/components/actionSatisfaction.vue +3 -3
  12. package/src/components/answerRadio.vue +3 -3
  13. package/src/components/askVideo.vue +24 -1
  14. package/src/components/associationIntention.vue +11 -7
  15. package/src/components/formTemplate.vue +1592 -1658
  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 +209 -35
  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/tree.vue +114 -101
  26. package/src/components/utils/AliyunIssUtil.js +1 -0
  27. package/src/components/utils/ckeditor.js +1 -1
  28. package/src/components/welcomeKnowledgeFile.vue +6 -2
  29. package/src/components/welcomeLlmCard.vue +5 -1
  30. package/src/components/welcomeSuggest.vue +1 -1
  31. package/src/locales/cn.json +72 -0
  32. package/src/locales/en.json +73 -0
  33. package/src/locales/jp.json +73 -0
  34. package/src/main.js +18 -0
@@ -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
  }
@@ -840,6 +848,164 @@ export default {
840
848
  this.contentView.style.transform = 'scale(' + this.transformSalce + ')';
841
849
  // this.getpdfResloutePage(this.cachePdf[0])
842
850
  },
851
+ //添加水印
852
+ watermark() {
853
+ //默认设置
854
+ var defaultSettings = {
855
+ watermark_txt:"",
856
+ watermark_x: 0,//水印起始位置x轴坐标
857
+ watermark_y: 0,//水印起始位置Y轴坐标
858
+ watermark_rows: 0,//水印行数
859
+ watermark_cols: 0,//水印列数
860
+ watermark_x_space: 40,//水印x轴间隔
861
+ watermark_y_space: 60,//水印y轴间隔
862
+ watermark_color: 'black',//水印字体颜色
863
+ watermark_alpha: .3,//水印透明度
864
+ watermark_fontsize: 12,//水印字体大小
865
+ watermark_font: '微软雅黑',//水印字体
866
+ watermark_width: 100,//水印宽度
867
+ watermark_height: 80,//水印长度
868
+ watermark_angle: 20,//水印倾斜度数***
869
+ visitorWatermark_txt:""
870
+ };
871
+ if(this.knowledgeItem.textWatermarkValue){
872
+ defaultSettings.watermark_txt = this.knowledgeItem.textWatermarkValue;
873
+ }
874
+ if (this.knowledgeItem.visitorWatermarkValue){
875
+ defaultSettings.visitorWatermark_txt = this.knowledgeItem.visitorWatermarkValue
876
+ }
877
+ //采用配置项替换默认值,作用类似jquery.extend
878
+ if (arguments.length === 1 && typeof arguments[0] === "object") {
879
+ console.log("arguments = " + JSON.stringify(arguments[0]));
880
+ // 获取参数配置
881
+ var src = arguments[0];
882
+ for (let key in src) {
883
+ if (src[key] && defaultSettings[key] && src[key] === defaultSettings[key])
884
+ continue;
885
+ else if (src[key])
886
+ defaultSettings[key] = src[key];
887
+ }
888
+ }
889
+ var oTemp = document.createDocumentFragment();
890
+ //获取页面最大宽度
891
+ console.debug('pdf_view',document.getElementById('pdf_view'))
892
+ let scrollWidth = document.getElementById('pdf_view').scrollWidth;
893
+ let clientWidth = document.getElementById('pdf_view').clientWidth;
894
+ var page_width = Math.max(scrollWidth, clientWidth);
895
+
896
+ var cutWidth = page_width * 0.0150;
897
+
898
+ page_width = page_width - cutWidth;
899
+
900
+ //获取页面最大高度
901
+ let height = parseInt(this.totalPageCount * this.pageSize.height)
902
+ var page_height = Math.max(document.getElementById('pdf_container_view').scrollHeight,height);
903
+
904
+ console.debug('page_height',page_height,this.totalPageCount * this.pageSize.height);
905
+
906
+ // var page_height = document.body.scrollHeight+document.body.scrollTop;
907
+
908
+ //如果将水印列数设置为0,或水印列数设置过大,超过页面最大宽度,则重新计算水印列数和水印x轴间隔
909
+
910
+ if (defaultSettings.watermark_cols == 0 || (parseInt(defaultSettings.watermark_x + defaultSettings
911
+ .watermark_width * defaultSettings.watermark_cols + defaultSettings.watermark_x_space *
912
+ (defaultSettings.watermark_cols - 1)) > page_width)) {
913
+ defaultSettings.watermark_cols = parseInt((page_width - defaultSettings.watermark_x + defaultSettings
914
+ .watermark_x_space) / (defaultSettings.watermark_width + defaultSettings
915
+ .watermark_x_space));
916
+ defaultSettings.watermark_x_space = parseInt((page_width - defaultSettings.watermark_x -
917
+ defaultSettings
918
+ .watermark_width * defaultSettings.watermark_cols) / (defaultSettings.watermark_cols - 1));
919
+ }
920
+
921
+ //如果将水印行数设置为0,或水印行数设置过大,超过页面最大长度,则重新计算水印行数和水印y轴间隔
922
+
923
+ if (defaultSettings.watermark_rows == 0 || (parseInt(defaultSettings.watermark_y + defaultSettings
924
+
925
+ .watermark_height * defaultSettings.watermark_rows + defaultSettings.watermark_y_space * (
926
+
927
+ defaultSettings.watermark_rows - 1)) > page_height)) {
928
+
929
+ defaultSettings.watermark_rows = parseInt((defaultSettings.watermark_y_space + page_height -
930
+
931
+ defaultSettings
932
+
933
+ .watermark_y) / (defaultSettings.watermark_height + defaultSettings.watermark_y_space));
934
+
935
+ defaultSettings.watermark_y_space = parseInt(((page_height - defaultSettings.watermark_y) -
936
+
937
+ defaultSettings
938
+
939
+ .watermark_height * defaultSettings.watermark_rows) / (defaultSettings.watermark_rows - 1));
940
+
941
+ }
942
+
943
+ var x;
944
+
945
+ var y;
946
+
947
+ for (var i = 0; i < defaultSettings.watermark_rows; i++) {
948
+ y = defaultSettings.watermark_y + (defaultSettings.watermark_y_space + defaultSettings.watermark_height) * i;
949
+ for (var j = 0; j < defaultSettings.watermark_cols; j++) {
950
+ x = defaultSettings.watermark_x + (defaultSettings.watermark_width + defaultSettings.watermark_x_space) * j;
951
+
952
+ var mask_div = document.createElement('div');
953
+ mask_div.id = 'mask_div' + i + j;
954
+ mask_div.className = 'mask_div';
955
+
956
+ //注意看这里加了图片水印
957
+ mask_div.style.webkitTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
958
+ mask_div.style.MozTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
959
+ mask_div.style.msTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
960
+ mask_div.style.OTransform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
961
+ mask_div.style.transform = "rotate(-" + defaultSettings.watermark_angle + "deg)";
962
+ mask_div.style.visibility = "";
963
+ mask_div.style.position = "absolute";
964
+ //奇偶行错开,这样水印就不对齐,显的不呆板
965
+ console.debug('x',x)
966
+ if (i % 2 != 0) {
967
+ mask_div.style.left = x + 'px';
968
+ if (j % 2 != 0 && this.knowledgeItem.visitorWatermarkValue){
969
+ mask_div.appendChild(document.createTextNode(defaultSettings.visitorWatermark_txt));
970
+ } else {
971
+ if (!this.knowledgeItem.textWatermarkValue){
972
+ mask_div.appendChild(document.createTextNode(defaultSettings.visitorWatermark_txt));
973
+ } else {
974
+ mask_div.appendChild(document.createTextNode(defaultSettings.watermark_txt));
975
+ }
976
+ }
977
+ } else {
978
+ mask_div.style.left = x + 'px';
979
+ if (j % 2 != 0 && this.knowledgeItem.textWatermarkValue){
980
+ mask_div.appendChild(document.createTextNode(defaultSettings.watermark_txt));
981
+ } else {
982
+ if (!this.knowledgeItem.visitorWatermarkValue){
983
+ mask_div.appendChild(document.createTextNode(defaultSettings.watermark_txt));
984
+ } else {
985
+ mask_div.appendChild(document.createTextNode(defaultSettings.visitorWatermark_txt));
986
+ }
987
+ }
988
+ }
989
+
990
+ mask_div.style.top = y + 'px';
991
+ mask_div.style.overflow = "hidden";
992
+ mask_div.style.zIndex = "9999";
993
+ mask_div.style.pointerEvents = 'none'; //让水印不遮挡页面的点击事件
994
+ mask_div.style.opacity = defaultSettings.watermark_alpha;
995
+ mask_div.style.fontSize = defaultSettings.watermark_fontsize;
996
+ mask_div.style.fontFamily = defaultSettings.watermark_font;
997
+ mask_div.style.color = defaultSettings.watermark_color;
998
+ mask_div.style.textAlign = "center";
999
+ mask_div.style.width = defaultSettings.watermark_width + 'px';
1000
+ mask_div.style.height = defaultSettings.watermark_height + 'px';
1001
+ mask_div.style.display = "block";
1002
+ oTemp.appendChild(mask_div);
1003
+ }
1004
+ }
1005
+ let pageDom = document.getElementById('pdf_container_view')
1006
+ pageDom.appendChild(oTemp);
1007
+
1008
+ },
843
1009
  },
844
1010
  computed: {
845
1011
  perviewUrl () {
@@ -867,16 +1033,18 @@ export default {
867
1033
  if (value && value.length) {
868
1034
  // 在 pdf_view 下创建 所有canvs的容器
869
1035
  this.contentView = document.createElement('div')
1036
+ this.contentView.setAttribute('id','contentView')
870
1037
  this.contentView.style.transformOrigin = '0px 0px 0px'
871
1038
  this.contentView.setAttribute('id','contentView');
872
- this.$http.get('/knowledge-api/knowledge/knowledge-part-location-info/list?ids=' + value.join(',')).then(res => {
1039
+
1040
+ this.$http.get('/knowledge-api/knowledge/knowledge-part-location-info/list?ids=' + value.join(',')).then(res => {
873
1041
  // 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
1042
  // 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
1043
  // 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
1044
  // 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
1045
  // 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
1046
  // if(value.length === 1) {
879
- // this.$refs.pdfView.style.height = 'calc(100% - 50px)'
1047
+ // this.$refs.pdfView.style.height = 'calc(100% - 50px)'
880
1048
  // }
881
1049
  // res.data = {
882
1050
  // "data": [
@@ -1051,18 +1219,23 @@ export default {
1051
1219
  "Content-Type": "application/json",
1052
1220
  },
1053
1221
  }).then(res => {
1054
- // 使用原声请求方式 axios会带有不需要的请求头
1222
+ // 使用原声请求方式 axios会带有不需要的请求头
1055
1223
  let xhr = new XMLHttpRequest();
1056
1224
  xhr.open('GET', res.data || res.bodyText, true);
1057
1225
  // 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑
1058
1226
  xhr.onload = ({ currentTarget }) => {
1059
1227
  // 请求完成
1060
1228
  if (currentTarget.status === 200) { // 返回200
1229
+ let pdf_view = document.getElementsByClassName('pdf_view');
1230
+ if (pdf_view && pdf_view[0]){
1231
+ pdf_view[0].style.backgroundImage = 'none'
1232
+ }
1061
1233
  this.contentView.innerHTML = currentTarget.response
1062
1234
  this.contentView.style.padding = '10px'
1063
1235
  // this.contentView.style.position = 'relative'
1064
1236
  this.$refs.pdfView.style.backgroundColor = '#FFFFFF'
1065
1237
  this.$refs.pdfView.appendChild(this.contentView)
1238
+
1066
1239
  let allTr = Array.from(this.$refs.pdfView.getElementsByTagName('tr'))
1067
1240
  this.allTr = []
1068
1241
  for (let index = 0; index < allTr.length; index++) {
@@ -1106,6 +1279,7 @@ export default {
1106
1279
  // height: calc(100% - 110px);
1107
1280
  height: 100%;
1108
1281
  overflow: auto;
1282
+ //overflow-y: scroll;
1109
1283
  background-color: #f5f7fb;
1110
1284
  // margin-bottom: 60px;
1111
1285
  box-sizing: border-box;
@@ -1331,4 +1505,4 @@ export default {
1331
1505
  100% {
1332
1506
  background: rgba(255, 136, 0, 0.3);
1333
1507
  }
1334
- }</style>
1508
+ }</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: {