askbot-dragon 1.7.65-beta → 1.7.67-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 +57 -57
  5. package/public/index.html +73 -73
  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 -141
  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 -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 +178 -178
  21. package/src/components/AiGuide.vue +434 -434
  22. package/src/components/AnswerDocknowledge.vue +1203 -1203
  23. package/src/components/AnswerVoice.vue +285 -285
  24. package/src/components/AskIFrame.vue +15 -15
  25. package/src/components/ConversationContainer.vue +10764 -10764
  26. package/src/components/FileType.vue +86 -86
  27. package/src/components/Message.vue +27 -27
  28. package/src/components/MyEditor.vue +342 -342
  29. package/src/components/QwFeedback.vue +302 -302
  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 +259 -259
  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 -162
  38. package/src/components/assetDetails.vue +378 -378
  39. package/src/components/assetMessage.vue +229 -229
  40. package/src/components/associationIntention.vue +378 -378
  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 +3512 -3512
  48. package/src/components/imgView.vue +31 -31
  49. package/src/components/intelligentSummary.vue +234 -234
  50. package/src/components/kkview.vue +1138 -1138
  51. package/src/components/loadingProcess.vue +164 -164
  52. package/src/components/markDownText.vue +357 -357
  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 -928
  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 +73 -73
  62. package/src/components/newPdfPosition.vue +877 -877
  63. package/src/components/pagination.vue +128 -128
  64. package/src/components/pdfPosition.vue +1523 -1523
  65. package/src/components/popup.vue +228 -228
  66. package/src/components/preview/docView.vue +113 -113
  67. package/src/components/preview/excelView.vue +190 -190
  68. package/src/components/preview/newPositionPreview.vue +384 -369
  69. package/src/components/preview/pdfView.vue +824 -824
  70. package/src/components/previewDoc.vue +252 -252
  71. package/src/components/previewPdf.vue +1087 -1087
  72. package/src/components/receiverMessagePlatform.vue +69 -69
  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 +58 -58
  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 +347 -347
  89. package/src/components/welcomeLlmCard.vue +144 -144
  90. package/src/components/welcomeSuggest.vue +97 -97
  91. package/src/locales/cn.json +95 -95
  92. package/src/locales/en.json +95 -95
  93. package/src/locales/jp.json +72 -72
  94. package/src/main.js +76 -76
  95. package/vue.config.js +54 -54
@@ -1,253 +1,253 @@
1
- <!-- preview-document
2
- 组件主要负责 富文本中配置的链接,图片 及上传附件下的附件列表中的单纯预览
3
- 走的是kkview项目预览或者iframe直接打开文件地址,不对预览文件解析不包含其他功能开发
4
- -->
5
- <template>
6
-
7
- <div class="previewDoc">
8
- <div class="footer">
9
- <span>查看详情</span>
10
- <section @click="close">
11
- <i class="iconfont guoran-shanchu"></i>
12
- </section>
13
- </div>
14
- <!-- <div v-if="fileType == 'VIDEO'" style="width: 100%;height: calc(100% - 70px)">
15
- <video :src="url" controls width="100%;" height="98%"></video>
16
- </div>
17
- <template v-else-if="url.includes('https://www') || url.includes('http://www')">
18
- <iframe class="preview_iframe"
19
- :src="url"
20
- width="100%"
21
- height="100%"
22
- scrolling="100%"
23
- frameborder="no"
24
- border="0"></iframe>
25
- </template>
26
- <template v-else>
27
- <iframe class="preview_iframe" :src="previewUrl" style="border:none;"></iframe>
28
- </template> -->
29
- <div v-show="fileType == 'VIDEO'" style="width: 100%;height: calc(100% - 70px)">
30
- <video :src="url" controls width="100%;" height="98%"></video>
31
- </div>
32
- <div style="width: 100%;height: calc(100% - 70px)" v-show="fileType !== 'VIDEO' && fileType !== 'OTHER' && (url.includes('https://www') || url.includes('http://www'))">
33
- <iframe class="preview_iframe"
34
- :src="fileType !== 'VIDEO' && fileType !== 'OTHER' && (url.includes('https://www') || url.includes('http://www')) ? url : ''"
35
- width="100%"
36
- height="100%"
37
- scrolling="100%"
38
- frameborder="no"
39
- border="0"></iframe>
40
- </div>
41
- <div style="width: 100%;height: calc(100% - 70px)" v-show="fileType == 'OTHER' && !url.includes('https://www') && !url.includes('http://www')">
42
- <iframe class="preview_iframe" :src="previewUrl" style="border:none;"></iframe>
43
- </div>
44
- <div class="onload_btn" @click="downLoad">
45
- 下载
46
- </div>
47
- <div id="text">
48
- {{ copy }}
49
- </div>
50
- </div>
51
- </template>
52
-
53
- <script>
54
- import { Toast } from 'vant';
55
- import { isMobile } from "../assets/js/common";
56
-
57
- export default {
58
- data () {
59
- return {
60
- previewShowPopup: false,
61
- title:'工单附件',
62
- copy:''
63
- }
64
- },
65
- props: {
66
- url: {
67
- type: String,
68
- required: true,
69
- },
70
- officePreviewType: {
71
- type: String,
72
- default: ''
73
- },
74
- language:{
75
- type:String,
76
- default:"cn"
77
- }
78
- },
79
- computed: {
80
- previewUrl () {
81
- let url = process.env.VUE_APP_ENV === 'production' ? 'https://kkfileview.askbot.cn/onlinePreview?url=' : 'https://test.open.askbot.cn/kkfileview/onlinePreview?url='
82
- if (this.url != '') {
83
- // if (/[\u4E00-\u9FA5]+/g.test(this.url)) {
84
- // url += btoa(encodeURIComponent(this.url))
85
- // } else {
86
- // url += btoa(this.url)
87
- // }
88
- // url += '&encodeURIComponent=true'
89
- if(decodeURIComponent(this.url) == this.url) {
90
- url += btoa(encodeURIComponent(this.url))
91
- url += '&encodeURIComponent=true'
92
- } else {
93
- url += btoa(encodeURIComponent(decodeURIComponent(this.url)))
94
- url += '&encodeURIComponent=true'
95
- }
96
- }
97
- return url
98
- },
99
- fileType () {
100
- const fileType = this.url.substring(this.url.lastIndexOf('.'));
101
- if (fileType === '.mp4' || fileType === '.MP4' || fileType === '.MOV' || fileType === '.mov') {
102
- return 'VIDEO'
103
- } else if(fileType === '.html' || fileType === '.HTML') {
104
- return 'HTML'
105
- } else {
106
- return 'OTHER'
107
- }
108
-
109
- }
110
- },
111
- methods: {
112
- close () {
113
- this.$emit('close')
114
- },
115
- loadIframe (item) {
116
- let iframe = document.getElementsByClassName('preview_iframe')[0]
117
- iframe.onload(() => {
118
- iframe.contentWindow.postMessage({
119
- type: "positionText",
120
- data: item.text,
121
- page: item.page
122
- }, '*')
123
- })
124
- // if(preview) {
125
- // preview.postMessage({
126
- // type: "positionText",
127
- // data: ``
128
- // }, '*')
129
- // }
130
- },
131
- downLoad () {
132
- let url = this.url
133
- if (decodeURIComponent(url) != url) {
134
- url = decodeURIComponent(url)
135
- }
136
- const fileType = url.substring(url.lastIndexOf('.'));
137
- this.$http.post('/knowledge-api/temporary-certificate/or-origin?expired=10', url, {
138
- headers:{
139
- "Content-Type": "application/json",
140
- }
141
- }).then(res => {
142
- if (res.data) {
143
- if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
144
- this.copy = res.data
145
- if(isMobile()) {
146
- setTimeout(() =>{
147
- const range = document.createRange();
148
- range.selectNode(document.getElementById('text'));
149
- const selection = window.getSelection();
150
- //移除之前选中内容
151
- if (selection.rangeCount > 0) selection.removeAllRanges();
152
- selection.addRange(range);
153
- document.execCommand('copy');
154
- selection.removeAllRanges()
155
- Toast('下载地址已复制,请前往Safari浏览器访问下载');
156
- this.close()
157
- },100)
158
- } else {
159
- navigator.clipboard.writeText(res.data)
160
- this.$message.success({
161
- message:'下载地址已复制,请前往Safari浏览器访问下载',
162
- })
163
- }
164
- return
165
- } else {
166
- // setTimeout(() =>{
167
- // window.open(res.data,'下载', 'noopener')
168
- // }, 2000)
169
- // window.open(res.data,'下载', 'noopener')
170
- if(isMobile()) {
171
- const iframe = document.createElement("iframe");
172
- iframe.setAttribute("hidden", "hidden");
173
- iframe.onload = () => {
174
- if (iframe) {
175
- console.log("iframe onload....")
176
- iframe.setAttribute('src', 'about:blank');
177
- }
178
- };
179
- document.body.insertBefore(iframe, null);
180
- iframe.setAttribute("src", res.data);
181
- } else {
182
- let a = document.createElement('a')
183
- a.href = res.data
184
- a.download = (this.title) + fileType
185
- a.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }))
186
- }
187
- this.close()
188
- }
189
- }
190
- })
191
- }
192
- },
193
- mounted() {
194
- this.$i18n.locale = sessionStorage.getItem("systemLanguage") || 'cn';
195
- setTimeout(() =>{
196
- let previewIframe = document.getElementsByClassName('preview_iframe')
197
- Array.from(previewIframe).forEach(item =>{
198
- item.onload = () =>{
199
- item.style.backgroundImage = `url('')`
200
- }
201
- })
202
- })
203
- }
204
- }
205
- </script>
206
-
207
- <style lang="less" scoped>
208
- .previewDoc{
209
- height: 100%;
210
- position: relative;
211
- }
212
- .preview_iframe {
213
- width: 100%;
214
- height: calc(100% - 65px);
215
- overflow-y: scroll;
216
- background-image: url('https://guoranopen-zjk.oss-cn-zhangjiakou.aliyuncs.com/cdn-common/images/loading.gif');
217
- background-position: center;
218
- background-size: 50px;
219
- background-repeat: no-repeat;
220
- }
221
- .footer {
222
- width: calc(100% - 40px);
223
- height: 50px;
224
- display: flex;
225
- align-items: center;
226
- justify-content: space-between;
227
- cursor: pointer;
228
- padding: 0 20px;
229
- border-bottom: 1px solid #cccccc;
230
- }
231
- /deep/.el-drawer__body{
232
- height: 100%;
233
- }
234
- .onload_btn {
235
- position: absolute;
236
- left: 50%;
237
- transform: translateX(-50%);
238
- bottom: 40px;
239
- width: 200px;
240
- background-color: #366AFF;
241
- color: white;
242
- height: 48px;
243
- display: flex;
244
- align-items: center;
245
- justify-content: center;
246
- border-radius: 28px;
247
- cursor: pointer;
248
- z-index: 9999;
249
- i{
250
- margin-right: 8px;
251
- }
252
- }
1
+ <!-- preview-document
2
+ 组件主要负责 富文本中配置的链接,图片 及上传附件下的附件列表中的单纯预览
3
+ 走的是kkview项目预览或者iframe直接打开文件地址,不对预览文件解析不包含其他功能开发
4
+ -->
5
+ <template>
6
+
7
+ <div class="previewDoc">
8
+ <div class="footer">
9
+ <span>查看详情</span>
10
+ <section @click="close">
11
+ <i class="iconfont guoran-shanchu"></i>
12
+ </section>
13
+ </div>
14
+ <!-- <div v-if="fileType == 'VIDEO'" style="width: 100%;height: calc(100% - 70px)">
15
+ <video :src="url" controls width="100%;" height="98%"></video>
16
+ </div>
17
+ <template v-else-if="url.includes('https://www') || url.includes('http://www')">
18
+ <iframe class="preview_iframe"
19
+ :src="url"
20
+ width="100%"
21
+ height="100%"
22
+ scrolling="100%"
23
+ frameborder="no"
24
+ border="0"></iframe>
25
+ </template>
26
+ <template v-else>
27
+ <iframe class="preview_iframe" :src="previewUrl" style="border:none;"></iframe>
28
+ </template> -->
29
+ <div v-show="fileType == 'VIDEO'" style="width: 100%;height: calc(100% - 70px)">
30
+ <video :src="url" controls width="100%;" height="98%"></video>
31
+ </div>
32
+ <div style="width: 100%;height: calc(100% - 70px)" v-show="fileType !== 'VIDEO' && fileType !== 'OTHER' && (url.includes('https://www') || url.includes('http://www'))">
33
+ <iframe class="preview_iframe"
34
+ :src="fileType !== 'VIDEO' && fileType !== 'OTHER' && (url.includes('https://www') || url.includes('http://www')) ? url : ''"
35
+ width="100%"
36
+ height="100%"
37
+ scrolling="100%"
38
+ frameborder="no"
39
+ border="0"></iframe>
40
+ </div>
41
+ <div style="width: 100%;height: calc(100% - 70px)" v-show="fileType == 'OTHER' && !url.includes('https://www') && !url.includes('http://www')">
42
+ <iframe class="preview_iframe" :src="previewUrl" style="border:none;"></iframe>
43
+ </div>
44
+ <div class="onload_btn" @click="downLoad">
45
+ 下载
46
+ </div>
47
+ <div id="text">
48
+ {{ copy }}
49
+ </div>
50
+ </div>
51
+ </template>
52
+
53
+ <script>
54
+ import { Toast } from 'vant';
55
+ import { isMobile } from "../assets/js/common";
56
+
57
+ export default {
58
+ data () {
59
+ return {
60
+ previewShowPopup: false,
61
+ title:'工单附件',
62
+ copy:''
63
+ }
64
+ },
65
+ props: {
66
+ url: {
67
+ type: String,
68
+ required: true,
69
+ },
70
+ officePreviewType: {
71
+ type: String,
72
+ default: ''
73
+ },
74
+ language:{
75
+ type:String,
76
+ default:"cn"
77
+ }
78
+ },
79
+ computed: {
80
+ previewUrl () {
81
+ let url = process.env.VUE_APP_ENV === 'production' ? 'https://kkfileview.askbot.cn/onlinePreview?url=' : 'https://test.open.askbot.cn/kkfileview/onlinePreview?url='
82
+ if (this.url != '') {
83
+ // if (/[\u4E00-\u9FA5]+/g.test(this.url)) {
84
+ // url += btoa(encodeURIComponent(this.url))
85
+ // } else {
86
+ // url += btoa(this.url)
87
+ // }
88
+ // url += '&encodeURIComponent=true'
89
+ if(decodeURIComponent(this.url) == this.url) {
90
+ url += btoa(encodeURIComponent(this.url))
91
+ url += '&encodeURIComponent=true'
92
+ } else {
93
+ url += btoa(encodeURIComponent(decodeURIComponent(this.url)))
94
+ url += '&encodeURIComponent=true'
95
+ }
96
+ }
97
+ return url
98
+ },
99
+ fileType () {
100
+ const fileType = this.url.substring(this.url.lastIndexOf('.'));
101
+ if (fileType === '.mp4' || fileType === '.MP4' || fileType === '.MOV' || fileType === '.mov') {
102
+ return 'VIDEO'
103
+ } else if(fileType === '.html' || fileType === '.HTML') {
104
+ return 'HTML'
105
+ } else {
106
+ return 'OTHER'
107
+ }
108
+
109
+ }
110
+ },
111
+ methods: {
112
+ close () {
113
+ this.$emit('close')
114
+ },
115
+ loadIframe (item) {
116
+ let iframe = document.getElementsByClassName('preview_iframe')[0]
117
+ iframe.onload(() => {
118
+ iframe.contentWindow.postMessage({
119
+ type: "positionText",
120
+ data: item.text,
121
+ page: item.page
122
+ }, '*')
123
+ })
124
+ // if(preview) {
125
+ // preview.postMessage({
126
+ // type: "positionText",
127
+ // data: ``
128
+ // }, '*')
129
+ // }
130
+ },
131
+ downLoad () {
132
+ let url = this.url
133
+ if (decodeURIComponent(url) != url) {
134
+ url = decodeURIComponent(url)
135
+ }
136
+ const fileType = url.substring(url.lastIndexOf('.'));
137
+ this.$http.post('/knowledge-api/temporary-certificate/or-origin?expired=10', url, {
138
+ headers:{
139
+ "Content-Type": "application/json",
140
+ }
141
+ }).then(res => {
142
+ if (res.data) {
143
+ if (/(iPhone|iPad|iPod|iOS)/i.test(navigator.userAgent)) {
144
+ this.copy = res.data
145
+ if(isMobile()) {
146
+ setTimeout(() =>{
147
+ const range = document.createRange();
148
+ range.selectNode(document.getElementById('text'));
149
+ const selection = window.getSelection();
150
+ //移除之前选中内容
151
+ if (selection.rangeCount > 0) selection.removeAllRanges();
152
+ selection.addRange(range);
153
+ document.execCommand('copy');
154
+ selection.removeAllRanges()
155
+ Toast('下载地址已复制,请前往Safari浏览器访问下载');
156
+ this.close()
157
+ },100)
158
+ } else {
159
+ navigator.clipboard.writeText(res.data)
160
+ this.$message.success({
161
+ message:'下载地址已复制,请前往Safari浏览器访问下载',
162
+ })
163
+ }
164
+ return
165
+ } else {
166
+ // setTimeout(() =>{
167
+ // window.open(res.data,'下载', 'noopener')
168
+ // }, 2000)
169
+ // window.open(res.data,'下载', 'noopener')
170
+ if(isMobile()) {
171
+ const iframe = document.createElement("iframe");
172
+ iframe.setAttribute("hidden", "hidden");
173
+ iframe.onload = () => {
174
+ if (iframe) {
175
+ console.log("iframe onload....")
176
+ iframe.setAttribute('src', 'about:blank');
177
+ }
178
+ };
179
+ document.body.insertBefore(iframe, null);
180
+ iframe.setAttribute("src", res.data);
181
+ } else {
182
+ let a = document.createElement('a')
183
+ a.href = res.data
184
+ a.download = (this.title) + fileType
185
+ a.dispatchEvent(new MouseEvent('click', { bubbles: true, cancelable: true, view: window }))
186
+ }
187
+ this.close()
188
+ }
189
+ }
190
+ })
191
+ }
192
+ },
193
+ mounted() {
194
+ this.$i18n.locale = sessionStorage.getItem("systemLanguage") || 'cn';
195
+ setTimeout(() =>{
196
+ let previewIframe = document.getElementsByClassName('preview_iframe')
197
+ Array.from(previewIframe).forEach(item =>{
198
+ item.onload = () =>{
199
+ item.style.backgroundImage = `url('')`
200
+ }
201
+ })
202
+ })
203
+ }
204
+ }
205
+ </script>
206
+
207
+ <style lang="less" scoped>
208
+ .previewDoc{
209
+ height: 100%;
210
+ position: relative;
211
+ }
212
+ .preview_iframe {
213
+ width: 100%;
214
+ height: calc(100% - 65px);
215
+ overflow-y: scroll;
216
+ background-image: url('https://guoranopen-zjk.oss-cn-zhangjiakou.aliyuncs.com/cdn-common/images/loading.gif');
217
+ background-position: center;
218
+ background-size: 50px;
219
+ background-repeat: no-repeat;
220
+ }
221
+ .footer {
222
+ width: calc(100% - 40px);
223
+ height: 50px;
224
+ display: flex;
225
+ align-items: center;
226
+ justify-content: space-between;
227
+ cursor: pointer;
228
+ padding: 0 20px;
229
+ border-bottom: 1px solid #cccccc;
230
+ }
231
+ /deep/.el-drawer__body{
232
+ height: 100%;
233
+ }
234
+ .onload_btn {
235
+ position: absolute;
236
+ left: 50%;
237
+ transform: translateX(-50%);
238
+ bottom: 40px;
239
+ width: 200px;
240
+ background-color: #366AFF;
241
+ color: white;
242
+ height: 48px;
243
+ display: flex;
244
+ align-items: center;
245
+ justify-content: center;
246
+ border-radius: 28px;
247
+ cursor: pointer;
248
+ z-index: 9999;
249
+ i{
250
+ margin-right: 8px;
251
+ }
252
+ }
253
253
  </style>