askbot-dragon 1.6.21-beta → 1.6.21

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 (72) hide show
  1. package/package.json +8 -11
  2. package/public/index.html +9 -8
  3. package/src/assets/image/default_avt_ui.png +0 -0
  4. package/src/assets/image/filtType/audio.png +0 -0
  5. package/src/assets/image/filtType/excel1.png +0 -0
  6. package/src/assets/image/filtType/general.png +0 -0
  7. package/src/assets/image/filtType/image1.png +0 -0
  8. package/src/assets/image/filtType/link.png +0 -0
  9. package/src/assets/image/filtType/md2.png +0 -0
  10. package/src/assets/image/filtType/mode.png +0 -0
  11. package/src/assets/image/filtType/news.png +0 -0
  12. package/src/assets/image/filtType/pdf1.png +0 -0
  13. package/src/assets/image/filtType/ppt1.png +0 -0
  14. package/src/assets/image/filtType/selfadd1.png +0 -0
  15. package/src/assets/image/filtType/txt1.png +0 -0
  16. package/src/assets/image/filtType/video.png +0 -0
  17. package/src/assets/image/filtType/wechat.png +0 -0
  18. package/src/assets/image/filtType/word1.png +0 -0
  19. package/src/assets/image/loading.gif +0 -0
  20. package/src/assets/js/AliyunlssUtil.js +35 -10
  21. package/src/assets/js/common.js +241 -0
  22. package/src/components/ActionAlertIframe.vue +1 -0
  23. package/src/components/AiGuide.vue +7 -4
  24. package/src/components/AnswerDocknowledge.vue +930 -389
  25. package/src/components/ConversationContainer.vue +7111 -1058
  26. package/src/components/MyEditor.vue +342 -0
  27. package/src/components/QwFeedback.vue +303 -0
  28. package/src/components/actionSatisfaction.vue +2 -2
  29. package/src/components/actionSendToBot.vue +2 -2
  30. package/src/components/answerRadio.vue +145 -64
  31. package/src/components/askVideo.vue +3 -6
  32. package/src/components/assetDetails.vue +14 -6
  33. package/src/components/assetMessage.vue +14 -13
  34. package/src/components/associationIntention.vue +31 -6
  35. package/src/components/fielListView.vue +1 -1
  36. package/src/components/file/AliyunOssComponents.vue +1 -1
  37. package/src/components/formTemplate.vue +1590 -1674
  38. package/src/components/imgView.vue +32 -0
  39. package/src/components/intelligentSummary.vue +231 -0
  40. package/src/components/markDownText.vue +198 -0
  41. package/src/components/myPopup.vue +14 -11
  42. package/src/components/pagination.vue +129 -0
  43. package/src/components/pdfPosition.vue +112 -90
  44. package/src/components/popup.vue +8 -7
  45. package/src/components/preview/docView.vue +114 -0
  46. package/src/components/preview/excelView.vue +187 -0
  47. package/src/components/preview/newPositionPreview.vue +370 -0
  48. package/src/components/preview/pdfView.vue +824 -0
  49. package/src/components/previewDoc.vue +6 -0
  50. package/src/components/previewPdf.vue +963 -200
  51. package/src/components/receiverMessagePlatform.vue +25 -21
  52. package/src/components/recommend.vue +2 -2
  53. package/src/components/senderMessagePlatform.vue +21 -13
  54. package/src/components/tree.vue +116 -103
  55. package/src/components/utils/AliyunIssUtil.js +35 -13
  56. package/src/components/utils/ckeditor.js +64 -56
  57. package/src/components/welcomeKnowledgeFile.vue +344 -0
  58. package/src/components/welcomeLlmCard.vue +141 -0
  59. package/src/components/welcomeSuggest.vue +98 -0
  60. package/src/locales/cn.json +62 -0
  61. package/src/locales/en.json +62 -0
  62. package/src/main.js +19 -3
  63. package/vue.config.js +0 -1
  64. package/src/assets/js/obsBrowser.js +0 -63
  65. package/src/components/utils/ckeditorImageUpload/command.js +0 -112
  66. package/src/components/utils/ckeditorImageUpload/editing.js +0 -12
  67. package/src/components/utils/ckeditorImageUpload/plugin-image.js +0 -12
  68. package/src/components/utils/ckeditorImageUpload/toolbar-ui.js +0 -41
  69. package/src/components/utils/ckeditorfileUpload/common.js +0 -175
  70. package/src/components/utils/ckeditorfileUpload/editing.js +0 -12
  71. package/src/components/utils/ckeditorfileUpload/plugin_file.js +0 -12
  72. package/src/components/utils/ckeditorfileUpload/toolbar_ui.js +0 -35
@@ -1,62 +1,129 @@
1
1
  <template>
2
2
  <div id="answer-radio">
3
- <p class="radio-description" v-html="msg.content.description" v-if="msg.content.description && !msg.content.isKnowledgeSummary"></p>
3
+ <p class="radio-description" v-html="msg.content.description"
4
+ v-if="msg.content.description && !msg.content.isKnowledgeSummary"></p>
4
5
  <div class="bottom-link" v-if="msg.content.description && !msg.content.isKnowledgeSummary"></div>
5
- <div :class="['options-list',msg.content.isKnowledgeSummary ? 'isKnowledgeSummary' : '']">
6
- <div v-if="msg.content.isKnowledgeSummary" class="tips">AI为您推荐了以下内容</div>
7
- <div
8
- v-for="(option, index) in msg.content.options"
9
- class="options-item"
10
- :class="index!==msg.content.options.length -1?'recommend-item':'last-item'"
11
- :key="msg.nodeId + '_' + index"
12
- @click="radioClick(msg,option,index)">
13
-
14
- <!-- <el-tooltip class="item" effect="dark" :content="option.name" placement="bottom-start" v-if="!isMobile">
15
- <span > {{ option.name }}</span>
16
- </el-tooltip> -->
17
- <span> {{ option.name }}</span>
6
+ <div :class="['options-list', msg.content.isKnowledgeSummary ? 'isKnowledgeSummary' : '']">
7
+ <div v-if="msg.content.isKnowledgeSummary" class="tips">{{$t('dragonCommon.AIrecommends')}}</div>
8
+ <div v-for="(option, index) in showOptions" class="options-item"
9
+ :class="index !== msg.content.options.length - 1 ? 'recommend-item' : 'last-item'" :key="msg.nodeId + '_' + index"
10
+ @click="radioClick(msg, option, index)">
11
+ <el-tooltip class="item" effect="dark" :content="$t('dragonCommon.clickme')" placement="top">
12
+ <span class="options-item-name"> {{ getFilteredName(option.name) }}</span>
13
+ </el-tooltip>
18
14
  <i class="arsenal_icon arsenalangle-right-solid"></i>
19
15
  </div>
20
16
  </div>
17
+ <div v-if="showPage" class="switch-page">
18
+ <span @click="changeActivePage" class="switch-page-btn">{{$t('dragonCommon.refresh')}}</span>
19
+ <!-- <span @click="showMore" class="switch-page-btn">查看更多</span> -->
20
+ </div>
21
21
  </div>
22
22
  </template>
23
23
 
24
24
  <script>
25
25
  export default {
26
- name: "answerRadio",
27
- data(){
28
- return{
29
- isMobile:false,
30
- }
31
- },
32
- props:['msg'],
33
- mounted(){
34
- console.log(this.msg,'msg');
35
- this.judgeIsMobile();
36
- },
37
- methods:{
38
- judgeIsMobile() {
39
- let flag = navigator.userAgent.match(
40
- /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
41
- );
42
- if (flag) {
43
- this.isMobile = true;
44
- } else {
45
- this.isMobile = false;
46
- }
47
- console.log(this.isMobile,'this.isMobile');
48
- },
49
- radioClick(msg,option,index){
50
- let value = option.answerId ? msg.id +'_' + index + '_' + option.value + '_' + option.name + '_' + option.answerId : msg.id +'_' + index + '_' + option.value + '_' + option.name
51
- this.$emit('onRadioClick',value,option.name, msg.apiKey,msg.actionCategory, msg.msgId?msg.msgId:'',option.apiKey)
52
- }
53
- }
26
+ name: "answerRadio",
27
+ data() {
28
+ return {
29
+ isMobile: false,
30
+ formatOptions: [],
31
+ activeIndex: 0,
32
+ pageSize: 5,
33
+ showPage: false,
34
+ showOptions: [],
35
+ }
36
+ },
37
+ props: ['msg'],
38
+ mounted() {
39
+ console.log("askbot-dragon: systemLanguage", sessionStorage.getItem("systemLanguage"));
40
+ this.$i18n.locale = sessionStorage.getItem("systemLanguage") || 'cn';
41
+ console.log(this.msg, 'msg');
42
+ // 关键词推荐 前端分页
43
+ if ((this.msg.id == "recdNodeId" || this.msg.content.groupVisible) && this.msg.content.options.length > this.pageSize) {
44
+ this.pageSize = this.msg.content.groupNumber || 5;
45
+ this.formatOptions = this.chunkArray(this.msg.content.options, this.pageSize);
46
+ this.activeIndex = 0;
47
+ this.showPage = true;
48
+ } else {
49
+ this.formatOptions = [this.msg.content.options];
50
+ this.activeIndex = 0;
51
+ }
52
+ this.showOptions = this.formatOptions[0];
53
+ this.judgeIsMobile();
54
+ },
55
+ methods: {
56
+ getFilteredName(name) {
57
+ if (typeof name === 'string') {
58
+ return name.replace(/<\/?p>/g, '');
59
+ } else {
60
+ return name;
61
+ }
62
+ },
63
+ showMore(){
64
+ if (this.activeIndex == this.formatOptions.length - 2) {
65
+ this.activeIndex++;
66
+ this.showPage = false;
67
+ } else {
68
+ this.activeIndex++;
69
+ }
70
+ this.showOptions = [...this.showOptions.concat(this.formatOptions[this.activeIndex])]
71
+ },
72
+ changeActivePage(){
73
+ if (this.activeIndex >= this.formatOptions.length - 1) {
74
+ this.activeIndex = 0;
75
+ } else {
76
+ this.activeIndex++;
77
+ }
78
+ this.showOptions = this.formatOptions[this.activeIndex]
79
+ },
80
+ chunkArray(array, size) {
81
+ let chunks = [];
82
+ for (let i = 0; i < array.length; i += size) {
83
+ let chunk = array.slice(i, i + size);
84
+ chunks.push(chunk);
85
+ }
86
+ return chunks;
87
+ },
88
+ judgeIsMobile() {
89
+ let flag = navigator.userAgent.match(
90
+ /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
91
+ );
92
+ if (flag) {
93
+ this.isMobile = true;
94
+ } else {
95
+ this.isMobile = false;
96
+ }
97
+ console.log(this.isMobile, 'this.isMobile');
98
+ },
99
+ radioClick(msg, option, index) {
100
+ let value = option.answerId ? msg.id + '_' + index + '_' + option.value + '_' + option.name + '_' + option.answerId : msg.id + '_' + index + '_' + option.value + '_' + option.name
101
+ this.$emit('onRadioClick', value, option.name, msg.apiKey, msg.actionCategory, msg.msgId ? msg.msgId : '', option.apiKey)
102
+ }
103
+ }
54
104
 
55
105
  }
56
106
  </script>
57
107
 
58
108
  <style scoped lang="less">
59
- #answer-radio{
109
+ #answer-radio {
110
+ .switch-page {
111
+ margin-top: 10px;
112
+ display: flex;
113
+ flex-direction: column;
114
+ align-items: center;
115
+ .switch-page-btn {
116
+ width: 80px;
117
+ height: 24px;
118
+ border-radius: 15px;
119
+ border: solid 1px #366AFF;
120
+ color: #366AFF;
121
+ line-height: 24px;
122
+ text-align: center;
123
+ cursor: pointer;
124
+ font-size: 12px;
125
+ }
126
+ }
60
127
  .radio-description {
61
128
  word-wrap: break-word;
62
129
  word-break: break-all;
@@ -64,51 +131,62 @@ export default {
64
131
  /*padding: 8px 10px 10px 0;*/
65
132
  padding-bottom: 10px;
66
133
  height: auto;
67
- /* border-bottom: 1px solid #EEEEEE;*/
134
+ /* border-bottom: 1px solid #EEEEEE;*/
68
135
  }
69
- .bottom-link{
136
+
137
+ .bottom-link {
70
138
  height: 1px;
71
- background-color:#EEEEEE;
139
+ background-color: #EEEEEE;
72
140
  }
73
- .options-list{
141
+
142
+ .options-list {
74
143
  padding-top: 4px;
75
- /* padding-top: 10px;*/
144
+ /* padding-top: 10px;*/
76
145
  /*padding-right: 10px;*/
77
-
78
- .options-item{
146
+
147
+ .options-item {
79
148
  // height: 25px;
80
149
  line-height: 25px;
81
150
  background-color: #ffffff;
82
151
  color: #366aff;
83
- cursor:pointer;
152
+ cursor: pointer;
84
153
  display: flex;
85
154
  align-items: center;
86
155
  justify-content: space-between;
87
-
88
156
 
89
- i{
157
+ .options-item-name {
158
+ flex: auto;
159
+ }
160
+
161
+ i {
162
+ width: 16px;
163
+ flex: none;
90
164
  padding-left: 10px;
91
165
  }
92
- .options-item-text{
166
+
167
+ .options-item-text {
93
168
  text-overflow: ellipsis;
94
169
  display: -webkit-box; //使用了flex,需要加
95
- overflow: hidden; //超出隐藏
170
+ overflow: hidden; //超出隐藏
96
171
  word-break: break-all; //纯英文、数字、中文
97
- text-overflow: ellipsis; //省略号
172
+ text-overflow: ellipsis; //省略号
98
173
  -webkit-box-orient: vertical; //垂直
99
- -webkit-line-clamp: 1; //显示一行
100
- white-space:pre-line; //
174
+ -webkit-line-clamp: 1; //显示一行
175
+ white-space: pre-line; //
101
176
  }
102
177
  }
103
- &.isKnowledgeSummary{
178
+
179
+ &.isKnowledgeSummary {
104
180
  background: #EEF1FF;
105
181
  border-radius: 10px;
106
182
  padding: 10px;
107
- .options-item{
183
+
184
+ .options-item {
108
185
  background: #EEF1FF;
109
186
  }
110
187
  }
111
- .tips{
188
+
189
+ .tips {
112
190
  width: 131px;
113
191
  height: 22px;
114
192
  background: #366AFF;
@@ -118,13 +196,16 @@ export default {
118
196
  color: #fff;
119
197
  font-size: 12px;
120
198
  }
121
- .recommend-item{
199
+
200
+ .recommend-item {
122
201
  padding: 8px 0;
123
202
  }
124
- .last-item{
203
+
204
+ .last-item {
125
205
  padding-top: 8px;
126
206
  }
127
- .end{
207
+
208
+ .end {
128
209
  border-bottom-left-radius: 25px !important;
129
210
  border-bottom-right-radius: 25px !important;
130
211
  }
@@ -15,7 +15,7 @@
15
15
  :controlslist="nodownload&&'nodownload'"
16
16
  :raw-controls="true"
17
17
  x5-video-player-type="h5-page"
18
- style="object-fit: contain;width: calc(100vw - 139px);height: 160px;background-color: black;border-radius: 25px;max-width: 230px;padding-left: 10px"
18
+ style="object-fit: contain;width: calc(100vw - 139px);height: 160px;background-color: black;border-radius: 10px;max-width: 230px;padding-left: 10px"
19
19
  preload
20
20
  :poster="videoSrc+'?spm=qipa250&x-oss-process=video/snapshot,t_1000,f_jpg,w_0,h_0,m_fast'"
21
21
  class="video-player vjs-custom-skin"
@@ -26,7 +26,7 @@
26
26
  </div>
27
27
  </template>
28
28
  <script>
29
- import { putObject } from "../assets/js/obsBrowser";
29
+ import {uploadImageByBase64} from "../assets/js/AliyunlssUtil";
30
30
 
31
31
  export default {
32
32
  name: "ask_video",
@@ -86,10 +86,7 @@
86
86
  console.debug('img.src',output)
87
87
  let base64 = canvas.toDataURL("image/png")
88
88
  let blob = that.dataURLtoFile(base64,'name')
89
- // let promise = uploadImageByBase64(ossConfig,blob);
90
- const file = new File([blob], 'name', { type: 'text/plain', lastModified: Date.now() });
91
- console.debug('file',file)
92
- let promise = putObject(file);
89
+ let promise = uploadImageByBase64(blob);
93
90
  promise.then((res)=>{
94
91
  console.debug("upload base64 reslut",res);
95
92
  if (res&&res.url){
@@ -2,8 +2,8 @@
2
2
  <div class="asset">
3
3
  <div class="asset-details">
4
4
  <section class="details-title">
5
- <p>您正在咨询</p>
6
- <span v-if="!isThirdParty" @click="rotateClick" :class="rotateFlag ? 'rotate' : ''">
5
+ <p>{{$t('dragonCommon.youareconsulting')}}</p>
6
+ <span @click="rotateClick" class="rotate">
7
7
  <i class="arsenal_icon arsenalangle-up-solid"></i>
8
8
  </span>
9
9
  </section>
@@ -68,12 +68,12 @@
68
68
  </p>
69
69
  <p class="text-SN">
70
70
  <i class="iconfont guoran-tongyichicun-mingcheng"></i>
71
- <span>{{ dataDetails.thirdAssetsCode ? dataDetails.thirdAssetsCode : "--" }}</span>
71
+ <span>{{ dataDetails.thirdAssetsCode ? dataDetails.thirdAssetsCode : "--12312" }}</span>
72
72
  </p>
73
73
  </section>
74
74
  </div>
75
75
  </div>
76
- <div class="details-content-hide" v-if="rotateFlag && !isThirdParty">
76
+ <div class="details-content-hide" v-if="false && !isThirdParty">
77
77
  <p>
78
78
  <i class="iconfont guoran-miaoshu"></i>
79
79
  <section class="description">
@@ -155,6 +155,7 @@
155
155
  </template>
156
156
 
157
157
  <script>
158
+ /*eslint-disable*/
158
159
  export default {
159
160
  props: {
160
161
  data: {
@@ -213,7 +214,8 @@ export default {
213
214
  },
214
215
  methods: {
215
216
  rotateClick() {
216
- this.rotateFlag = !this.rotateFlag;
217
+ // this.rotateFlag = !this.rotateFlag;
218
+ this.$emit('assetClick', this.data.assets)
217
219
  },
218
220
  },
219
221
  };
@@ -258,7 +260,7 @@ export default {
258
260
  }
259
261
  }
260
262
  .rotate {
261
- transform: rotate(180deg);
263
+ transform: rotate(90deg);
262
264
  }
263
265
  }
264
266
  .details-content {
@@ -296,6 +298,7 @@ export default {
296
298
  color: #000000;
297
299
  font-size: 15px;
298
300
  text-overflow: hidden;
301
+ margin-bottom: 5px;
299
302
  // overflow-wrap: each();
300
303
  }
301
304
  .text-label {
@@ -314,6 +317,8 @@ export default {
314
317
  background: #e1faf9;
315
318
  box-sizing: border-box;
316
319
  padding: 3px 5px;
320
+ margin-bottom: 5px;
321
+ border-radius: 5px;
317
322
  i {
318
323
  color: #00c2bb;
319
324
  }
@@ -325,11 +330,14 @@ export default {
325
330
  background: #edf2ff;
326
331
  box-sizing: border-box;
327
332
  padding: 3px 5px;
333
+ margin-bottom: 5px;
334
+ border-radius: 5px;
328
335
  i {
329
336
  color: #366aff;
330
337
  }
331
338
  span {
332
339
  color: #366aff;
340
+ margin-bottom: 0 !important;
333
341
  }
334
342
  }
335
343
  }
@@ -15,9 +15,7 @@
15
15
  <section class="text-label">
16
16
  <p class="text-type">
17
17
  <i class="iconfont guoran-biaoqian"></i>
18
- <span>{{
19
- dataDetails.typeName ? dataDetails.typeName : "--"
20
- }}</span>
18
+ <span>{{ dataDetails.typeName ? dataDetails.typeName : "--" }}</span>
21
19
  </p>
22
20
  <p class="text-SN">
23
21
  <i class="iconfont guoran-xinghao"></i>
@@ -29,20 +27,20 @@
29
27
  <div class="details-content-hide">
30
28
  <p>
31
29
  <i class="iconfont guoran-miaoshu"></i>
32
- <span>描述</span>
30
+ <span>{{ $t('dragonCommon.description') }}</span>
33
31
  <b>{{ dataDetails.description }}</b>
34
32
  </p>
35
33
  <p>
36
34
  <i class="arsenal_icon arsenalweizhi"></i>
37
- <span>位置</span>
38
- <b> {{ dataDetails.officeAreaName }} </b>
35
+ <span>{{ $t('dragonCommon.location') }}</span>
36
+ <b>{{ dataDetails.officeAreaName }}</b>
39
37
  </p>
40
38
  <p>
41
39
  <i class="iconfont guoran-geren"></i>
42
- <span>使用者</span>
40
+ <span>{{ $t('dragonCommon.user') }}</span>
43
41
  <b>
44
42
  {{
45
- dataDetails.userName && dataDetails.userName.length != 0
43
+ dataDetails.userName && dataDetails.userName.length !== 0
46
44
  ? dataDetails.userName[0]
47
45
  : "--"
48
46
  }}
@@ -50,10 +48,10 @@
50
48
  </p>
51
49
  <p>
52
50
  <i class="iconfont guoran-bumen"></i>
53
- <span>部门</span>
51
+ <span>{{ $t('dragonCommon.department') }}</span>
54
52
  <b>
55
53
  {{
56
- dataDetails.deptNames && dataDetails.deptNames.length != 0
54
+ dataDetails.deptNames && dataDetails.deptNames.length !== 0
57
55
  ? dataDetails.deptNames[0]
58
56
  : "--"
59
57
  }}
@@ -61,10 +59,10 @@
61
59
  </p>
62
60
  <p>
63
61
  <i class="iconfont guoran-guanlizhe"></i>
64
- <span>管理者</span>
62
+ <span>{{ $t('dragonCommon.manager') }}</span>
65
63
  <b>
66
64
  {{
67
- dataDetails.managerNames && dataDetails.managerNames.length != 0
65
+ dataDetails.managerNames && dataDetails.managerNames.length !== 0
68
66
  ? dataDetails.managerNames[0]
69
67
  : "--"
70
68
  }}
@@ -107,7 +105,10 @@ export default {
107
105
  : "";
108
106
  return dataDetails;
109
107
  },
110
- }
108
+ },
109
+ mounted() {
110
+ this.$i18n.locale = sessionStorage.getItem("systemLanguage") || 'cn';
111
+ },
111
112
  };
112
113
  </script>
113
114
 
@@ -1,5 +1,6 @@
1
1
  <template>
2
2
  <div class="association-intention">
3
+ <div class="plugin_name-dragon" v-if="msg.headerStyleValue && !hiddenHeaderFooter">{{ msg.headerStyleValue }}</div>
3
4
  <div v-if=" (msgType === 'answer_welcofmetext' || msgType === 'answer_text') && !(msg.recommend&& msg.recommend.status)">
4
5
  <!-- <p v-html="msg.content.replace(/\#[\u4E00-\u9FA5]{1,3}\;/gi, emotion)"></p>-->
5
6
  <template v-if="msg.dispatchServiceType === 'CHATGPT'">
@@ -8,7 +9,7 @@
8
9
  </p>
9
10
  </template>
10
11
  <template v-else>
11
- <p v-html="msg.content.replace(/\#[\u4E00-\u9FA5]{1,3}\;/gi, emotion)" class="answer-rich-text"></p>
12
+ <p v-html="msg.content.replace(/\#[\u4E00-\u9FA5]{1,3}\;/gi, emotion).replace(/\n/g, '<br>')" class="answer-rich-text"></p>
12
13
  </template>
13
14
  </div>
14
15
  <div v-if=" (msgType === 'answer_welcofmetext' || msgType === 'answer_text') && (msg.recommend&& msg.recommend.status)">
@@ -18,7 +19,7 @@
18
19
  </p>
19
20
  </template>
20
21
  <template v-else>
21
- <p v-html="msg.content.replace(/\#[\u4E00-\u9FA5]{1,3}\;/gi, emotion)" class="answer-rich-text"></p>
22
+ <p v-html="msg.content.replace(/\#[\u4E00-\u9FA5]{1,3}\;/gi, emotion).replace(/\n/g, '<br>')" class="answer-rich-text"></p>
22
23
  </template>
23
24
  <Recommend :msg="msg" @onRadioClickReco="onRadioClickReco"></Recommend>
24
25
  </div>
@@ -41,7 +42,7 @@
41
42
  v-for="(src,index) in [msg.content.url]"
42
43
  :src="src"
43
44
  :key="index"
44
- style="height: auto; width: calc(100vw - 137px);border-radius: 25px;max-width: 230px"
45
+ style="height: auto; width: calc(100vw - 137px);border-radius: 10px;max-width: 230px"
45
46
  class="img-class"
46
47
  />
47
48
  </viewer>
@@ -49,7 +50,7 @@
49
50
  <img
50
51
  v-else
51
52
  :src="msg.content.url"
52
- style="height: auto; width: calc(100vw - 137px);border-radius: 25px;max-width: 230px"
53
+ style="height: auto; width: calc(100vw - 137px);border-radius: 10px;max-width: 230px"
53
54
  @click="onImageClick(msg.content.url)"
54
55
  class="img-class"
55
56
  />
@@ -63,6 +64,9 @@
63
64
  </div>
64
65
  <Recommend v-if="msg.recommend && msg.recommend.list && msg.recommend.list.length > 0" :msg="msg" @onRadioClickReco="onRadioClickReco"></Recommend>
65
66
  </div>
67
+ <div v-if="msg.footerStyleValue && !hiddenHeaderFooter" class="llm_bot_response-model-select-dragon">
68
+ <span class="model-switch-handle-name">{{msg.footerStyleValue}}</span>
69
+ </div>
66
70
  <van-popup v-model="previewShowPopup" position="bottom" v-if="previewShowPopup" :style="{ height: '90%', background:'#FFFFFF'}">
67
71
  <previewDoc ref="previewDoc" :url="previewHref" @close="close" v-if="previewShowPopup"></previewDoc>
68
72
  </van-popup>
@@ -88,14 +92,14 @@
88
92
  export default {
89
93
  name: "associationIntention",
90
94
  components: {Recommend, askVideo, previewDoc},
91
- props: ["msg",'msgType','isOpen','sourceOhm','isOhmPc', 'nodownload'],
95
+ props: ["msg",'msgType','isOpen','sourceOhm','isOhmPc', 'nodownload', 'hiddenHeaderFooter'],
92
96
  filters: {
93
97
  imageStyle: function (html) {
94
98
  //富文本内图片自适应高度宽度
95
99
  const regex = new RegExp("<img", "gi");
96
100
  return html.replace(
97
101
  regex,
98
- "<img style='max-width: 230px;border-radius: 25px;' onclick='imageOnClick(this)'"
102
+ "<img style='max-width: 230px;border-radius: 10px;' onclick='imageOnClick(this)'"
99
103
  );
100
104
  },
101
105
  msgHtmlContent:function (content){
@@ -316,6 +320,27 @@
316
320
  <style scoped lang="less">
317
321
  @import "../assets/less/converSationContainer/common";
318
322
  .association-intention{
323
+ .plugin_name-dragon {
324
+ // width: 100%;
325
+ height: 26px;
326
+ border-radius: 26px;
327
+ background: #f2f5ff;
328
+ padding: 0 12px;
329
+ display: flex;
330
+ align-items: center;
331
+ margin-bottom: 10px;
332
+ color: #a9b3c6;
333
+ font-size: 12px;
334
+ }
335
+ .llm_bot_response-model-select-dragon{
336
+ margin-top: 12px;
337
+ color: #888888;
338
+ font-size: 12px;
339
+ display: flex;
340
+ justify-content: flex-end;
341
+ align-items: center;
342
+ text-align: right;
343
+ }
319
344
  .association-img{
320
345
  /*display: flex;
321
346
  align-items: center;
@@ -53,7 +53,7 @@
53
53
  <previewDoc ref="previewDoc" :url="previewHref" @close="close" v-if="previewShowPopup"></previewDoc>
54
54
  </van-popup>
55
55
  <el-drawer
56
- title="我是标题"
56
+ title=""
57
57
  :append-to-body="true"
58
58
  :visible.sync="drawer"
59
59
  :with-header="false"
@@ -9,7 +9,7 @@
9
9
  <script>
10
10
  import {uid} from 'uid';
11
11
 
12
- const OSS = require('ali-oss');
12
+ // const OSS = require('ali-oss');
13
13
 
14
14
  Date.prototype.Format = function (fmt) {
15
15
  const o = {