askbot-dragon 1.7.34-beta → 1.7.35-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 -54
  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 -94
  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 +1111 -1068
  23. package/src/components/AnswerVoice.vue +285 -285
  24. package/src/components/AskIFrame.vue +15 -15
  25. package/src/components/ConversationContainer.vue +10764 -10960
  26. package/src/components/FileType.vue +86 -86
  27. package/src/components/Message.vue +27 -27
  28. package/src/components/MyEditor.vue +342 -350
  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 +204 -204
  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 -228
  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 -3507
  48. package/src/components/imgView.vue +32 -0
  49. package/src/components/intelligentSummary.vue +231 -227
  50. package/src/components/kkview.vue +1138 -1138
  51. package/src/components/loadingProcess.vue +164 -164
  52. package/src/components/markDownText.vue +198 -0
  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 -1334
  65. package/src/components/popup.vue +227 -227
  66. package/src/components/preview/docView.vue +107 -0
  67. package/src/components/preview/excelView.vue +160 -0
  68. package/src/components/preview/newPositionPreview.vue +285 -0
  69. package/src/components/preview/pdfView.vue +737 -0
  70. package/src/components/previewDoc.vue +251 -247
  71. package/src/components/previewPdf.vue +822 -779
  72. package/src/components/receiverMessagePlatform.vue +65 -65
  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 -50
  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 -82
  83. package/src/components/utils/ckeditor.js +185 -174
  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 +72 -0
  92. package/src/locales/en.json +73 -0
  93. package/src/locales/jp.json +73 -0
  94. package/src/main.js +75 -57
  95. package/vue.config.js +54 -54
@@ -0,0 +1,160 @@
1
+ <template>
2
+ <div class="excelView">
3
+ <table border="1" v-if="false">
4
+ <thead>
5
+ <tr>
6
+ <th v-for="(person2,index2) in headerArray" :key="index2">{{person2}}</th>
7
+ </tr>
8
+ </thead>
9
+ <tbody>
10
+ <tr v-for="(person, index) in rowDataList" :key="index" :id="person.id">
11
+ <td v-for="(person2,index2) in headerArray" :key="index2">
12
+ {{person[person2]}}
13
+ </td>
14
+ </tr>
15
+ </tbody>
16
+ </table>
17
+ <el-table
18
+ :data="pagedData"
19
+ border
20
+ ref="table"
21
+ :row-key="getRowKey"
22
+ :row-class-name="tableRowClassName"
23
+ height="100%"
24
+ style="width: 100%">
25
+ <template v-for="(item,index) in headerArray">
26
+ <el-table-column
27
+ :label="item"
28
+ :key="index"
29
+ min-width="100">
30
+ <template slot-scope="scope">
31
+ {{scope.row[item]}}
32
+ </template>
33
+ </el-table-column>
34
+ </template>
35
+ </el-table>
36
+ <pagination-page :pageSize="pageSize" :currentPage="currentPage" :total="rowDataList.length" @currentChange="handleCurrentChange"></pagination-page>
37
+ </div>
38
+ </template>
39
+
40
+ <script>
41
+
42
+ import PaginationPage from "../pagination";
43
+ export default {
44
+ name: "excelView",
45
+ components: { PaginationPage },
46
+ data(){
47
+ return{
48
+ rowData:[
49
+ {
50
+ "row_id": "659164be-19bd-4fd7-a47d-b04c3dbbfa6f",
51
+ "row_data_md": "| 王明宇 | 27 | 189 |",
52
+ "row_number": 2,
53
+ "table_html": "<table border='1' style='border-collapse:collapse;'><thead><tr><th>姓名1</th><th>年龄</th><th>身高</th></tr></thead><tbody><tr><td>王明宇</td><td>27</td><td>189</td></tr></tbody></table>"
54
+ },
55
+ {
56
+ "row_id": "fac98d6a-2580-4f62-8f50-61521debeeef",
57
+ "row_data_md": "| 老王 | 38 | 178 |",
58
+ "row_number": 3,
59
+ "table_html": "<table border='1' style='border-collapse:collapse;'><thead><tr><th>姓名1</th><th>年龄</th><th>身高</th></tr></thead><tbody><tr><td>老王</td><td>38</td><td>178</td></tr></tbody></table>"
60
+ },
61
+ ],
62
+ rowDataList:[],
63
+ headerArray:[],
64
+ currentPage:1,
65
+ pageSize:20
66
+ }
67
+ },
68
+ props:{
69
+ headerData:{
70
+ type:String,
71
+ default:""
72
+ },
73
+ excelRowList:{
74
+ type:Array,
75
+ default(){
76
+ return []
77
+ }
78
+ },
79
+ tableChunkData:{
80
+ type:Array,
81
+ default(){
82
+ return [{
83
+ "sheet_name": null,
84
+ "table_md": null,
85
+ "tableChunkText": "| 序号 | 电子色片 | 旧色号 | 颜色名称 | R68-Y32 17w77b06c L32-1 | 新 | 色卡页码 | -ICN色号 | R | G | B | C | M | Y | | 154 | 22 | B99-G01 81w11b08c L88-4 | OW060-4 | | 雪蓝 | 蓝色系 | 210 | 218 | 223 | 5.5761039841401502E-2 | 2.08606534553369E-2 | 0 | 0.12603452469972801 |",
86
+ "tableChunkId": "5e80ff30-ea7e-4c47-878b-59d9b1c833ce",
87
+ "tableId": null
88
+ }]
89
+ }
90
+ }
91
+ },
92
+ computed:{
93
+ pagedData() {
94
+ const start = (this.currentPage - 1) * this.pageSize;
95
+ const end = start + this.pageSize;
96
+ return this.rowDataList.slice(start, end);
97
+ }
98
+ },
99
+ methods:{
100
+ tableRowData(){
101
+ const headerString = this.headerData.trim().replace(/^\||\|$/g, '');
102
+
103
+ // 使用竖线作为分隔符来分割字符串
104
+ const headerArray = headerString.split('|').map(item => item.trim());
105
+ this.headerArray = headerArray
106
+ for (let i =0;i<this.excelRowList.length;i++){
107
+ // 去除字符串两端的竖线(如果它们存在的话)
108
+ const trimmedString = this.excelRowList[i].row_data_md.trim().replace(/^\||\|$/g, '');
109
+
110
+ // 使用竖线作为分隔符来分割字符串
111
+ const resultArray = trimmedString.split('|').map(item => item.trim());
112
+ let obj = {}
113
+ for (let j=0;j<headerArray.length;j++){
114
+ this.$set(obj,headerArray[j],resultArray[j])
115
+ this.$set(obj,'id',this.excelRowList[i].row_id)
116
+ }
117
+ this.rowDataList.push(obj);
118
+ }
119
+ setTimeout(() => {
120
+ let dom = document.getElementById('659164be-19bd-4fd7-a47d-b04c3dbbfa6f');
121
+ if (dom){
122
+ dom.style.backgroundColor = 'red'
123
+ }
124
+ },1000)
125
+ },
126
+ getRowKey(row){
127
+ return row.id
128
+ },
129
+ tableRowClassName({ row }){
130
+ let id = this.tableChunkData.filter(item => item.tableChunkId == row.id);
131
+ if (id && id.length > 0){
132
+ return 'setBgClass'
133
+ }
134
+ },
135
+ scrollToRow(rowId) {
136
+ this.$nextTick(() => {
137
+ const row = this.rowDataList.find(row => row.id === rowId);
138
+ if (row) {
139
+ this.$refs.table.setCurrentRow(row);
140
+ }
141
+ });
142
+ },
143
+ handleCurrentChange(val){
144
+ this.currentPage = val;
145
+ }
146
+ },
147
+ mounted() {
148
+ this.tableRowData();
149
+ }
150
+ };
151
+ </script>
152
+
153
+ <style scoped lang="less">
154
+ .excelView{
155
+ height: 100%;
156
+ /deep/.setBgClass{
157
+ background-color: #366aff!important;
158
+ }
159
+ }
160
+ </style>
@@ -0,0 +1,285 @@
1
+ <template>
2
+ <div class="positionView">
3
+ <div class="positionContainer" :class="splitParagraph.length > 1 && fileType !== 'XLS' && fileType !== 'XLSX' ? 'has-footer' : 'no-footer'">
4
+ <doc-view
5
+ v-if="fileType === 'TXT' || fileType === 'DOCX' || fileType === 'DOC'"
6
+ :html_result="html_result"
7
+ :split_paragraphs="splitParagraph"
8
+ ref="docView"
9
+ ></doc-view>
10
+ <excel-view v-else-if="fileType === 'XLS' || fileType === 'XLSX'"
11
+ ref="excelView"
12
+ :headerData="excelHeaderData"
13
+ :excelRowList="excelRowList"
14
+ :tableChunkData="tableChunkData"
15
+ ></excel-view>
16
+ <pdf-view v-else-if="fileType === 'PDF'" ref="pdfView" :split_paragraphs="splitParagraph" :ossPath="url"></pdf-view>
17
+ </div>
18
+ <template v-if="splitParagraph.length > 1 && fileType !== 'XLS' && fileType !== 'XLSX'">
19
+ <div class="btn_footer" v-if="!isPC">
20
+ <div class="prev" @click="prev">上一段</div>
21
+ <div class="next" @click="next">下一段</div>
22
+ </div>
23
+ <div id="pagination" v-if="isPC">
24
+ <el-pagination :current-page="currentPage + 1" @current-change="currentChange" @prev-click="prev"
25
+ @next-click="next" layout="slot, prev, pager, next" :page-size="1" :total="splitParagraph.length">
26
+ <span class="total-class">答案由{{ splitParagraph.length }}段内容生成</span>
27
+ </el-pagination>
28
+ </div>
29
+ </template>
30
+ </div>
31
+ </template>
32
+
33
+ <script>
34
+ import DocView from "./docView";
35
+ import ExcelView from "./excelView";
36
+ import PdfView from "./pdfView";
37
+ export default {
38
+ name: "newPositionPreview",
39
+ components: { PdfView, ExcelView, DocView },
40
+ data(){
41
+ return{
42
+ tagId:[],
43
+ newVersion:false,
44
+ html_result:"",
45
+ parseInfo:{},
46
+ fileType:"",
47
+ splitParagraph:[],
48
+ isPC:true,
49
+ currentPage:0,
50
+ excelHeaderData:"",
51
+ excelRowList:[],
52
+ tableChunkData:[]
53
+
54
+ }
55
+ },
56
+ props:{
57
+ knowledgeId:{
58
+ type:String,
59
+ default:""
60
+ },
61
+ tagIds:{
62
+ type:Array,
63
+ default(){
64
+ return []
65
+ }
66
+ },
67
+ url:{
68
+ type:String,
69
+ default:""
70
+ }
71
+ },
72
+ methods:{
73
+ getLocationInfo(){
74
+ this.$http.get('/knowledge-api/knowledge/knowledge-part-location-info/list?ids=' + this.tagIds.join(',')).then(res => {
75
+ if (res.data.code == 0){
76
+ if (res.data.data && res.data.data.length){
77
+ for (let i=0;i<res.data.data.length;i++){
78
+ if (res.data.data[i].paragraphChunkInfo && res.data.data[i].paragraphChunkInfo.splitParagraph){
79
+ this.splitParagraph.push(res.data.data[i].paragraphChunkInfo.splitParagraph)
80
+ }
81
+ if (res.data.data[i].paragraphChunkInfo && res.data.data[i].paragraphChunkInfo.tableChunkData){
82
+ this.tableChunkData = this.tableChunkData.push(res.data.data[i].paragraphChunkInfo.tableChunkData)
83
+ }
84
+ }
85
+ }
86
+ }
87
+ this.getParseInfo();
88
+ })
89
+ },
90
+ getParseInfo(){
91
+ let url = '/knowledge-api/correction/knowledge-parse-info/' + '676508fc78aea6034e0d4bd6';
92
+ this.$http.get(url).then(res => {
93
+ console.log('getParseInfo',res)
94
+ if (res.data.code == 0 && res.data.data){
95
+ this.parseInfo = res.data.data;
96
+ if (res.data.data.extractChunkInfo && res.data.data.extractChunkInfo.docChunkData){
97
+ this.html_result = res.data.data.extractChunkInfo.docChunkData.html_result;
98
+ }
99
+ if (res.data.data.extractChunkInfo && res.data.data.extractChunkInfo.tableChunkData && res.data.data.extractChunkInfo.tableChunkData.length > 0){
100
+ this.excelHeaderData = res.data.data.extractChunkInfo.tableChunkData[0].table_md.table_header;
101
+ this.excelRowList = res.data.data.extractChunkInfo.tableChunkData[0].table_md.table_data;
102
+ }
103
+ this.fileType = res.data.data.fileType
104
+ }
105
+ if (this.fileType === 'XLS' || this.fileType === 'XLSX'){
106
+ let dom = document.getElementById('drawer_content_pre');
107
+ dom.style.height = 'calc(100% - 90px)'
108
+ }
109
+ })
110
+ },
111
+ currentChange (value) {
112
+ this.currentPage = value - 1;
113
+ this.scrollToParagraph()
114
+ },
115
+ prev(){
116
+ this.currentPage--;
117
+ this.scrollToParagraph()
118
+ },
119
+ next(){
120
+ this.currentPage++;
121
+ this.scrollToParagraph()
122
+ },
123
+ scrollToParagraph(){
124
+ if (this.fileType == 'PDF') {
125
+ this.$refs.pdfView.jumpToHighlight(this.currentPage)
126
+ } else if (this.fileType == 'DOC' || this.fileType == 'DOCX' || this.fileType == 'TXT'){
127
+ if (this.splitParagraph[this.currentPage] && this.splitParagraph[this.currentPage].original_paragraph){
128
+ const id = this.splitParagraph[this.currentPage].original_paragraph[0].paragraph_id;
129
+ const dom = document.getElementById(id);
130
+ if (dom){
131
+ dom.scrollIntoView({ behavior: 'smooth' });
132
+ }
133
+ }
134
+ }
135
+ }
136
+ },
137
+ mounted() {
138
+ this.getLocationInfo();
139
+ if (/(iPhone|iPad|iPod|iOS|Android)/i.test(navigator.userAgent)) {
140
+ this.isPC = false
141
+ } else {
142
+ this.isPC = true
143
+ }
144
+ }
145
+ };
146
+ </script>
147
+
148
+ <style scoped lang="less">
149
+ .positionView{
150
+ height: 100%;
151
+ .has-footer{
152
+ height: calc(100% - 60px);
153
+ }
154
+ .no-footer{
155
+ height: 100%;
156
+ }
157
+ .btn_footer {
158
+ width: 100%;
159
+ height: 60px;
160
+ display: flex;
161
+ align-items: center;
162
+ justify-content: space-around;
163
+ position: absolute;
164
+ bottom: 0px;
165
+ left: 0;
166
+ z-index: 999;
167
+ background: #ffffff;
168
+
169
+ .prev,
170
+ .next {
171
+ width: 35%;
172
+ height: 40px;
173
+ display: flex;
174
+ align-items: center;
175
+ justify-content: center;
176
+ border-radius: 50px;
177
+ cursor: pointer;
178
+ }
179
+
180
+ .prev {
181
+ background: #F2F5FA;
182
+ color: #000;
183
+ }
184
+
185
+ .next {
186
+ background: #366aff;
187
+ color: #ffffff;
188
+ }
189
+ }
190
+ #pagination {
191
+ .total-class {
192
+ margin-right: 13px;
193
+ font-weight: 400;
194
+ }
195
+
196
+ position: absolute;
197
+ bottom: 0px;
198
+ right: 0;
199
+ width: 100%;
200
+ display: flex;
201
+ align-items: center;
202
+ justify-content: center;
203
+ height: 50px;
204
+ background-color: white;
205
+ box-shadow: 0px 0px 18px 0px rgba(29, 55, 129, 0.07);
206
+ border-radius: 5px;
207
+ z-index: 1000;
208
+
209
+
210
+
211
+ /deep/.el-pagination {
212
+ margin-right: 110px;
213
+ }
214
+
215
+ /deep/.el-pager {
216
+ background: #EDF0F6;
217
+ border-radius: 15px;
218
+ }
219
+
220
+ /deep/.el-pagination.is-background .btn-next {
221
+ width: 30px;
222
+ height: 30px;
223
+ background: #EDF0F6;
224
+ border-radius: 50%;
225
+ }
226
+
227
+ /deep/.el-pagination .btn-next {
228
+ width: 30px;
229
+ height: 30px;
230
+ background: #EDF0F6;
231
+ border-radius: 50%;
232
+ padding-left: 0;
233
+ margin-left: 5px;
234
+ }
235
+
236
+ /deep/.el-pagination .btn-prev {
237
+ width: 30px;
238
+ height: 30px;
239
+ background: #EDF0F6;
240
+ border-radius: 50%;
241
+ padding-right: 0;
242
+ margin-right: 5px;
243
+ }
244
+
245
+ /deep/.el-pagination button {
246
+ padding: 0;
247
+ min-width: 30px;
248
+ }
249
+
250
+ /deep/.el-pager li {
251
+ background: #EDF0F6;
252
+ height: 30px;
253
+ min-width: 30px;
254
+ line-height: 30px;
255
+ font-size: 12px;
256
+ color: #717b90;
257
+ }
258
+
259
+ /deep/.el-pager li:first-child {
260
+ border-bottom-left-radius: 15px !important;
261
+ border-top-left-radius: 15px !important;
262
+ }
263
+
264
+ /deep/.el-pager li:last-child {
265
+ border-top-right-radius: 15px !important;
266
+ border-bottom-right-radius: 15px !important;
267
+ }
268
+
269
+ /deep/.el-pager li.active {
270
+ width: 30px;
271
+ height: 30px;
272
+ min-width: 30px;
273
+ background: #366AFF;
274
+ border: 3px solid #A1B9FF;
275
+ border-radius: 50%;
276
+ line-height: 24px;
277
+ color: white;
278
+ }
279
+
280
+ /deep/.el-pagination.is-background .el-pager li:not(.disabled).active {
281
+ background: #366AFF;
282
+ }
283
+ }
284
+ }
285
+ </style>