askbot-dragon 1.5.49 → 1.5.50

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 (82) 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 -55
  5. package/public/index.html +73 -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 +89 -89
  14. package/src/assets/js/obsBrowser.js +63 -0
  15. package/src/assets/js/script.js +36 -36
  16. package/src/assets/less/common.css +6773 -6773
  17. package/src/assets/less/converSationContainer/common.less +192 -192
  18. package/src/assets/less/converSationContainer/converSatonContainer.less +493 -493
  19. package/src/assets/less/iconfont.css +37 -37
  20. package/src/assets/less/ticketMessage.less +294 -294
  21. package/src/components/ActionAlertIframe.vue +154 -154
  22. package/src/components/AiGuide.vue +468 -468
  23. package/src/components/AnswerDocknowledge.vue +581 -556
  24. package/src/components/AnswerVoice.vue +285 -285
  25. package/src/components/AskIFrame.vue +15 -15
  26. package/src/components/ConversationContainer.vue +4969 -5038
  27. package/src/components/FileType.vue +86 -86
  28. package/src/components/Message.vue +27 -27
  29. package/src/components/MyEditor.vue +348 -346
  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 +132 -186
  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 +142 -139
  38. package/src/components/assetDetails.vue +370 -370
  39. package/src/components/assetMessage.vue +228 -228
  40. package/src/components/associationIntention.vue +349 -349
  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 +3577 -3572
  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/pdfPosition.vue +1328 -1322
  60. package/src/components/popup.vue +227 -227
  61. package/src/components/previewDoc.vue +242 -242
  62. package/src/components/previewPdf.vue +353 -306
  63. package/src/components/receiverMessagePlatform.vue +65 -65
  64. package/src/components/recommend.vue +80 -80
  65. package/src/components/selector/hOption.vue +20 -20
  66. package/src/components/selector/hSelector.vue +199 -199
  67. package/src/components/selector/hWrapper.vue +216 -216
  68. package/src/components/senderMessagePlatform.vue +50 -50
  69. package/src/components/source/BotMessage.vue +24 -24
  70. package/src/components/source/CustomMessage.vue +24 -24
  71. package/src/components/test.vue +260 -260
  72. package/src/components/tree.vue +294 -294
  73. package/src/components/utils/AliyunIssUtil.js +81 -81
  74. package/src/components/utils/ckeditor.js +177 -174
  75. package/src/components/utils/format_date.js +25 -25
  76. package/src/components/utils/index.js +6 -6
  77. package/src/components/utils/math_utils.js +29 -29
  78. package/src/components/voiceComponent.vue +119 -119
  79. package/src/components/welcomeKnowledgeFile.vue +307 -270
  80. package/src/components/welcomeLlmCard.vue +134 -134
  81. package/src/main.js +57 -57
  82. package/vue.config.js +54 -54
@@ -1,76 +1,76 @@
1
- export function isMobile() {
2
- let bool = false
3
- let flag = navigator.userAgent.match(
4
- /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
5
- );
6
- if (flag) {
7
- bool = true
8
- } else {
9
- bool = false
10
- }
11
- return bool
12
- }
13
-
14
- let imageTypeObj = {
15
- PDF: 'pdf1',
16
- pdf: 'pdf1',
17
- TXT: 'txt1',
18
- txt: 'txt1',
19
- selfadd: 'selfadd1',
20
- md: "md2",
21
- html: 'selfadd1',
22
- mode: "mode",
23
- general: 'general',
24
- word: "word1",
25
- Word: "word1",
26
- docx: "word1",
27
- doc: "word1",
28
- docm: "word1",
29
- dotm: "word1",
30
- dotx: "word1",
31
- wpt: "word1",
32
- wps: "word1",
33
- WORD: "word1",
34
- Excel: 'excel1',
35
- EXCEL: 'excel1',
36
- excel: 'excel1',
37
- PPT: 'ppt1',
38
- ppt: 'ppt1',
39
- pptx: 'ppt1',
40
- img: "image1",
41
- image: "image1",
42
- video: "video",
43
- audio: 'audio',
44
- link: "link",
45
- wechat: "wechat",
46
- mp4: "video",
47
- MP4: "video",
48
- xlsx: "excel1",
49
- xls: "excel1",
50
- csv: "excel1",
51
- jpg: "image1",
52
- JPG: "image1",
53
- jpeg: "image1",
54
- JPEG: "image1",
55
- png: "image1",
56
- PNG: "image1",
57
- webp: "image1",
58
- WEBP: "image1",
59
- gif: "image1",
60
- GIF: "image1",
61
- svg: "image1",
62
- bmp: "image1",
63
- avi: "video",
64
- mov: "video",
65
- rmvb: "video",
66
- wav: "audio",
67
- mp3: "audio",
68
- MOV: "video",
69
- AIV: "video",
70
- aiv: "video",
71
- news:"news"
72
- }
73
-
74
- export {
75
- imageTypeObj
1
+ export function isMobile() {
2
+ let bool = false
3
+ let flag = navigator.userAgent.match(
4
+ /(phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone)/i
5
+ );
6
+ if (flag) {
7
+ bool = true
8
+ } else {
9
+ bool = false
10
+ }
11
+ return bool
12
+ }
13
+
14
+ let imageTypeObj = {
15
+ PDF: 'pdf1',
16
+ pdf: 'pdf1',
17
+ TXT: 'txt1',
18
+ txt: 'txt1',
19
+ selfadd: 'selfadd1',
20
+ md: "md2",
21
+ html: 'selfadd1',
22
+ mode: "mode",
23
+ general: 'general',
24
+ word: "word1",
25
+ Word: "word1",
26
+ docx: "word1",
27
+ doc: "word1",
28
+ docm: "word1",
29
+ dotm: "word1",
30
+ dotx: "word1",
31
+ wpt: "word1",
32
+ wps: "word1",
33
+ WORD: "word1",
34
+ Excel: 'excel1',
35
+ EXCEL: 'excel1',
36
+ excel: 'excel1',
37
+ PPT: 'ppt1',
38
+ ppt: 'ppt1',
39
+ pptx: 'ppt1',
40
+ img: "image1",
41
+ image: "image1",
42
+ video: "video",
43
+ audio: 'audio',
44
+ link: "link",
45
+ wechat: "wechat",
46
+ mp4: "video",
47
+ MP4: "video",
48
+ xlsx: "excel1",
49
+ xls: "excel1",
50
+ csv: "excel1",
51
+ jpg: "image1",
52
+ JPG: "image1",
53
+ jpeg: "image1",
54
+ JPEG: "image1",
55
+ png: "image1",
56
+ PNG: "image1",
57
+ webp: "image1",
58
+ WEBP: "image1",
59
+ gif: "image1",
60
+ GIF: "image1",
61
+ svg: "image1",
62
+ bmp: "image1",
63
+ avi: "video",
64
+ mov: "video",
65
+ rmvb: "video",
66
+ wav: "audio",
67
+ mp3: "audio",
68
+ MOV: "video",
69
+ AIV: "video",
70
+ aiv: "video",
71
+ news:"news"
72
+ }
73
+
74
+ export {
75
+ imageTypeObj
76
76
  }
@@ -1,90 +1,90 @@
1
- //定义缩放方法,接收一个element参数:使用export暴露该方法
2
- export function zoomElement (el) {
3
- let store = {
4
- scale: 1
5
- };
6
- // 缩放事件的处理
7
- el.addEventListener('touchstart', function (event) {
8
- let touches = event.touches;
9
- let events = touches[0];
10
- let events2 = touches[1];
11
- // event.preventDefault();
12
- // 第一个触摸点的坐标
13
- store.pageX = events.pageX;
14
- store.pageY = events.pageY;
15
-
16
- store.moveable = true;
17
-
18
- if (events2) {
19
- store.pageX2 = events2.pageX;
20
- store.pageY2 = events2.pageY;
21
- }
22
- store.originScale = store.scale || 1;
23
- });
24
- document.addEventListener('touchmove', function (event) {
25
- if (!store.moveable) {
26
- return;
27
- }
28
-
29
- // event.preventDefault();
30
-
31
- let touches = event.touches;
32
- let events = touches[0];
33
- let events2 = touches[1];
34
- // 双指移动
35
- if (events2) {
36
- // 第2个指头坐标在touchmove时候获取
37
- if (!store.pageX2) {
38
- store.pageX2 = events2.pageX;
39
- }
40
- if (!store.pageY2) {
41
- store.pageY2 = events2.pageY;
42
- }
43
-
44
- // 获取坐标之间的举例
45
- let getDistance = function (start, stop) {
46
- return Math.hypot(stop.x - start.x, stop.y - start.y);
47
- };
48
- // 双指缩放比例计算
49
- let zoom = getDistance({
50
- x: events.pageX,
51
- y: events.pageY
52
- }, {
53
- x: events2.pageX,
54
- y: events2.pageY
55
- }) /
56
- getDistance({
57
- x: store.pageX,
58
- y: store.pageY
59
- }, {
60
- x: store.pageX2,
61
- y: store.pageY2
62
- });
63
- // 应用在元素上的缩放比例
64
- let newScale = store.originScale * zoom;
65
- // 最大缩放比例限制
66
- if (newScale > 3) {
67
- newScale = 3;
68
- }
69
- // 最小缩放比例限制
70
- if(newScale < 1) {
71
- newScale = 1;
72
- }
73
- // 记住使用的缩放值
74
- store.scale = newScale;
75
- // 图像应用缩放效果
76
- el.style.transform = 'scale(' + newScale + ')';
77
- }
78
- });
79
- document.addEventListener('touchend', function () {
80
- store.moveable = false;
81
- delete store.pageX2;
82
- delete store.pageY2;
83
- });
84
- document.addEventListener('touchcancel', function () {
85
- store.moveable = false;
86
- delete store.pageX2;
87
- delete store.pageY2;
88
- });
89
-
1
+ //定义缩放方法,接收一个element参数:使用export暴露该方法
2
+ export function zoomElement (el) {
3
+ let store = {
4
+ scale: 1
5
+ };
6
+ // 缩放事件的处理
7
+ el.addEventListener('touchstart', function (event) {
8
+ let touches = event.touches;
9
+ let events = touches[0];
10
+ let events2 = touches[1];
11
+ // event.preventDefault();
12
+ // 第一个触摸点的坐标
13
+ store.pageX = events.pageX;
14
+ store.pageY = events.pageY;
15
+
16
+ store.moveable = true;
17
+
18
+ if (events2) {
19
+ store.pageX2 = events2.pageX;
20
+ store.pageY2 = events2.pageY;
21
+ }
22
+ store.originScale = store.scale || 1;
23
+ });
24
+ document.addEventListener('touchmove', function (event) {
25
+ if (!store.moveable) {
26
+ return;
27
+ }
28
+
29
+ // event.preventDefault();
30
+
31
+ let touches = event.touches;
32
+ let events = touches[0];
33
+ let events2 = touches[1];
34
+ // 双指移动
35
+ if (events2) {
36
+ // 第2个指头坐标在touchmove时候获取
37
+ if (!store.pageX2) {
38
+ store.pageX2 = events2.pageX;
39
+ }
40
+ if (!store.pageY2) {
41
+ store.pageY2 = events2.pageY;
42
+ }
43
+
44
+ // 获取坐标之间的举例
45
+ let getDistance = function (start, stop) {
46
+ return Math.hypot(stop.x - start.x, stop.y - start.y);
47
+ };
48
+ // 双指缩放比例计算
49
+ let zoom = getDistance({
50
+ x: events.pageX,
51
+ y: events.pageY
52
+ }, {
53
+ x: events2.pageX,
54
+ y: events2.pageY
55
+ }) /
56
+ getDistance({
57
+ x: store.pageX,
58
+ y: store.pageY
59
+ }, {
60
+ x: store.pageX2,
61
+ y: store.pageY2
62
+ });
63
+ // 应用在元素上的缩放比例
64
+ let newScale = store.originScale * zoom;
65
+ // 最大缩放比例限制
66
+ if (newScale > 3) {
67
+ newScale = 3;
68
+ }
69
+ // 最小缩放比例限制
70
+ if(newScale < 1) {
71
+ newScale = 1;
72
+ }
73
+ // 记住使用的缩放值
74
+ store.scale = newScale;
75
+ // 图像应用缩放效果
76
+ el.style.transform = 'scale(' + newScale + ')';
77
+ }
78
+ });
79
+ document.addEventListener('touchend', function () {
80
+ store.moveable = false;
81
+ delete store.pageX2;
82
+ delete store.pageY2;
83
+ });
84
+ document.addEventListener('touchcancel', function () {
85
+ store.moveable = false;
86
+ delete store.pageX2;
87
+ delete store.pageY2;
88
+ });
89
+
90
90
  }
@@ -0,0 +1,63 @@
1
+ // 创建ObsClient实例
2
+ import ObsClient from 'esdk-obs-browserjs';
3
+ const obsClient = new ObsClient({
4
+ access_key_id: "EE4MAFWH4YLQSQF7NNIP",
5
+ secret_access_key: "Dq9giqqwZoX77dqSIzhA1Yhhe9tarA3LRBGBF4eO",
6
+ server : 'https://obs.cn-east-3.myhuaweicloud.com',
7
+ timeout : 1000
8
+ });
9
+ let mainId = sessionStorage.getItem('_mainId') ? sessionStorage.getItem('_mainId') : "";
10
+ let IDX = 256, HEX = [], SIZE = 256, BUFFER;
11
+ while (IDX--) HEX[IDX] = (IDX + 256).toString(16).substring(1);
12
+ function uid(len) {
13
+ let i = 0, tmp = (len || 11);
14
+ if (!BUFFER || ((IDX + tmp) > SIZE * 2)) {
15
+ for (BUFFER = '', IDX = 0; i < SIZE; i++) {
16
+ BUFFER += HEX[Math.random() * 256 | 0];
17
+ }
18
+ }
19
+
20
+ return BUFFER.substring(IDX, IDX++ + tmp);
21
+ }
22
+
23
+ function dataFormat(fmt, date = new Date()) {
24
+ const o = {
25
+ "M+": date.getMonth() + 1, //月份
26
+ "d+": date.getDate(), //日
27
+ "h+": date.getHours(), //小时
28
+ "m+": date.getMinutes(), //分
29
+ "s+": date.getSeconds(), //秒
30
+ "q+": Math.floor((date.getMonth() + 3) / 3), //季度
31
+ "S": date.getMilliseconds() //毫秒
32
+ };
33
+ if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
34
+ for (const k in o)
35
+ if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
36
+ return fmt;
37
+ }
38
+ async function putObject(file,callback){
39
+ let fileUrl = ''
40
+ let objName = (process.env.VUE_APP_ENV === 'development' ? 'dev_' : 'pro_') + file.name;
41
+ let fileName = "front-oss/" + mainId + '/' + dataFormat("yyyy/MM/dd/hh/mm/") + uid(32) + "/" + objName;
42
+ await obsClient.putObject({
43
+ Bucket: 'askbot-uat',
44
+ Key : fileName,
45
+ SourceFile : file,
46
+ ACL : obsClient.enums.AclPublicRead,
47
+ ProgressCallback: callback
48
+ }).then(function(result) {
49
+ if(result.CommonMsg.Status < 300){
50
+ console.log('Create object:' + JSON.stringify(result) + ' successfully!\n',process.env.VUE_APP_ENV);
51
+ let domain = process.env.VUE_APP_ENV ==='development' ? 'https://askbot-uat.obs.cn-east-3.myhuaweicloud.com/' : ''
52
+ fileUrl = {
53
+ url: domain + fileName,
54
+ name:file.name
55
+ }
56
+ }
57
+ });
58
+ return fileUrl
59
+ }
60
+
61
+ export {
62
+ putObject
63
+ }
@@ -1,37 +1,37 @@
1
- const displays = document.querySelectorAll('.note-display');
2
- const transitionDuration = 900;
3
- function displasss(){
4
- displays.forEach(display => {
5
- let note = parseFloat(display.dataset.note);
6
- let [int, dec] = display.dataset.note.split('.');
7
- [int, dec] = [Number(int), Number(dec)];
8
- strokeTransition(display, note);
9
- increaseNumber(display, int, 'int');
10
- increaseNumber(display, dec, 'dec');
11
- })
12
- }
13
-
14
- function strokeTransition(display, note) {
15
- let progress = display.querySelector('.circle__progress--fill');
16
- let radius = progress.r.baseVal.value;
17
- let circumference = 2 * Math.PI * radius;
18
- let offset = circumference * (10 - note) / 10;
19
- progress.style.setProperty('--initialStroke', circumference);
20
- progress.style.setProperty('--transitionDuration', `${transitionDuration}ms`);
21
-
22
- setTimeout(() => progress.style.strokeDashoffset = offset, 100);
23
- }
24
- function increaseNumber(display, number, className) {
25
- let element = display.querySelector(`.percent__${className}`),
26
- decPoint = className === 'int' ? '.' : '',
27
- interval = transitionDuration / number,
28
- counter = 0;
29
-
30
- let increaseInterval = setInterval(() => {
31
- if (counter === number) { window.clearInterval(increaseInterval); }
32
-
33
- element.textContent = counter + decPoint;
34
- counter++;
35
- }, interval);
36
- }
1
+ const displays = document.querySelectorAll('.note-display');
2
+ const transitionDuration = 900;
3
+ function displasss(){
4
+ displays.forEach(display => {
5
+ let note = parseFloat(display.dataset.note);
6
+ let [int, dec] = display.dataset.note.split('.');
7
+ [int, dec] = [Number(int), Number(dec)];
8
+ strokeTransition(display, note);
9
+ increaseNumber(display, int, 'int');
10
+ increaseNumber(display, dec, 'dec');
11
+ })
12
+ }
13
+
14
+ function strokeTransition(display, note) {
15
+ let progress = display.querySelector('.circle__progress--fill');
16
+ let radius = progress.r.baseVal.value;
17
+ let circumference = 2 * Math.PI * radius;
18
+ let offset = circumference * (10 - note) / 10;
19
+ progress.style.setProperty('--initialStroke', circumference);
20
+ progress.style.setProperty('--transitionDuration', `${transitionDuration}ms`);
21
+
22
+ setTimeout(() => progress.style.strokeDashoffset = offset, 100);
23
+ }
24
+ function increaseNumber(display, number, className) {
25
+ let element = display.querySelector(`.percent__${className}`),
26
+ decPoint = className === 'int' ? '.' : '',
27
+ interval = transitionDuration / number,
28
+ counter = 0;
29
+
30
+ let increaseInterval = setInterval(() => {
31
+ if (counter === number) { window.clearInterval(increaseInterval); }
32
+
33
+ element.textContent = counter + decPoint;
34
+ counter++;
35
+ }, interval);
36
+ }
37
37
  export {displasss}