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