askbot-dragon 1.7.49-beta → 1.7.52-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 (95) 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 +56 -56
  5. package/public/index.html +73 -75
  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 +141 -117
  11. package/src/assets/js/Base64Util.js +22 -22
  12. package/src/assets/js/common.js +252 -252
  13. package/src/assets/js/hammer.js +100 -89
  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 -192
  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 -154
  21. package/src/components/AiGuide.vue +438 -471
  22. package/src/components/AnswerDocknowledge.vue +1100 -1088
  23. package/src/components/AnswerVoice.vue +285 -285
  24. package/src/components/AskIFrame.vue +15 -15
  25. package/src/components/ConversationContainer.vue +10766 -10873
  26. package/src/components/FileType.vue +86 -86
  27. package/src/components/Message.vue +27 -27
  28. package/src/components/MyEditor.vue +342 -341
  29. package/src/components/QwFeedback.vue +301 -301
  30. package/src/components/actionSatisfaction.vue +107 -107
  31. package/src/components/actionSendToBot.vue +62 -62
  32. package/src/components/answerDissatisfaction.vue +62 -62
  33. package/src/components/answerRadio.vue +211 -213
  34. package/src/components/ask-components/DissatisfactionOptions.vue +57 -57
  35. package/src/components/ask-components/Msgloading.vue +37 -37
  36. package/src/components/ask-components/SatisfactionV2.vue +15 -15
  37. package/src/components/askVideo.vue +162 -139
  38. package/src/components/assetDetails.vue +378 -378
  39. package/src/components/assetMessage.vue +228 -226
  40. package/src/components/associationIntention.vue +378 -374
  41. package/src/components/attachmentPreview.vue +90 -90
  42. package/src/components/botActionSatisfactor.vue +68 -68
  43. package/src/components/chatContent.vue +513 -513
  44. package/src/components/feedBack.vue +136 -136
  45. package/src/components/fielListView.vue +351 -351
  46. package/src/components/file/AliyunOssComponents.vue +108 -108
  47. package/src/components/formTemplate.vue +3501 -3497
  48. package/src/components/imgView.vue +31 -31
  49. package/src/components/intelligentSummary.vue +231 -229
  50. package/src/components/kkview.vue +1138 -1138
  51. package/src/components/loadingProcess.vue +164 -164
  52. package/src/components/markDownText.vue +197 -197
  53. package/src/components/message/ActionAlertIframe.vue +112 -112
  54. package/src/components/message/ShopMessage.vue +164 -164
  55. package/src/components/message/TextMessage.vue +928 -924
  56. package/src/components/message/TicketMessage.vue +201 -201
  57. package/src/components/message/swiper/index.js +4 -4
  58. package/src/components/message/swiper/ticketSwiper.vue +503 -503
  59. package/src/components/message/swiper/ticketSwiperItem.vue +61 -61
  60. package/src/components/msgLoading.vue +231 -231
  61. package/src/components/myPopup.vue +70 -70
  62. package/src/components/newPdfPosition.vue +878 -0
  63. package/src/components/pagination.vue +129 -0
  64. package/src/components/pdfPosition.vue +1514 -1342
  65. package/src/components/popup.vue +227 -227
  66. package/src/components/preview/docView.vue +112 -0
  67. package/src/components/preview/excelView.vue +179 -0
  68. package/src/components/preview/newPositionPreview.vue +370 -0
  69. package/src/components/preview/pdfView.vue +824 -0
  70. package/src/components/previewDoc.vue +251 -247
  71. package/src/components/previewPdf.vue +1093 -774
  72. package/src/components/receiverMessagePlatform.vue +65 -66
  73. package/src/components/recommend.vue +80 -80
  74. package/src/components/selector/hOption.vue +20 -20
  75. package/src/components/selector/hSelector.vue +199 -199
  76. package/src/components/selector/hWrapper.vue +216 -216
  77. package/src/components/senderMessagePlatform.vue +50 -55
  78. package/src/components/source/BotMessage.vue +24 -24
  79. package/src/components/source/CustomMessage.vue +24 -24
  80. package/src/components/test.vue +260 -260
  81. package/src/components/tree.vue +307 -307
  82. package/src/components/utils/AliyunIssUtil.js +103 -103
  83. package/src/components/utils/ckeditor.js +185 -185
  84. package/src/components/utils/format_date.js +25 -25
  85. package/src/components/utils/index.js +6 -6
  86. package/src/components/utils/math_utils.js +29 -29
  87. package/src/components/voiceComponent.vue +119 -119
  88. package/src/components/welcomeKnowledgeFile.vue +344 -340
  89. package/src/components/welcomeLlmCard.vue +144 -140
  90. package/src/components/welcomeSuggest.vue +97 -97
  91. package/src/locales/cn.json +71 -61
  92. package/src/locales/en.json +73 -62
  93. package/src/locales/jp.json +73 -0
  94. package/src/main.js +75 -76
  95. package/vue.config.js +54 -54
@@ -1,32 +1,32 @@
1
- <template>
2
- <div>
3
- <el-image-viewer :zIndex="999999" :on-close="closeViewer" :url-list="urlList" />
4
- </div>
5
- </template>
6
-
7
- <script>
8
- import ElementUI from 'element-ui';
9
- // import ElImageViewer from ElementUI.Image.components.ImageViewer;
10
-
11
- export default {
12
- name: "imgView",
13
- components: {
14
- ElImageViewer: ElementUI.Image.components.ImageViewer
15
- },
16
- data () {
17
- return {};
18
- },
19
- props: ["urlList"],
20
- methods: {
21
- closeViewer () {
22
- // 关闭组件后从父级dom销毁这个挂载
23
- if (this.$el.parentNode) {
24
- this.$el.parentNode.removeChild(this.$el);
25
- }
26
- this.$emit("closeViewer");
27
- },
28
- },
29
- };
30
- </script>
31
-
1
+ <template>
2
+ <div>
3
+ <el-image-viewer :zIndex="999999" :on-close="closeViewer" :url-list="urlList" />
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ import ElementUI from 'element-ui';
9
+ // import ElImageViewer from ElementUI.Image.components.ImageViewer;
10
+
11
+ export default {
12
+ name: "imgView",
13
+ components: {
14
+ ElImageViewer: ElementUI.Image.components.ImageViewer
15
+ },
16
+ data () {
17
+ return {};
18
+ },
19
+ props: ["urlList"],
20
+ methods: {
21
+ closeViewer () {
22
+ // 关闭组件后从父级dom销毁这个挂载
23
+ if (this.$el.parentNode) {
24
+ this.$el.parentNode.removeChild(this.$el);
25
+ }
26
+ this.$emit("closeViewer");
27
+ },
28
+ },
29
+ };
30
+ </script>
31
+
32
32
  <style scoped></style>
@@ -1,230 +1,232 @@
1
- <template>
2
- <div class="intelligentSummary" :class="tagIds.length != 0 ? 'float_intelligentSummary' : ''" id="intelligentSummary">
3
- <div class="summaryHeader">
4
- <div class="left">
5
- <i class="iconfont guoran-tongyichicun-write-29-jiqiren"></i>
6
- <span>{{ $t('dragonCommon.smartSummary') }}</span>
7
- </div>
8
- <div class="right">
9
- <div class="regenerationBtn" @click="regeneration">
10
- <template v-if="!isLoading">
11
- {{ $t('dragonCommon.regenerate') }}
12
- </template>
13
- <template v-else>
14
- <img
15
- height="20px"
16
- width="20px"
17
- src="../assets/image/loading.gif"
18
- alt
19
- srcset
20
- style="margin-right: 6px"
21
- />
22
- <span>{{ $t('dragonCommon.generating') }}</span>
23
- </template>
24
- </div>
25
- <i class="iconfont guoran-tongyichicun-shouqi" @click="closeSummary"></i>
26
- </div>
27
- </div>
28
- <div class="summaryContent">
29
- <span>{{ typedContent }}</span>
30
- </div>
31
- <div class="intelligentBottom" v-if="recommendQuestions.length > 0">
32
- <div class="intelligentQues"
33
- v-for="(item, index) in recommendQuestions"
34
- :key="index"
35
- @click="recommendQues(item)"
36
- >
37
- {{ item }}
38
- </div>
39
- </div>
40
- </div>
41
- </template>
42
-
43
- <script>
44
- export default {
45
- name: "intelligentSummary",
46
- data(){
47
- return{
48
- summary:"",
49
- recommendQuestions:[],
50
- isLoading:false,
51
- typedContent:"",
52
- typingSpeed:20
53
- }
54
- },
55
- props:{
56
- knowledgeId:{
57
- type:String
58
- },
59
- tagIds:{
60
- type:Array,
61
- default() {
62
- return []
63
- }
64
- }
65
- },
66
- methods:{
67
- getKnowledgeSummary() {
68
- let url = "/knowledge-api/knowledge/detail/" + this.knowledgeId;
69
- this.typedContent = "";
70
- this.summary = "";
71
- this.$http.get(url).then(res => {
72
- console.log('res',res)
73
- if (res.data.data){
74
- this.summary = res.data.data.summary;
75
- this.recommendQuestions = res.data.data.recommendQuestions ? res.data.data.recommendQuestions.splice(0,5) : [];
76
- if (!this.summary){
77
- this.regeneration();
78
- } else {
79
- this.typedContent = this.summary;
80
- }
81
- }
82
- this.$nextTick(() => {
83
- this.$emit('getSummarySuccess')
84
- })
85
- })
86
- },
87
- regeneration(){
88
- let url = "/knowledge-api/knowledge/analyze/summary";
89
- let obj = {
90
- "mainId": sessionStorage.getItem('_mainId') || localStorage.getItem('_mainId'),
91
- "userId": sessionStorage.getItem('_uid') || localStorage.getItem('_uid'),
92
- "knowledgeId": this.knowledgeId,
93
- "async": false
94
- }
95
- this.isLoading = true;
96
- this.typedContent = "";
97
- this.summary = "";
98
- this.$http.post(url,obj).then(res => {
99
- console.log('regeneration',res)
100
- if (res.data.data){
101
- this.summary = res.data.data.summary;
102
- this.recommendQuestions = res.data.data.recommendQuestions ? res.data.data.recommendQuestions.splice(0,5) : [];
103
- this.startTypingEffect();
104
- } else {
105
- this.$nextTick(() => {
106
- this.$emit('getSummarySuccess')
107
- })
108
- }
109
- this.isLoading = false;
110
- })
111
- },
112
- closeSummary(){
113
- this.$emit('closeSummary')
114
- },
115
- recommendQues(item){
116
- this.$emit('recommendQues',item,this.knowledgeId)
117
- },
118
- startTypingEffect() {
119
- let i = 0;
120
- const interval = setInterval(() => {
121
- if (i < this.summary.length) {
122
- this.typedContent += this.summary.charAt(i);
123
- i++;
124
- } else {
125
- clearInterval(interval);
126
- setTimeout(() => {
127
- this.$emit('getSummarySuccess')
128
- },240)
129
- }
130
- }, this.typingSpeed);
131
- },
132
- },
133
- mounted() {
134
- this.getKnowledgeSummary();
135
- }
136
- };
137
- </script>
138
-
139
- <style scoped lang="less">
140
- .intelligentSummary{
141
- background-color: #ffffff;
142
- border-radius: 20px;
143
- border: 1px solid #366AFF;
144
- margin-bottom: 20px;
145
- .summaryHeader{
146
- display: flex;
147
- align-items: center;
148
- justify-content: space-between;
149
- padding: 14px 16px;
150
- font-size: 14px;
151
- .left{
152
- //display: flex;
153
- //align-items: center;
154
- color: #366aff;
155
- i{
156
- padding-right: 6px;
157
- }
158
- }
159
- .right{
160
- display: flex;
161
- align-items: center;
162
- color: #366aff;
163
- .regenerationBtn{
164
- height: 26px;
165
- background: #E9EFFF;
166
- border-radius: 12px;
167
- color: #366AFF;
168
- display: flex;
169
- align-items: center;
170
- justify-content: center;
171
- cursor: pointer;
172
- padding: 0 10px;
173
- margin-right: 10px;
174
- font-size: 12px;
175
- }
176
- i{
177
- cursor: pointer;
178
- font-size: 14px;
179
- }
180
- }
181
- }
182
- .summaryContent{
183
- line-height: 26px;
184
- padding: 0 16px 16px 16px;
185
- font-size: 14px;
186
- text-align: left;
187
- }
188
- .intelligentBottom{
189
- background: #F9FAFD;
190
- padding: 0 20px;
191
- border-bottom-left-radius: 20px;
192
- border-bottom-right-radius: 20px;
193
- display: flex;
194
- align-items: center;
195
- flex-wrap: wrap;
196
- .intelligentQues{
197
- height: 26px;
198
- display: flex;
199
- align-items: center;
200
- justify-content: center;
201
- padding: 0 8px;
202
- background: #E5EBFF;
203
- color: #366AFF;
204
- border-radius: 10px;
205
- margin-right: 5px;
206
- margin-top: 5px;
207
- margin-bottom: 5px;
208
- font-size: 12px;
209
- cursor: pointer;
210
- white-space: nowrap;
211
- }
212
- }
213
- ::-webkit-scrollbar{
214
- background-color: transparent;
215
- height: 6px;
216
- }
217
- }
218
- .float_intelligentSummary {
219
- position: absolute;
220
- z-index: 999;
221
- top: 60px;
222
- left: 16px;
223
- width: calc(100% - 32px);
224
- box-shadow: 0 0 10px rgba(0,0,0,.12);
225
- .summaryContent {
226
- max-height: 30vh;
227
- overflow-y: auto;
228
- }
229
- }
1
+ <template>
2
+ <div class="intelligentSummary" :class="tagIds.length != 0 ? 'float_intelligentSummary' : ''" id="intelligentSummary">
3
+ <div class="summaryHeader">
4
+ <div class="left">
5
+ <i class="iconfont guoran-tongyichicun-write-29-jiqiren"></i>
6
+ <span>智能摘要</span>
7
+ </div>
8
+ <div class="right">
9
+ <div class="regenerationBtn" @click="regeneration">
10
+ <template v-if="!isLoading">重新生成</template>
11
+ <template v-else>
12
+ <img
13
+ height="20px"
14
+ width="20px"
15
+ src="../assets/image/loading.gif"
16
+ alt
17
+ srcset
18
+ style="margin-right: 6px"
19
+ />
20
+ <span>生成中</span>
21
+ </template>
22
+ </div>
23
+ <i class="iconfont guoran-tongyichicun-shouqi" @click="closeSummary"></i>
24
+ </div>
25
+ </div>
26
+ <div class="summaryContent">
27
+ <span>{{ typedContent }}</span>
28
+ </div>
29
+ <div class="intelligentBottom" v-if="recommendQuestions.length > 0 && !formKnowledgeManagement">
30
+ <div class="intelligentQues"
31
+ v-for="(item,index) in recommendQuestions"
32
+ :key="index"
33
+ @click="recommendQues(item)"
34
+ >
35
+ {{ item }}
36
+ </div>
37
+ </div>
38
+ </div>
39
+ </template>
40
+
41
+ <script>
42
+ export default {
43
+ name: "intelligentSummary",
44
+ data(){
45
+ return{
46
+ summary:"",
47
+ recommendQuestions:[],
48
+ isLoading:false,
49
+ typedContent:"",
50
+ typingSpeed:20
51
+ }
52
+ },
53
+ props:{
54
+ knowledgeId:{
55
+ type:String
56
+ },
57
+ tagIds:{
58
+ type:Array,
59
+ default() {
60
+ return []
61
+ }
62
+ },
63
+ formKnowledgeManagement:{
64
+ type: Boolean,
65
+ default: false
66
+ }
67
+ },
68
+ methods:{
69
+ getKnowledgeSummary() {
70
+ let url = "/knowledge-api/knowledge/detail/" + this.knowledgeId;
71
+ this.typedContent = "";
72
+ this.summary = "";
73
+ this.$http.get(url).then(res => {
74
+ console.log('res',res)
75
+ if (res.data.data){
76
+ this.summary = res.data.data.summary;
77
+ this.recommendQuestions = res.data.data.recommendQuestions ? res.data.data.recommendQuestions.splice(0,5) : [];
78
+ if (!this.summary){
79
+ this.regeneration();
80
+ } else {
81
+ this.typedContent = this.summary;
82
+ }
83
+ }
84
+ this.$nextTick(() => {
85
+ this.$emit('getSummarySuccess')
86
+ })
87
+ })
88
+ },
89
+ regeneration(){
90
+ let url = "/knowledge-api/knowledge/analyze/summary";
91
+ let obj = {
92
+ "mainId": sessionStorage.getItem('_mainId') || localStorage.getItem('_mainId'),
93
+ "userId": sessionStorage.getItem('_uid') || localStorage.getItem('_uid'),
94
+ "knowledgeId": this.knowledgeId,
95
+ "async": false
96
+ }
97
+ this.isLoading = true;
98
+ this.typedContent = "";
99
+ this.summary = "";
100
+ this.$http.post(url,obj).then(res => {
101
+ console.log('regeneration',res)
102
+ if (res.data.data){
103
+ this.summary = res.data.data.summary;
104
+ this.recommendQuestions = res.data.data.recommendQuestions ? res.data.data.recommendQuestions.splice(0,5) : [];
105
+ this.startTypingEffect();
106
+ } else {
107
+ this.$nextTick(() => {
108
+ this.$emit('getSummarySuccess')
109
+ })
110
+ }
111
+ this.isLoading = false;
112
+ })
113
+ },
114
+ closeSummary(){
115
+ this.$emit('closeSummary')
116
+ },
117
+ recommendQues(item){
118
+ this.$emit('recommendQues',item,this.knowledgeId)
119
+ },
120
+ startTypingEffect() {
121
+ let i = 0;
122
+ const interval = setInterval(() => {
123
+ if (i < this.summary.length) {
124
+ this.typedContent += this.summary.charAt(i);
125
+ i++;
126
+ } else {
127
+ clearInterval(interval);
128
+ setTimeout(() => {
129
+ this.$emit('getSummarySuccess')
130
+ },240)
131
+ }
132
+ }, this.typingSpeed);
133
+ },
134
+ },
135
+ mounted() {
136
+ this.getKnowledgeSummary();
137
+ }
138
+ };
139
+ </script>
140
+
141
+ <style scoped lang="less">
142
+ .intelligentSummary{
143
+ background-color: #ffffff;
144
+ border-radius: 20px;
145
+ border: 1px solid #366AFF;
146
+ margin-bottom: 20px;
147
+ .summaryHeader{
148
+ display: flex;
149
+ align-items: center;
150
+ justify-content: space-between;
151
+ padding: 14px 16px;
152
+ font-size: 14px;
153
+ .left{
154
+ //display: flex;
155
+ //align-items: center;
156
+ color: #366aff;
157
+ i{
158
+ padding-right: 6px;
159
+ }
160
+ }
161
+ .right{
162
+ display: flex;
163
+ align-items: center;
164
+ color: #366aff;
165
+ .regenerationBtn{
166
+ height: 26px;
167
+ background: #E9EFFF;
168
+ border-radius: 12px;
169
+ color: #366AFF;
170
+ display: flex;
171
+ align-items: center;
172
+ justify-content: center;
173
+ cursor: pointer;
174
+ padding: 0 10px;
175
+ margin-right: 10px;
176
+ font-size: 12px;
177
+ }
178
+ i{
179
+ cursor: pointer;
180
+ font-size: 14px;
181
+ }
182
+ }
183
+ }
184
+ .summaryContent{
185
+ line-height: 26px;
186
+ padding: 0 16px 16px 16px;
187
+ font-size: 14px;
188
+ text-align: left;
189
+ }
190
+ .intelligentBottom{
191
+ background: #F9FAFD;
192
+ padding: 0 20px;
193
+ border-bottom-left-radius: 20px;
194
+ border-bottom-right-radius: 20px;
195
+ display: flex;
196
+ align-items: center;
197
+ flex-wrap: wrap;
198
+ .intelligentQues{
199
+ height: 26px;
200
+ display: flex;
201
+ align-items: center;
202
+ justify-content: center;
203
+ padding: 0 8px;
204
+ background: #E5EBFF;
205
+ color: #366AFF;
206
+ border-radius: 10px;
207
+ margin-right: 5px;
208
+ margin-top: 5px;
209
+ margin-bottom: 5px;
210
+ font-size: 12px;
211
+ cursor: pointer;
212
+ white-space: nowrap;
213
+ }
214
+ }
215
+ ::-webkit-scrollbar{
216
+ background-color: transparent;
217
+ height: 6px;
218
+ }
219
+ }
220
+ .float_intelligentSummary {
221
+ position: absolute;
222
+ z-index: 999;
223
+ top: 60px;
224
+ left: 16px;
225
+ width: calc(100% - 32px);
226
+ box-shadow: 0 0 10px rgba(0,0,0,.12);
227
+ .summaryContent {
228
+ max-height: 30vh;
229
+ overflow-y: auto;
230
+ }
231
+ }
230
232
  </style>