askbot-dragon 1.6.35-beta → 1.6.36-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 (82) hide show
  1. package/README.md +27 -27
  2. package/babel.config.js +6 -6
  3. package/dragon.iml +7 -7
  4. package/package.json +55 -55
  5. package/public/index.html +72 -72
  6. package/src/App.vue +31 -31
  7. package/src/api/index.js +1 -1
  8. package/src/api/mock.http +2 -2
  9. package/src/api/requestUrl.js +185 -185
  10. package/src/assets/js/AliyunlssUtil.js +92 -92
  11. package/src/assets/js/Base64Util.js +22 -22
  12. package/src/assets/js/common.js +75 -75
  13. package/src/assets/js/hammer.js +100 -100
  14. package/src/assets/js/script.js +36 -36
  15. package/src/assets/less/common.css +6773 -6773
  16. package/src/assets/less/converSationContainer/common.less +199 -199
  17. package/src/assets/less/converSationContainer/converSatonContainer.less +493 -493
  18. package/src/assets/less/iconfont.css +37 -37
  19. package/src/assets/less/ticketMessage.less +294 -294
  20. package/src/components/ActionAlertIframe.vue +177 -177
  21. package/src/components/AiGuide.vue +466 -466
  22. package/src/components/AnswerDocknowledge.vue +675 -625
  23. package/src/components/AnswerVoice.vue +285 -285
  24. package/src/components/AskIFrame.vue +15 -15
  25. package/src/components/ConversationContainer.vue +5097 -5039
  26. package/src/components/FileType.vue +86 -86
  27. package/src/components/Message.vue +27 -27
  28. package/src/components/MyEditor.vue +346 -346
  29. package/src/components/actionSatisfaction.vue +107 -107
  30. package/src/components/actionSendToBot.vue +62 -62
  31. package/src/components/answerDissatisfaction.vue +62 -62
  32. package/src/components/answerRadio.vue +186 -186
  33. package/src/components/ask-components/DissatisfactionOptions.vue +57 -57
  34. package/src/components/ask-components/Msgloading.vue +37 -37
  35. package/src/components/ask-components/SatisfactionV2.vue +15 -15
  36. package/src/components/askVideo.vue +162 -162
  37. package/src/components/assetDetails.vue +370 -370
  38. package/src/components/assetMessage.vue +228 -228
  39. package/src/components/associationIntention.vue +355 -355
  40. package/src/components/attachmentPreview.vue +90 -90
  41. package/src/components/botActionSatisfactor.vue +68 -68
  42. package/src/components/chatContent.vue +513 -513
  43. package/src/components/feedBack.vue +136 -136
  44. package/src/components/fielListView.vue +351 -351
  45. package/src/components/file/AliyunOssComponents.vue +108 -108
  46. package/src/components/formTemplate.vue +3572 -3572
  47. package/src/components/kkview.vue +1138 -1138
  48. package/src/components/loadingProcess.vue +164 -164
  49. package/src/components/message/ActionAlertIframe.vue +112 -112
  50. package/src/components/message/ShopMessage.vue +164 -164
  51. package/src/components/message/TextMessage.vue +924 -924
  52. package/src/components/message/TicketMessage.vue +201 -201
  53. package/src/components/message/swiper/index.js +4 -4
  54. package/src/components/message/swiper/ticketSwiper.vue +503 -503
  55. package/src/components/message/swiper/ticketSwiperItem.vue +61 -61
  56. package/src/components/msgLoading.vue +231 -231
  57. package/src/components/myPopup.vue +70 -70
  58. package/src/components/newPdfPosition.vue +877 -877
  59. package/src/components/pdfPosition.vue +1508 -1508
  60. package/src/components/popup.vue +227 -227
  61. package/src/components/previewDoc.vue +242 -242
  62. package/src/components/previewPdf.vue +370 -366
  63. package/src/components/receiverMessagePlatform.vue +65 -65
  64. package/src/components/recommend.vue +80 -80
  65. package/src/components/selector/hOption.vue +20 -20
  66. package/src/components/selector/hSelector.vue +199 -199
  67. package/src/components/selector/hWrapper.vue +216 -216
  68. package/src/components/senderMessagePlatform.vue +50 -50
  69. package/src/components/source/BotMessage.vue +24 -24
  70. package/src/components/source/CustomMessage.vue +24 -24
  71. package/src/components/test.vue +260 -260
  72. package/src/components/tree.vue +294 -294
  73. package/src/components/utils/AliyunIssUtil.js +81 -81
  74. package/src/components/utils/ckeditor.js +174 -174
  75. package/src/components/utils/format_date.js +25 -25
  76. package/src/components/utils/index.js +6 -6
  77. package/src/components/utils/math_utils.js +29 -29
  78. package/src/components/voiceComponent.vue +119 -119
  79. package/src/components/welcomeKnowledgeFile.vue +309 -309
  80. package/src/components/welcomeLlmCard.vue +134 -134
  81. package/src/main.js +57 -57
  82. package/vue.config.js +54 -54
@@ -1,625 +1,675 @@
1
- <template>
2
- <div class="answer-docknowledge">
3
- <div :class="['answer-docknowledge-header',msg.content.isKnowledgeSummary ? 'bgc' : '']">
4
- <div v-if="msg.content.isKnowledgeSummary" class="tips">AI为您总结生成了以下摘要</div>
5
- <div v-if="msg.content.type == 0" class="answer-text">
6
- <template v-if="msg.content.renderType == 1">
7
- <p v-html="msg.content.text"></p>
8
- </template>
9
- <template v-else>
10
- {{ msg.content.text }}
11
- </template>
12
- </div>
13
- <div v-if="msg.content.type == 1" class="answer-text">
14
- <template v-if="msg.content.renderType == 1">
15
- <p v-html="msg.content.text"></p>
16
- </template>
17
- <template v-else>
18
- {{ msg.content.text }}
19
- </template>
20
- </div>
21
- <div v-if="msg.content.images && msg.content.images.length != 0" class="answer-kn-image-box">
22
- <img v-for="(imageItem, imageItemIndex) in msg.content.images" style='max-width: 230px;border-radius: 25px;margin-bottom: 15px' :src="imageItem.url" :key="imageItemIndex" alt="" @click="lookAttach(imageItem.url, imageItem, $event)">
23
- </div>
24
- </div>
25
- <div class="ad-list">
26
- <div v-for="(item, itemIndex) in msg.content.list" :style="{paddingBottom: itemIndex === msg.content.list.length - 1?0:'10px'}" :key="itemIndex" class="ad-list-cell">
27
- <div class="alc-title">
28
- <div class="alc-box">
29
- <div class="alc-source-left">
30
- <span class="source-form">出自</span>
31
- <img class="alc-title-icon" height="24px" width="24px" :src="item.src" alt="" srcset="">
32
- <span class="alc-title-from">{{ item.from }}</span>
33
- </div>
34
-
35
- </div>
36
- <div v-html="item.introduction" v-if="!srcContentTypeIMG(item)" class="alc-box-introduction">
37
- </div>
38
- <div v-else class="alc-box-introduction">
39
- <img :src="item.expiredUrl" alt="" @click="lookAttach(item.url, item, $event)">
40
- </div>
41
- <div v-if="item.previewImage" class="alc-box-introduction-previewImage">
42
- <img :src="item.previewImage" alt="" @click="lookAttach(item.previewImage, {url: item.previewImage}, $event)">
43
- </div>
44
- <div class="alc-updateTime">
45
- <div v-show="docSource[item.source]" class="upload-source">
46
- {{docSource[item.source]}}
47
- </div>
48
- <div v-show="item.url" class="alc-content-text">
49
- <span @click="lookAttach(item.url, item, $event)" class="aci-view">查看 ></span>
50
- </div>
51
- <!-- <div class="time">
52
- <span>更新时间:</span>
53
- {{ new Date(item.updateTime).Format('MM-dd hh:mm') }}
54
- </div> -->
55
- </div>
56
- <!-- <span v-if="isPC" class="alc-title-updateTime">最后更新时间: {{ item.updateTime }}</span>-->
57
- </div>
58
- <div class="alc-content" v-if="false">
59
- <div v-if="msg.content.type == 1" class="alc-content-text">{{ item.introduction }} <span
60
- @click="lookAttach(item.url, item, $event)" class="aci-view">查看原文 ></span>
61
- </div>
62
- <span v-if="!isPC" class="alc-title-updateTime">最后更新时间: {{ item.updateTime }}</span>
63
- <div v-if="false" class="alc-content-info">
64
- <div class="alcc-box">
65
- <span class="aci-owner">所有者: {{ item.owner }}</span>
66
- <span class="aci-enterprise">所属企业: {{ item.enterprise }}</span>
67
- <span class="aci-source">文件来源: {{ item.source }}</span>
68
- </div>
69
- </div>
70
- </div>
71
- </div>
72
- <div class="ad-loadmore" v-if="loadMoreFlag" @click="lazyLoadKnowledegList">
73
- 查看更多
74
- </div>
75
- </div>
76
- <previewPdf ref="previewPdf"
77
- :url="previewHref"
78
- :watermark="watermark" :sourceFileType="sourceFileType"
79
- officePreviewType="pdf"
80
- @previewToDialog="previewToDialog"
81
- :isHasChat="isHasChat"
82
- ></previewPdf>
83
- </div>
84
- </template>
85
-
86
- <script>
87
- /* eslint-disable */
88
- import previewPdf from "./previewPdf";
89
- import { isMobile } from "../assets/js/common";
90
- export default {
91
- name: "answerDocknowledge",
92
- components: { previewPdf },
93
- data() {
94
- return {
95
- isPC: true,
96
- previewHref: "",
97
- sourceFileType:'',
98
- docSource: {
99
- LOCAL_FILE: "来源于本地文件",
100
- CREATED_BY_ONESELF: "来源于自建知识",
101
- WECHAT: "来源于微信",
102
- AUTO_SYN_FROM_LOCAL_FILE: "自动同步于本地",
103
- YUQUE: "来源于语雀",
104
- CORP_LOCAL_FILE:'来源于企业知识库',
105
- FEISHU:'来源于飞书-云文档'
106
- },
107
- imageObj: {
108
- PDF: 'pdf1',
109
- pdf: 'pdf1',
110
- TXT: 'txt1',
111
- txt: 'txt1',
112
- selfadd: 'selfadd1',
113
- md: "md2",
114
- html: 'selfadd1',
115
- mode: "mode",
116
- general: 'general',
117
- word: "word1",
118
- Word: "word1",
119
- docx: "word1",
120
- doc: "word1",
121
- WORD: "word1",
122
- Excel: 'excel1',
123
- EXCEL: 'excel1',
124
- excel: 'excel1',
125
- PPT: 'ppt1',
126
- ppt: 'ppt1',
127
- pptx: 'ppt1',
128
- img: "image1",
129
- image: "image1",
130
- video: "video",
131
- audio: 'audio',
132
- link: "link",
133
- wechat: "wechat",
134
- mp4: "video",
135
- MP4: "video",
136
- xlsx: "excel1",
137
- SLSX: "excel1",
138
- xls: "excel1",
139
- XLS: "excel1",
140
- jpg: "image1",
141
- JPG: "image1",
142
- jpeg: "image1",
143
- JPEG: "image1",
144
- png: "image1",
145
- PNG: "image1",
146
- webp: "image1",
147
- WEBP: "image1",
148
- gif: "image1",
149
- GIF: "image1",
150
- svg: "image1",
151
- SVG: "image1",
152
- bmp: "image1",
153
- BMP: "image1",
154
- avi: "video",
155
- AVI: "video",
156
- mov: "video",
157
- MOV: "video",
158
- rmvb: "video",
159
- RMVB: "video",
160
- wav: "audio",
161
- WAV: "audio",
162
- mp3: "audio",
163
- MP3: "audio",
164
- yqhtml: "yqhtml",
165
- feishuhtml:"feishuhtml"
166
- },
167
- watermark: {
168
- textWatermarkValue:'',
169
- visitorWatermarkValue:'',
170
- source:""
171
- },
172
- allKnowledgeList:[],
173
- loadMoreFlag:false,
174
- previewKnowledgeId:"",
175
- previewKnowledge:{}
176
- }
177
- },
178
- props: ['msg','isAskLightning', 'isMessageRecord',"isApp","isHasChat","activeKnowledgeId"],
179
- beforeMounted() {
180
- },
181
- watch:{
182
- msg:{
183
- handler(n){
184
- console.log(n,'answerDocknowledge');
185
- n.content.list.forEach(element => {
186
- console.log(this.imageObj[element.format],1111);
187
- element.src = 'https://static.guoranbot.com/cdn-office-website/askbot_doc/' + this.imageObj[element.format] + '.png';
188
- if ((element.format === "txt" || element.format === "html") && element.source === "WECHAT") {
189
- element.src = 'https://static.guoranbot.com/cdn-office-website/askbot_doc/wechat.png';
190
- }
191
- });
192
- },
193
- deep:true,
194
- immediate:true
195
- }
196
- },
197
- created() {
198
- var system = {};
199
- system.pingtai = /(Win32|Win16|WinCE|Mac68K|MacIntel|MacIntel|MacPPC|Linux mips64)/i.test(navigator.platform);
200
- if (system.pingtai) {
201
- //电脑
202
- this.isPC = true;
203
- } else {
204
- //手机
205
- this.isPC = false;
206
- }
207
- // this.msg.content.list.forEach(element => {
208
- // console.log(this.imageObj[element.format],1111);
209
- // element.src = 'https://static.guoranbot.com/cdn-office-website/askbot_doc/' + this.imageObj[element.format] + '.png';
210
- // if ((element.format === "txt" || element.format === "html") && element.source === "WECHAT") {
211
- // element.src = 'https://static.guoranbot.com/cdn-office-website/askbot_doc/wechat.png';
212
- // }
213
- // });
214
- },
215
- mounted() {
216
- console.log(this.msg.content,'this.msg.content');
217
- // if(this.msg.content.type == 1) {
218
-
219
- // }
220
- if(this.msg.content.list && this.msg.content.list.length > 0) {
221
- this.loadMoreFlag = true
222
- this.allKnowledgeList = JSON.parse(JSON.stringify(this.msg.content.list))
223
- // console.log(this.allKnowledgeList.length, 'this.allKnowledgeList');
224
- this.msg.content.list = []
225
- this.lazyLoadKnowledegList()
226
- }
227
- },
228
- methods: {
229
- //预览图片
230
- lookAttach(url, item, event) {
231
- // console.log(item.knowledgeId);
232
- // this.$http.get("/knowledge-api/internal/knowledgeBaseStructure/" + "642ffbccde420e2772f7787b")
233
- // debugger
234
- event.preventDefault();
235
- if (this.isAskLightning == 1 && !this.isApp){
236
- window.parent.postMessage({
237
- data: "bot_preview",
238
- item: JSON.stringify(item),
239
- url: url
240
- },"*");
241
- } else {
242
- // if (isMobile()) {
243
- // this.$refs.previewPdf.drawer = true;
244
- // this.$refs.previewPdf.previewShowPopup = false;
245
- // } else {
246
- // this.$refs.previewPdf.drawer = false;
247
- // }
248
- this.previewKnowledge = item;
249
- this.previewKnowledgeId = item.knowledgeId
250
- this.$refs.previewPdf.previewShowPopup = false;
251
- this.$refs.previewPdf.drawer = false;
252
- let index = url.lastIndexOf('?')
253
- let type = ''
254
- let httpUrl = '/knowledge-api/knowledge/getTemporaryCertificate'
255
- if (index !== -1) {
256
- url = url.substring(0, index)
257
- type = this.fileType(url)
258
- } else {
259
- type = this.fileType(url)
260
- }
261
- if (type === '' || type === 'OTHER') {
262
- httpUrl = httpUrl += '?needEncrypt=true'
263
- } else {
264
- httpUrl = httpUrl += '?needEncrypt=false'
265
- }
266
- this.$http.post(httpUrl, {
267
- "fileInOssPath":url
268
- }).then(async res =>{
269
- if(res.data.code == '0') {
270
- this.watermark = await this.getknowledgeBaseStructure(item.knowledgeId);
271
- this.watermark.source = item.source;
272
- this.previewHref = res.data.data;
273
- this.sourceFileType = url.substring(url.lastIndexOf('.'))
274
- let isOhmPc = sessionStorage.getItem('isOhmPc')
275
- if (isMobile() || isOhmPc == 'true'){
276
- this.$refs.previewPdf.drawer = true;
277
- this.$refs.previewPdf.previewShowPopup = true;
278
- } else {
279
- this.$refs.previewPdf.previewShowPopup = false;
280
- this.$refs.previewPdf.drawer = true;
281
- }
282
- //聊一聊按钮的选中状态
283
- if (this.activeKnowledgeId == item.knowledgeId){
284
- this.$refs.previewPdf.previewKnowledgeId = this.activeKnowledgeId
285
- } else {
286
- this.$refs.previewPdf.previewKnowledgeId = ""
287
- }
288
- this.$refs.previewPdf.fileType = type
289
- this.$refs.previewPdf.tagIds = item.tagIds
290
- this.$refs.previewPdf.isMessageRecord = this.isMessageRecord ? true : false ;
291
- let index = url.indexOf("?");
292
- let newFileInOssPath = url;
293
- if (index !== -1){
294
- newFileInOssPath = url.substring(0, url.indexOf("?"))
295
- }
296
- let fileName = newFileInOssPath.substring(newFileInOssPath.lastIndexOf('.'))
297
- if (fileName === '.doc' || fileName === '.docx' || fileName === '.txt'|| fileName === '.html'){
298
- this.$refs.previewPdf.fileName = fileName;
299
- } else {
300
- this.$refs.previewPdf.fileName = '';
301
- }
302
- if(item.tagIds && item.tagIds.length != 0) {
303
- this.$refs.previewPdf.loading = false
304
- return
305
- }
306
- this.$nextTick(() =>{
307
- if(item.source == 'CREATED_BY_ONESELF' || type === 'HTML') {
308
- this.$refs.previewPdf.getBolb(item)
309
- }
310
- this.$refs.previewPdf.loadIframe(item)
311
- })
312
- }
313
- })
314
- }
315
- },
316
- fileType (url) {
317
- const fileType = url.substring(url.lastIndexOf('.'));
318
- if (fileType === '.mp4' || fileType === '.MP4' || fileType === '.MOV' || fileType === '.MOVC' || fileType === '.mov' || fileType === '.movc' || fileType === '.mav' || fileType === '.MAV' || fileType == '.mp3' || fileType == '.MP3' || fileType === '.wav') {
319
- return 'VIDEO'
320
- } else if (fileType === '.html') {
321
- return 'HTML'
322
- } else {
323
- return 'OTHER'
324
- }
325
- },
326
- srcContentTypeIMG(item) {
327
- let url = item.url || '';
328
- const type = url.substring(url.lastIndexOf('.'));
329
- if(type === '.jpg' || type === '.jpeg' || type === '.png' || type === '.gif') {
330
- this.getSrc(item)
331
- return true
332
- } else {
333
- return false
334
- }
335
- },
336
- getSrc (item) {
337
- // let imgurl = ''
338
- this.$http.post(
339
- '/knowledge-api/temporary-certificate/or-origin?expired=30',
340
- item.url,
341
- {
342
- headers: {
343
- "Content-Type": "application/json",
344
- },
345
- }).then( res => {
346
- console.log(res,'=====');
347
- // imgurl = await res.bodyText
348
- this.$set(item,'expiredUrl',res.data ? res.data : res.bodyText)
349
- // return res.data
350
- })
351
- // return imgurl
352
- },
353
- async getknowledgeBaseStructure(knowledgeId) {
354
- let watermark = {
355
- textWatermarkValue:'',
356
- visitorWatermarkValue:''
357
- }
358
- await this.$http.get("/knowledge-api/internal/knowledgeBaseStructure/" + knowledgeId).then( async res =>{
359
- if(res.data) {
360
- watermark.textWatermarkValue = await res.data.textWatermarkValue
361
- if(res.data.visitorWatermark) {
362
- let userInfo = sessionStorage.getItem('userInfo') || localStorage.getItem('userInfo')
363
- if(userInfo && userInfo !== 'null') {
364
- watermark.visitorWatermarkValue = JSON.parse(userInfo).realName
365
- }
366
- }
367
- }
368
- })
369
- return watermark
370
- },
371
- lazyLoadKnowledegList() {
372
- if(this.allKnowledgeList.length !== 0) {
373
- let arr = this.allKnowledgeList.splice(0, 5)
374
- if(arr.length < 5) {
375
- this.loadMoreFlag = false
376
- this.msg.content.list = [...this.msg.content.list, ...arr]
377
- return
378
- }
379
- if(this.allKnowledgeList.length == 0) {
380
- this.loadMoreFlag = false
381
- }
382
- this.msg.content.list = [...this.msg.content.list, ...arr]
383
- return
384
- }
385
- },
386
- previewToDialog(flag){
387
- if (!flag){
388
- this.$refs.previewPdf.previewKnowledgeId = ""
389
- } else {
390
- this.$refs.previewPdf.previewKnowledgeId = this.previewKnowledgeId
391
- }
392
- this.$emit('previewToDialog',flag,this.previewKnowledgeId,this.previewKnowledge)
393
- },
394
- clearKnowledgeId(){
395
- this.previewKnowledgeId = "";
396
- }
397
- }
398
- }
399
- </script>
400
-
401
- <style scoped lang="less">
402
- .answer-docknowledge {
403
- min-width: 100px;
404
- .answer-docknowledge-header{
405
-
406
-
407
- .tips{
408
- width: 154px;
409
- height: 22px;
410
- background: #366AFF;
411
- border-radius: 5px;
412
- text-align: center;
413
- line-height: 22px;
414
- color: #fff;
415
- font-size: 12px;
416
- margin-bottom: 7px;
417
- }
418
- .answer-text {
419
- // font-size: 13px;
420
- text-align: left;
421
- line-height: 25px;
422
- padding: 0px 0px 12px 0px;
423
-
424
- .aci-view {
425
- // font-size: 13px;
426
- display: inline-block;
427
- // margin-left: 5px;
428
- color: #366aff;
429
- cursor: pointer;
430
- }
431
- }
432
- &.bgc{
433
- padding: 10px;
434
- background: #EEF1FF;
435
- border-radius: 10px;
436
- margin-bottom: 16px;
437
- .answer-text {
438
- padding: 0;
439
- }
440
- }
441
- }
442
-
443
- .ad-list {
444
- .ad-list-cell {
445
- border-top: solid 1px #EEEEEE;
446
- padding: 10px 0 10px;
447
-
448
- .alc-title {
449
- display: flex;
450
- flex-wrap: wrap;
451
- align-items: center;
452
- justify-content: space-between;
453
- line-height: 16px;
454
-
455
- .alc-box {
456
- display: flex;
457
- align-items: center;
458
- justify-content: space-between;
459
- // font-size: 12px;
460
- width: 100%;
461
- .alc-source-left{
462
- display: flex;
463
- align-items: center;
464
- .source-form{
465
- width: 34px;
466
- flex: none;
467
- color: #A9B3C6;
468
- }
469
- }
470
- .alc-content-text{
471
- width: 55px;
472
- flex: none;
473
- .aci-view{
474
- color: #366aff;
475
- cursor: pointer;
476
- }
477
- }
478
- .alc-title-from {
479
- line-height: 22px;
480
- word-break: break-all !important;
481
- text-align: left;
482
- flex: auto;
483
- display: flex;
484
- justify-content: flex-start;
485
- }
486
- }
487
- .alc-box-introduction{
488
- overflow: hidden;
489
- text-overflow: ellipsis;
490
- display: -webkit-box;
491
- -webkit-line-clamp:3;
492
- -webkit-box-orient:vertical;
493
- margin-top: 10px;
494
- color: #616161;
495
- // font-size: 12px;
496
- line-height: 24px;
497
- text-align: left;
498
- img {
499
- width: 50px;
500
- height: 50px;
501
- margin: 10px;
502
- cursor: pointer;
503
- }
504
- }
505
- .alc-box-introduction-previewImage {
506
- width: 100%;
507
- display: block;
508
- overflow: hidden;
509
- text-overflow: ellipsis;
510
- display: -webkit-box;
511
- -webkit-line-clamp:3;
512
- -webkit-box-orient:vertical;
513
- margin-top: 10px;
514
- color: #616161;
515
- // font-size: 12px;
516
- line-height: 24px;
517
- text-align: left;
518
- img {
519
- max-width: 300px;
520
- width: 100%;
521
- max-height: 150px;
522
- margin: 10px;
523
- cursor: pointer;
524
- }
525
- }
526
- .alc-updateTime{
527
- display: flex;
528
- align-items: center;
529
- justify-content: space-between;
530
- font-size: 13px;
531
- width: 100%;
532
- margin-top: 10px;
533
- .upload-source{
534
- flex: none;
535
- height: 18px;
536
- line-height: 18px;
537
- background: #E9F9F8;
538
- border: 1px solid #AFF2CD;
539
- border-radius: 2px;
540
- display: flex;
541
- align-items: center;
542
- justify-content: center;
543
- padding: 0 8px;
544
- color: #00C2BB;
545
- }
546
- .time{
547
- color: #999999;
548
- margin-left: 10px;
549
- }
550
- .alc-content-text {
551
- color: #366aff;
552
- cursor: pointer;
553
- }
554
- }
555
- .alc-title-icon {
556
- margin: 0 2px;
557
- width: 18px;
558
- height: 18px;
559
- flex: none;
560
- }
561
-
562
- .alc-title-updateTime {
563
- text-align: right;
564
- color: #999999;
565
- // font-size: 13px;
566
- }
567
- }
568
-
569
- .alc-content {
570
- .alc-title-updateTime {
571
- margin-top: 6px;
572
- display: block;
573
- text-align: right;
574
- color: #999999;
575
- // font-size: 13px;
576
- }
577
-
578
- .alc-content-text {
579
- margin-bottom: 6px;
580
- width: 55px;
581
- flex: none;
582
- .aci-view {
583
- display: inline-block;
584
- margin-left: 30px;
585
- color: #366aff;
586
- cursor: pointer;
587
- }
588
- }
589
-
590
- .alc-content-info {
591
- display: flex;
592
- flex-wrap: wrap;
593
- justify-content: space-between;
594
-
595
- .alcc-box {
596
- display: flex;
597
- flex-wrap: wrap;
598
- color: #999999;
599
-
600
- .aci-owner {
601
- margin-right: 20px;
602
- }
603
-
604
- .aci-enterprise {
605
- margin-right: 20px;
606
- }
607
- }
608
- }
609
- }
610
- }
611
- .ad-loadmore {
612
- width: 100%;
613
- height: 40px;
614
- display: flex;
615
- align-items: center;
616
- justify-content: center;
617
- // background: #FFFFFF;
618
- color: #366AFF;
619
- font-size: 14px;
620
- margin-top: 8px;
621
- cursor: pointer;
622
- }
623
- }
624
- }
625
- </style>
1
+ <template>
2
+ <div class="answer-docknowledge">
3
+ <div :class="['answer-docknowledge-header',msg.content.isKnowledgeSummary ? 'bgc' : '']">
4
+ <div v-if="msg.content.isKnowledgeSummary" class="tips">AI为您总结生成了以下摘要</div>
5
+ <div v-if="msg.content.type == 0" class="answer-text">
6
+ <template v-if="msg.content.renderType == 1">
7
+ <p v-html="msg.content.text"></p>
8
+ </template>
9
+ <template v-else>{{ msg.content.text }}</template>
10
+ </div>
11
+ <div v-if="msg.content.type == 1" class="answer-text">
12
+ <template v-if="msg.content.renderType == 1">
13
+ <p v-html="msg.content.text"></p>
14
+ </template>
15
+ <template v-else>{{ msg.content.text }}</template>
16
+ </div>
17
+ <div v-if="msg.content.images && msg.content.images.length != 0" class="answer-kn-image-box">
18
+ <img
19
+ v-for="(imageItem, imageItemIndex) in msg.content.images"
20
+ style="max-width: 230px;border-radius: 25px;margin-bottom: 15px"
21
+ :src="imageItem.url"
22
+ :key="imageItemIndex"
23
+ alt
24
+ @click="lookAttach(imageItem.url, imageItem, $event)"
25
+ />
26
+ </div>
27
+ </div>
28
+ <div class="ad-list">
29
+ <!-- :style="{paddingBottom: itemIndex === msg.content.list.length - 1?0:'10px'}" -->
30
+
31
+ <div
32
+ v-for="(item, itemIndex) in msg.content.list"
33
+ :key="itemIndex"
34
+ class="ad-list-cell"
35
+ >
36
+ <!-- <div class="alc-title">
37
+ <!~~ <div class="alc-box">
38
+ <div class="alc-source-left">
39
+ <span class="source-form">出自</span>
40
+ <img class="alc-title-icon" height="24px" width="24px" :src="item.src" alt="" srcset="">
41
+ <span class="alc-title-from">{{ item.from }}</span>
42
+ </div>
43
+
44
+ </div>~~>
45
+ <!~~ <div v-html="item.introduction" v-if="!srcContentTypeIMG(item)" class="alc-box-introduction">
46
+ </div>~~>
47
+ <!~~ <div v-else class="alc-box-introduction">
48
+ <img :src="item.expiredUrl" alt="" @click="lookAttach(item.url, item, $event)">
49
+ </div>~~>
50
+ <!~~ <div v-if="item.previewImage" class="alc-box-introduction-previewImage">
51
+ <img :src="item.previewImage" alt="" @click="lookAttach(item.previewImage, {url: item.previewImage}, $event)">
52
+ </div>~~>
53
+ <!~~ <div class="alc-updateTime">
54
+ <div v-show="docSource[item.source]" class="upload-source">
55
+ {{docSource[item.source]}}
56
+ </div>
57
+ <div v-show="item.url" class="alc-content-text">
58
+ <span @click="lookAttach(item.url, item, $event)" class="aci-view">查看 ></span>
59
+ </div>
60
+ </div>~~>
61
+ </div>-->
62
+ <div class="alc-source-name" @click="lookAttach(item.url, item, $event)">
63
+ <img class="alc-title-icon" height="18px" width="18px" :src="item.src" alt srcset />
64
+ <span class="alc-title-from">{{ item.from }}</span>
65
+ <i class="iconfont guoran-right"></i>
66
+ </div>
67
+ <div class="alc-content" v-if="false">
68
+ <div v-if="msg.content.type == 1" class="alc-content-text">
69
+ {{ item.introduction }}
70
+ <span
71
+ @click="lookAttach(item.url, item, $event)"
72
+ class="aci-view"
73
+ >查看原文 ></span>
74
+ </div>
75
+ <span v-if="!isPC" class="alc-title-updateTime">最后更新时间: {{ item.updateTime }}</span>
76
+ <div v-if="false" class="alc-content-info">
77
+ <div class="alcc-box">
78
+ <span class="aci-owner">所有者: {{ item.owner }}</span>
79
+ <span class="aci-enterprise">所属企业: {{ item.enterprise }}</span>
80
+ <span class="aci-source">文件来源: {{ item.source }}</span>
81
+ </div>
82
+ </div>
83
+ </div>
84
+ </div>
85
+ <div class="ad-loadmore" v-if="loadMoreFlag" @click="lazyLoadKnowledegList">查看更多</div>
86
+ </div>
87
+ <previewPdf ref="previewPdf"
88
+ :url="previewHref"
89
+ :watermark="watermark" :title="title" :sourceFileType="sourceFileType"
90
+ officePreviewType="pdf"
91
+ @previewToDialog="previewToDialog"
92
+ :isHasChat="isHasChat"
93
+ ></previewPdf>
94
+ </div>
95
+ </template>
96
+
97
+ <script>
98
+ /* eslint-disable */
99
+ import previewPdf from "./previewPdf";
100
+ import { isMobile } from "../assets/js/common";
101
+ export default {
102
+ name: "answerDocknowledge",
103
+ components: { previewPdf },
104
+ data () {
105
+ return {
106
+ isPC: true,
107
+ previewHref: "",
108
+ sourceFileType: '',
109
+ docSource: {
110
+ LOCAL_FILE: "来源于本地文件",
111
+ CREATED_BY_ONESELF: "来源于自建知识",
112
+ WECHAT: "来源于微信",
113
+ AUTO_SYN_FROM_LOCAL_FILE: "自动同步于本地",
114
+ YUQUE: "来源于语雀",
115
+ CORP_LOCAL_FILE: '来源于企业知识库',
116
+ FEISHU: '来源于飞书-云文档'
117
+ },
118
+ imageObj: {
119
+ PDF: 'pdf1',
120
+ pdf: 'pdf1',
121
+ TXT: 'txt1',
122
+ txt: 'txt1',
123
+ selfadd: 'selfadd1',
124
+ md: "md2",
125
+ html: 'selfadd1',
126
+ mode: "mode",
127
+ general: 'general',
128
+ word: "word1",
129
+ Word: "word1",
130
+ docx: "word1",
131
+ doc: "word1",
132
+ WORD: "word1",
133
+ Excel: 'excel1',
134
+ EXCEL: 'excel1',
135
+ excel: 'excel1',
136
+ PPT: 'ppt1',
137
+ ppt: 'ppt1',
138
+ pptx: 'ppt1',
139
+ img: "image1",
140
+ image: "image1",
141
+ video: "video",
142
+ audio: 'audio',
143
+ link: "link",
144
+ wechat: "wechat",
145
+ mp4: "video",
146
+ MP4: "video",
147
+ xlsx: "excel1",
148
+ SLSX: "excel1",
149
+ xls: "excel1",
150
+ XLS: "excel1",
151
+ jpg: "image1",
152
+ JPG: "image1",
153
+ jpeg: "image1",
154
+ JPEG: "image1",
155
+ png: "image1",
156
+ PNG: "image1",
157
+ webp: "image1",
158
+ WEBP: "image1",
159
+ gif: "image1",
160
+ GIF: "image1",
161
+ svg: "image1",
162
+ SVG: "image1",
163
+ bmp: "image1",
164
+ BMP: "image1",
165
+ avi: "video",
166
+ AVI: "video",
167
+ mov: "video",
168
+ MOV: "video",
169
+ rmvb: "video",
170
+ RMVB: "video",
171
+ wav: "audio",
172
+ WAV: "audio",
173
+ mp3: "audio",
174
+ MP3: "audio",
175
+ yqhtml: "yqhtml",
176
+ feishuhtml: "feishuhtml"
177
+ },
178
+ watermark: {
179
+ textWatermarkValue:'',
180
+ visitorWatermarkValue:'',
181
+ source:""
182
+ },
183
+ allKnowledgeList:[],
184
+ loadMoreFlag:false,
185
+ previewKnowledgeId:"",
186
+ previewKnowledge:{},
187
+ title:''
188
+ }
189
+ },
190
+ props: ['msg', 'isAskLightning', 'isMessageRecord', "isApp","isHasChat","activeKnowledgeId"],
191
+ beforeMounted () {
192
+ },
193
+ watch: {
194
+ msg: {
195
+ handler (n) {
196
+ console.log(n, 'answerDocknowledge');
197
+ n.content.list.forEach(element => {
198
+ console.log(this.imageObj[element.format], 1111);
199
+ element.src = 'https://static.guoranbot.com/cdn-office-website/askbot_doc/' + this.imageObj[element.format] + '.png';
200
+ if ((element.format === "txt" || element.format === "html") && element.source === "WECHAT") {
201
+ element.src = 'https://static.guoranbot.com/cdn-office-website/askbot_doc/wechat.png';
202
+ }
203
+ });
204
+ },
205
+ deep: true,
206
+ immediate: true
207
+ }
208
+ },
209
+ created () {
210
+ var system = {};
211
+ system.pingtai = /(Win32|Win16|WinCE|Mac68K|MacIntel|MacIntel|MacPPC|Linux mips64)/i.test(navigator.platform);
212
+ if (system.pingtai) {
213
+ //电脑
214
+ this.isPC = true;
215
+ } else {
216
+ //手机
217
+ this.isPC = false;
218
+ }
219
+ // this.msg.content.list.forEach(element => {
220
+ // console.log(this.imageObj[element.format],1111);
221
+ // element.src = 'https://static.guoranbot.com/cdn-office-website/askbot_doc/' + this.imageObj[element.format] + '.png';
222
+ // if ((element.format === "txt" || element.format === "html") && element.source === "WECHAT") {
223
+ // element.src = 'https://static.guoranbot.com/cdn-office-website/askbot_doc/wechat.png';
224
+ // }
225
+ // });
226
+ },
227
+ mounted () {
228
+ console.log(this.msg.content, 'this.msg.content');
229
+ // if(this.msg.content.type == 1) {
230
+
231
+ // }
232
+ if (this.msg.content.list && this.msg.content.list.length > 0) {
233
+ this.loadMoreFlag = true
234
+ this.allKnowledgeList = JSON.parse(JSON.stringify(this.msg.content.list))
235
+ // console.log(this.allKnowledgeList.length, 'this.allKnowledgeList');
236
+ this.msg.content.list = []
237
+ this.lazyLoadKnowledegList()
238
+ }
239
+ },
240
+ methods: {
241
+ //预览图片
242
+ lookAttach(url, item, event) {
243
+ // console.log(item.knowledgeId);
244
+ // this.$http.get("/knowledge-api/internal/knowledgeBaseStructure/" + "642ffbccde420e2772f7787b")
245
+ // debugger
246
+ event.preventDefault();
247
+ if (this.isAskLightning == 1 && !this.isApp){
248
+ window.parent.postMessage({
249
+ data: "bot_preview",
250
+ item: JSON.stringify(item),
251
+ url: url
252
+ },"*");
253
+ } else {
254
+ // if (isMobile()) {
255
+ // this.$refs.previewPdf.drawer = true;
256
+ // this.$refs.previewPdf.previewShowPopup = false;
257
+ // } else {
258
+ // this.$refs.previewPdf.drawer = false;
259
+ // }
260
+ this.title = item.from || item.name
261
+ this.previewKnowledge = item;
262
+ this.previewKnowledgeId = item.knowledgeId
263
+ this.$refs.previewPdf.previewShowPopup = false;
264
+ this.$refs.previewPdf.drawer = false;
265
+ let index = url.lastIndexOf('?')
266
+ let type = ''
267
+ let httpUrl = '/knowledge-api/knowledge/getTemporaryCertificate'
268
+ if (index !== -1) {
269
+ url = url.substring(0, index)
270
+ type = this.fileType(url)
271
+ } else {
272
+ type = this.fileType(url)
273
+ }
274
+ if (type === '' || type === 'OTHER') {
275
+ httpUrl = httpUrl += '?needEncrypt=true'
276
+ } else {
277
+ httpUrl = httpUrl += '?needEncrypt=false'
278
+ }
279
+ this.$http.post(httpUrl, {
280
+ "fileInOssPath":url
281
+ }).then(async res =>{
282
+ if(res.data.code == '0') {
283
+ this.watermark = await this.getknowledgeBaseStructure(item.knowledgeId);
284
+ this.watermark.source = item.source;
285
+ this.previewHref = res.data.data;
286
+ this.sourceFileType = url.substring(url.lastIndexOf('.'))
287
+ let isOhmPc = sessionStorage.getItem('isOhmPc')
288
+ if (isMobile() || isOhmPc == 'true'){
289
+ this.$refs.previewPdf.drawer = true;
290
+ this.$refs.previewPdf.previewShowPopup = true;
291
+ } else {
292
+ this.$refs.previewPdf.previewShowPopup = false;
293
+ this.$refs.previewPdf.drawer = true;
294
+ }
295
+ //聊一聊按钮的选中状态
296
+ if (this.activeKnowledgeId == item.knowledgeId){
297
+ this.$refs.previewPdf.previewKnowledgeId = this.activeKnowledgeId
298
+ } else {
299
+ this.$refs.previewPdf.previewKnowledgeId = ""
300
+ }
301
+ this.$refs.previewPdf.fileType = type
302
+ this.$refs.previewPdf.tagIds = item.tagIds
303
+ this.$refs.previewPdf.isMessageRecord = this.isMessageRecord ? true : false ;
304
+ let index = url.indexOf("?");
305
+ let newFileInOssPath = url;
306
+ if (index !== -1){
307
+ newFileInOssPath = url.substring(0, url.indexOf("?"))
308
+ }
309
+ let fileName = newFileInOssPath.substring(newFileInOssPath.lastIndexOf('.'))
310
+ if (fileName === '.doc' || fileName === '.docx' || fileName === '.txt'|| fileName === '.html'){
311
+ this.$refs.previewPdf.fileName = fileName;
312
+ } else {
313
+ this.$refs.previewPdf.fileName = '';
314
+ }
315
+ if(item.tagIds && item.tagIds.length != 0) {
316
+ this.$refs.previewPdf.loading = false
317
+ return
318
+ }
319
+ this.$nextTick(() =>{
320
+ if(item.source == 'CREATED_BY_ONESELF' || type === 'HTML') {
321
+ this.$refs.previewPdf.getBolb(item)
322
+ }
323
+ this.$refs.previewPdf.loadIframe(item)
324
+ })
325
+ }
326
+ })
327
+ }
328
+ },
329
+ fileType (url) {
330
+ const fileType = url.substring(url.lastIndexOf('.'));
331
+ if (fileType === '.mp4' || fileType === '.MP4' || fileType === '.MOV' || fileType === '.MOVC' || fileType === '.mov' || fileType === '.movc' || fileType === '.mav' || fileType === '.MAV' || fileType == '.mp3' || fileType == '.MP3' || fileType === '.wav') {
332
+ return 'VIDEO'
333
+ } else if (fileType === '.html') {
334
+ return 'HTML'
335
+ } else {
336
+ return 'OTHER'
337
+ }
338
+ },
339
+ srcContentTypeIMG (item) {
340
+ let url = item.url || '';
341
+ const type = url.substring(url.lastIndexOf('.'));
342
+ if (type === '.jpg' || type === '.jpeg' || type === '.png' || type === '.gif') {
343
+ this.getSrc(item)
344
+ return true
345
+ } else {
346
+ return false
347
+ }
348
+ },
349
+ getSrc (item) {
350
+ // let imgurl = ''
351
+ this.$http.post(
352
+ '/knowledge-api/temporary-certificate/or-origin?expired=30',
353
+ item.url,
354
+ {
355
+ headers: {
356
+ "Content-Type": "application/json",
357
+ },
358
+ }).then(res => {
359
+ console.log(res, '=====');
360
+ // imgurl = await res.bodyText
361
+ this.$set(item, 'expiredUrl', res.data ? res.data : res.bodyText)
362
+ // return res.data
363
+ })
364
+ // return imgurl
365
+ },
366
+ async getknowledgeBaseStructure(knowledgeId) {
367
+ let watermark = {
368
+ textWatermarkValue:'',
369
+ visitorWatermarkValue:''
370
+ }
371
+ await this.$http.get("/knowledge-api/internal/knowledgeBaseStructure/" + knowledgeId).then( async res =>{
372
+ if(res.data) {
373
+ watermark.textWatermarkValue = await res.data.textWatermarkValue
374
+ if(res.data.visitorWatermark) {
375
+ let userInfo = sessionStorage.getItem('userInfo') || localStorage.getItem('userInfo')
376
+ if(userInfo && userInfo !== 'null') {
377
+ watermark.visitorWatermarkValue = JSON.parse(userInfo).realName
378
+ }
379
+ }
380
+ }
381
+ })
382
+ return watermark
383
+ },
384
+ lazyLoadKnowledegList () {
385
+ if (this.allKnowledgeList.length !== 0) {
386
+ let arr = this.allKnowledgeList.splice(0, 5)
387
+ if (arr.length < 5) {
388
+ this.loadMoreFlag = false
389
+ this.msg.content.list = [...this.msg.content.list, ...arr]
390
+ return
391
+ }
392
+ if (this.allKnowledgeList.length == 0) {
393
+ this.loadMoreFlag = false
394
+ }
395
+ this.msg.content.list = [...this.msg.content.list, ...arr]
396
+ return
397
+ }
398
+ },
399
+ previewToDialog(flag){
400
+ if (!flag){
401
+ this.$refs.previewPdf.previewKnowledgeId = ""
402
+ } else {
403
+ this.$refs.previewPdf.previewKnowledgeId = this.previewKnowledgeId
404
+ }
405
+ this.$emit('previewToDialog',flag,this.previewKnowledgeId,this.previewKnowledge)
406
+ },
407
+ clearKnowledgeId(){
408
+ this.previewKnowledgeId = "";
409
+ }
410
+ }
411
+ }
412
+ </script>
413
+
414
+ <style scoped lang="less">
415
+ .answer-docknowledge {
416
+ min-width: 100px;
417
+ background: #ffffff;
418
+ .answer-docknowledge-header {
419
+ .tips {
420
+ width: 154px;
421
+ height: 22px;
422
+ background: #366aff;
423
+ border-radius: 5px;
424
+ text-align: center;
425
+ line-height: 22px;
426
+ color: #fff;
427
+ font-size: 12px;
428
+ margin-bottom: 7px;
429
+ }
430
+ .answer-text {
431
+ // font-size: 13px;
432
+ text-align: left;
433
+ line-height: 25px;
434
+ padding: 0px 0px 12px 0px;
435
+
436
+ .aci-view {
437
+ // font-size: 13px;
438
+ display: inline-block;
439
+ // margin-left: 5px;
440
+ color: #366aff;
441
+ cursor: pointer;
442
+ }
443
+ }
444
+ &.bgc {
445
+ padding: 10px;
446
+ background: #eef1ff;
447
+ border-radius: 10px;
448
+ margin-bottom: 16px;
449
+ .answer-text {
450
+ padding: 0;
451
+ }
452
+ }
453
+ .answer-kn-image-box {
454
+ margin-bottom: 10px;
455
+ }
456
+ }
457
+
458
+ .ad-list {
459
+ display: flex;
460
+ align-items: center;
461
+ flex-wrap: wrap;
462
+ /* .ad-list-cell {
463
+ border-top: solid 1px #eeeeee;
464
+ padding: 10px 0 10px;
465
+
466
+ .alc-title {
467
+ display: flex;
468
+ flex-wrap: wrap;
469
+ align-items: center;
470
+ justify-content: space-between;
471
+ line-height: 16px;
472
+
473
+ .alc-box {
474
+ display: flex;
475
+ align-items: center;
476
+ justify-content: space-between;
477
+ // font-size: 12px;
478
+ width: 100%;
479
+ .alc-source-left {
480
+ display: flex;
481
+ align-items: center;
482
+ .source-form {
483
+ width: 34px;
484
+ flex: none;
485
+ color: #a9b3c6;
486
+ }
487
+ }
488
+ .alc-content-text {
489
+ width: 55px;
490
+ flex: none;
491
+ .aci-view {
492
+ color: #366aff;
493
+ cursor: pointer;
494
+ }
495
+ }
496
+ .alc-title-from {
497
+ line-height: 22px;
498
+ word-break: break-all !important;
499
+ text-align: left;
500
+ flex: auto;
501
+ display: flex;
502
+ justify-content: flex-start;
503
+ }
504
+ }
505
+ .alc-box-introduction {
506
+ overflow: hidden;
507
+ text-overflow: ellipsis;
508
+ display: -webkit-box;
509
+ -webkit-line-clamp: 3;
510
+ -webkit-box-orient: vertical;
511
+ margin-top: 10px;
512
+ color: #616161;
513
+ // font-size: 12px;
514
+ line-height: 24px;
515
+ text-align: left;
516
+ img {
517
+ width: 50px;
518
+ height: 50px;
519
+ margin: 10px;
520
+ cursor: pointer;
521
+ }
522
+ }
523
+ .alc-box-introduction-previewImage {
524
+ width: 100%;
525
+ display: block;
526
+ overflow: hidden;
527
+ text-overflow: ellipsis;
528
+ display: -webkit-box;
529
+ -webkit-line-clamp:3;
530
+ -webkit-box-orient:vertical;
531
+ margin-top: 10px;
532
+ color: #616161;
533
+ // font-size: 12px;
534
+ line-height: 24px;
535
+ text-align: left;
536
+ img {
537
+ max-width: 300px;
538
+ width: 100%;
539
+ max-height: 150px;
540
+ margin: 10px;
541
+ cursor: pointer;
542
+ }
543
+ }
544
+ .alc-updateTime {
545
+ display: flex;
546
+ align-items: center;
547
+ justify-content: space-between;
548
+ font-size: 13px;
549
+ width: 100%;
550
+ margin-top: 10px;
551
+ .upload-source {
552
+ flex: none;
553
+ height: 18px;
554
+ line-height: 18px;
555
+ background: #e9f9f8;
556
+ border: 1px solid #aff2cd;
557
+ border-radius: 2px;
558
+ display: flex;
559
+ align-items: center;
560
+ justify-content: center;
561
+ padding: 0 8px;
562
+ color: #00c2bb;
563
+ }
564
+ .time {
565
+ color: #999999;
566
+ margin-left: 10px;
567
+ }
568
+ .alc-content-text {
569
+ color: #366aff;
570
+ cursor: pointer;
571
+ }
572
+ }
573
+ .alc-title-icon {
574
+ margin: 0 2px;
575
+ width: 18px;
576
+ height: 18px;
577
+ flex: none;
578
+ }
579
+
580
+ .alc-title-updateTime {
581
+ text-align: right;
582
+ color: #999999;
583
+ // font-size: 13px;
584
+ }
585
+ }
586
+
587
+ .alc-content {
588
+ .alc-title-updateTime {
589
+ margin-top: 6px;
590
+ display: block;
591
+ text-align: right;
592
+ color: #999999;
593
+ // font-size: 13px;
594
+ }
595
+
596
+ .alc-content-text {
597
+ margin-bottom: 6px;
598
+ width: 55px;
599
+ flex: none;
600
+ .aci-view {
601
+ display: inline-block;
602
+ margin-left: 30px;
603
+ color: #366aff;
604
+ cursor: pointer;
605
+ }
606
+ }
607
+
608
+ .alc-content-info {
609
+ display: flex;
610
+ flex-wrap: wrap;
611
+ justify-content: space-between;
612
+
613
+ .alcc-box {
614
+ display: flex;
615
+ flex-wrap: wrap;
616
+ color: #999999;
617
+
618
+ .aci-owner {
619
+ margin-right: 20px;
620
+ }
621
+
622
+ .aci-enterprise {
623
+ margin-right: 20px;
624
+ }
625
+ }
626
+ }
627
+ }
628
+ }*/
629
+ .ad-list-cell {
630
+ .alc-source-name {
631
+ flex: none;
632
+ padding: 3px;
633
+ margin-right: 5px;
634
+ margin-bottom: 5px;
635
+ background: #f2f6ff;
636
+ border-radius: 5px;
637
+ display: flex;
638
+ align-items: center;
639
+ justify-content: space-between;
640
+ color: #a9b3c6;
641
+ cursor: pointer;
642
+ img {
643
+ vertical-align: middle;
644
+ // width: 16px;
645
+ // height: 16px;
646
+ margin: 0 3px 0 5px;
647
+ }
648
+ .alc-title-from {
649
+ margin-right: 5px;
650
+ max-width: 240px;
651
+ overflow: hidden;
652
+ text-overflow: ellipsis;
653
+ white-space: nowrap;
654
+ }
655
+ i {
656
+ font-size: 12px;
657
+ }
658
+ }
659
+ }
660
+
661
+ .ad-loadmore {
662
+ width: 100%;
663
+ height: 40px;
664
+ display: flex;
665
+ align-items: center;
666
+ justify-content: center;
667
+ // background: #FFFFFF;
668
+ color: #366aff;
669
+ font-size: 14px;
670
+ margin-top: 8px;
671
+ cursor: pointer;
672
+ }
673
+ }
674
+ }
675
+ </style>