askbot-dragon 1.1.2 → 1.1.4

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 (80) 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 +43 -43
  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/script.js +36 -36
  13. package/src/assets/less/common.css +6773 -6773
  14. package/src/assets/less/converSationContainer/common.less +191 -191
  15. package/src/assets/less/converSationContainer/converSatonContainer.less +493 -493
  16. package/src/assets/less/iconfont.css +37 -37
  17. package/src/assets/less/ticketMessage.less +211 -211
  18. package/src/components/ActionAlertIframe.vue +112 -112
  19. package/src/components/AiGuide.vue +467 -467
  20. package/src/components/AnswerDocknowledge.vue +213 -176
  21. package/src/components/AskIFrame.vue +15 -15
  22. package/src/components/ConversationContainer.vue +3996 -3996
  23. package/src/components/FileType.vue +86 -86
  24. package/src/components/Message.vue +27 -27
  25. package/src/components/actionSatisfaction.vue +107 -107
  26. package/src/components/actionSendToBot.vue +62 -62
  27. package/src/components/answerDissatisfaction.vue +62 -62
  28. package/src/components/answerRadio.vue +76 -76
  29. package/src/components/ask-components/DissatisfactionOptions.vue +57 -57
  30. package/src/components/ask-components/Msgloading.vue +37 -37
  31. package/src/components/ask-components/SatisfactionV2.vue +15 -15
  32. package/src/components/askVideo.vue +138 -138
  33. package/src/components/assetDetails.vue +370 -370
  34. package/src/components/assetMessage.vue +228 -228
  35. package/src/components/associationIntention.vue +299 -299
  36. package/src/components/attachmentPreview.vue +90 -90
  37. package/src/components/botActionSatisfactor.vue +68 -68
  38. package/src/components/chatContent.vue +513 -513
  39. package/src/components/feedBack.vue +136 -136
  40. package/src/components/fielListView.vue +312 -312
  41. package/src/components/file/AliyunOssComponents.vue +108 -108
  42. package/src/components/formTemplate.vue +3361 -3361
  43. package/src/components/loadingProcess.vue +164 -164
  44. package/src/components/message/ActionAlertIframe.vue +112 -112
  45. package/src/components/message/ShopMessage.vue +164 -164
  46. package/src/components/message/TextMessage.vue +924 -924
  47. package/src/components/message/TicketMessage.vue +177 -177
  48. package/src/components/message/swiper/index.js +4 -4
  49. package/src/components/message/swiper/ticketSwiper.vue +503 -503
  50. package/src/components/message/swiper/ticketSwiperItem.vue +61 -61
  51. package/src/components/msgLoading.vue +231 -231
  52. package/src/components/myPopup.vue +70 -70
  53. package/src/components/popup.vue +227 -227
  54. package/src/components/previewDoc.vue +85 -85
  55. package/src/components/receiverMessagePlatform.vue +65 -65
  56. package/src/components/recommend.vue +89 -89
  57. package/src/components/selector/hOption.vue +20 -20
  58. package/src/components/selector/hSelector.vue +199 -199
  59. package/src/components/selector/hWrapper.vue +216 -216
  60. package/src/components/senderMessagePlatform.vue +50 -50
  61. package/src/components/source/BotMessage.vue +24 -24
  62. package/src/components/source/CustomMessage.vue +24 -24
  63. package/src/components/test.vue +260 -260
  64. package/src/components/tree.vue +294 -294
  65. package/src/components/utils/AliyunIssUtil.js +72 -72
  66. package/src/components/utils/ckeditor.js +155 -155
  67. package/src/components/utils/ckeditorImageUpload/command.js +109 -109
  68. package/src/components/utils/ckeditorImageUpload/editing.js +11 -11
  69. package/src/components/utils/ckeditorImageUpload/plugin-image.js +11 -11
  70. package/src/components/utils/ckeditorImageUpload/toolbar-ui.js +40 -40
  71. package/src/components/utils/ckeditorfileUpload/common.js +111 -111
  72. package/src/components/utils/ckeditorfileUpload/editing.js +11 -11
  73. package/src/components/utils/ckeditorfileUpload/plugin_file.js +11 -11
  74. package/src/components/utils/ckeditorfileUpload/toolbar_ui.js +34 -34
  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/main.js +60 -60
  80. package/vue.config.js +47 -47
@@ -1,165 +1,165 @@
1
- <template>
2
- <div id="loading-process">
3
- <div class="bg-color"></div>
4
- <ul class="display-container" >
5
- <li class="note-display" :data-note="dataNodes">
6
- <div class="circle">
7
- <svg width="30" height="30" class="circle__svg" viewBox="0 0 90 90">
8
- <circle cx="41" cy="41" r="38" class="circle__progress circle__progress--path"></circle>
9
- <circle cx="41" cy="41" r="38" class="circle__progress circle__progress--fill"></circle>
10
- </svg>
11
- </div>
12
- </li>
13
- </ul>
14
- </div>
15
- </template>
16
-
17
- <script>
18
- const transitionDuration = 1000
19
- export default {
20
- name: "loadingProcess",
21
- data(){
22
- return{
23
- timer:null,
24
- dataNodes:0
25
- }
26
- },
27
- props:['dataNote','finished'],
28
- methods:{
29
- strokeTransition(display, note) {
30
- let progress = display.querySelector('.circle__progress--fill');
31
- let radius = progress.r.baseVal.value;
32
- let circumference = 2 * Math.PI * radius;
33
- let offset = circumference * (10 - note) / 10;
34
- progress.style.setProperty('--initialStroke', circumference);
35
- progress.style.setProperty('--transitionDuration', `${transitionDuration}ms`);
36
-
37
- setTimeout(() => progress.style.strokeDashoffset = offset, 100);
38
- },
39
- increaseNumber(display, number, className) {
40
- let element = display.querySelector(`.percent__${className}`),
41
- decPoint = className === 'int' ? '' : '',
42
- interval = transitionDuration / number,
43
- counter = 0;
44
- console.debug('element',element,counter,decPoint)
45
- let increaseInterval = setInterval(() => {
46
- if (counter === number) { window.clearInterval(increaseInterval); }
47
- /*
48
- element.textContent = counter + decPoint;*/
49
- counter++;
50
- }, interval);
51
- }
52
- },
53
- mounted() {
54
- this.timer = setInterval(()=>{
55
- const displays = document.querySelectorAll('.note-display');
56
- displays.forEach(display => {
57
- let note = parseFloat(display.dataset.note);
58
- let [int, dec] = display.dataset.note.split('.');
59
- [int, dec] = [Number(int), Number(dec)];
60
- this.strokeTransition(display, note);
61
- this.increaseNumber(display, this.dataNote, 'int');
62
- /* this.increaseNumber(display, dec, 'dec');*/
63
- })
64
- },1000)
65
- },
66
- watch:{
67
- dataNote:{
68
- handler(val){
69
- this.dataNodes = val
70
- console.debug('this.dataNodes',val,this.dataNodes)
71
- },
72
- immediate:true,
73
- deep:true
74
- },
75
- finished:{
76
- handler(val){
77
- if (val){
78
- setTimeout(()=>{
79
- clearInterval(this.timer)
80
- },1000)
81
- }
82
- },
83
- immediate:true
84
- }
85
- }
86
- }
87
- </script>
88
-
89
- <style scoped lang="less">
90
- /*@import url('https://fonts.googleapis.com/css?family=Nixie+One|Raleway:200');*/
91
- #loading-process{
92
- height: 100px;
93
- width: 100px;
94
- .bg-color{
95
- background-color:#000000 ;
96
- opacity: 0.4;
97
- width: 100%;
98
- height: 100%;
99
- }
100
- .display-container{
101
- position: absolute;
102
- top: calc(50% - 15px);
103
- left: 10px;
104
- }
105
- }
106
- * {
107
- padding: 0;
108
- margin: 0;
109
- box-sizing: border-box;
110
- }
111
- /*
112
- body {
113
- height: 100vh;
114
- color: #fff;
115
- display: flex;
116
- background: #3E423A;
117
- font-family: 'Nixie One', cursive;
118
- }
119
- */
120
-
121
- .display-container {
122
- margin: auto;
123
- display: flex;
124
- .note-display {
125
- display: flex;
126
- flex-direction: column;
127
- align-items: center;
128
- margin: 0 25px;
129
- }
130
- }
131
- .circle__progress {
132
- fill: none;
133
- stroke-width: 5;
134
- stroke-opacity: 0.3;
135
- stroke-linecap: round;
136
- }
137
- .note-display:nth-child(1) .circle__progress--fill{
138
- stroke: #FFFFFF!important;
139
- stroke-opacity: 1;
140
- }
141
- .circle__progress--path{
142
- stroke: #EFEFEF!important;
143
- stroke-opacity: 0.5;
144
- }
145
- .note-display:nth-child(1) .circle__progress { stroke: #AAFF00; }
146
- .note-display:nth-child(2) .circle__progress { stroke: #FF00AA; }
147
- .note-display:nth-child(3) .circle__progress { stroke: #AA00FF; }
148
- .note-display:nth-child(4) .circle__progress { stroke: #00AAFF; }
149
- .circle {
150
- position: relative;
151
- }
152
-
153
- .percent {
154
- width: 100%;
155
- top: 50%;
156
- left: 50%;
157
- position: absolute;
158
- font-weight: bold;
159
- text-align: center;
160
- /* line-height: 28px;*/
161
- transform: translate(-50%, -50%);
162
- font-size: 12px;
163
- }
164
-
1
+ <template>
2
+ <div id="loading-process">
3
+ <div class="bg-color"></div>
4
+ <ul class="display-container" >
5
+ <li class="note-display" :data-note="dataNodes">
6
+ <div class="circle">
7
+ <svg width="30" height="30" class="circle__svg" viewBox="0 0 90 90">
8
+ <circle cx="41" cy="41" r="38" class="circle__progress circle__progress--path"></circle>
9
+ <circle cx="41" cy="41" r="38" class="circle__progress circle__progress--fill"></circle>
10
+ </svg>
11
+ </div>
12
+ </li>
13
+ </ul>
14
+ </div>
15
+ </template>
16
+
17
+ <script>
18
+ const transitionDuration = 1000
19
+ export default {
20
+ name: "loadingProcess",
21
+ data(){
22
+ return{
23
+ timer:null,
24
+ dataNodes:0
25
+ }
26
+ },
27
+ props:['dataNote','finished'],
28
+ methods:{
29
+ strokeTransition(display, note) {
30
+ let progress = display.querySelector('.circle__progress--fill');
31
+ let radius = progress.r.baseVal.value;
32
+ let circumference = 2 * Math.PI * radius;
33
+ let offset = circumference * (10 - note) / 10;
34
+ progress.style.setProperty('--initialStroke', circumference);
35
+ progress.style.setProperty('--transitionDuration', `${transitionDuration}ms`);
36
+
37
+ setTimeout(() => progress.style.strokeDashoffset = offset, 100);
38
+ },
39
+ increaseNumber(display, number, className) {
40
+ let element = display.querySelector(`.percent__${className}`),
41
+ decPoint = className === 'int' ? '' : '',
42
+ interval = transitionDuration / number,
43
+ counter = 0;
44
+ console.debug('element',element,counter,decPoint)
45
+ let increaseInterval = setInterval(() => {
46
+ if (counter === number) { window.clearInterval(increaseInterval); }
47
+ /*
48
+ element.textContent = counter + decPoint;*/
49
+ counter++;
50
+ }, interval);
51
+ }
52
+ },
53
+ mounted() {
54
+ this.timer = setInterval(()=>{
55
+ const displays = document.querySelectorAll('.note-display');
56
+ displays.forEach(display => {
57
+ let note = parseFloat(display.dataset.note);
58
+ let [int, dec] = display.dataset.note.split('.');
59
+ [int, dec] = [Number(int), Number(dec)];
60
+ this.strokeTransition(display, note);
61
+ this.increaseNumber(display, this.dataNote, 'int');
62
+ /* this.increaseNumber(display, dec, 'dec');*/
63
+ })
64
+ },1000)
65
+ },
66
+ watch:{
67
+ dataNote:{
68
+ handler(val){
69
+ this.dataNodes = val
70
+ console.debug('this.dataNodes',val,this.dataNodes)
71
+ },
72
+ immediate:true,
73
+ deep:true
74
+ },
75
+ finished:{
76
+ handler(val){
77
+ if (val){
78
+ setTimeout(()=>{
79
+ clearInterval(this.timer)
80
+ },1000)
81
+ }
82
+ },
83
+ immediate:true
84
+ }
85
+ }
86
+ }
87
+ </script>
88
+
89
+ <style scoped lang="less">
90
+ /*@import url('https://fonts.googleapis.com/css?family=Nixie+One|Raleway:200');*/
91
+ #loading-process{
92
+ height: 100px;
93
+ width: 100px;
94
+ .bg-color{
95
+ background-color:#000000 ;
96
+ opacity: 0.4;
97
+ width: 100%;
98
+ height: 100%;
99
+ }
100
+ .display-container{
101
+ position: absolute;
102
+ top: calc(50% - 15px);
103
+ left: 10px;
104
+ }
105
+ }
106
+ * {
107
+ padding: 0;
108
+ margin: 0;
109
+ box-sizing: border-box;
110
+ }
111
+ /*
112
+ body {
113
+ height: 100vh;
114
+ color: #fff;
115
+ display: flex;
116
+ background: #3E423A;
117
+ font-family: 'Nixie One', cursive;
118
+ }
119
+ */
120
+
121
+ .display-container {
122
+ margin: auto;
123
+ display: flex;
124
+ .note-display {
125
+ display: flex;
126
+ flex-direction: column;
127
+ align-items: center;
128
+ margin: 0 25px;
129
+ }
130
+ }
131
+ .circle__progress {
132
+ fill: none;
133
+ stroke-width: 5;
134
+ stroke-opacity: 0.3;
135
+ stroke-linecap: round;
136
+ }
137
+ .note-display:nth-child(1) .circle__progress--fill{
138
+ stroke: #FFFFFF!important;
139
+ stroke-opacity: 1;
140
+ }
141
+ .circle__progress--path{
142
+ stroke: #EFEFEF!important;
143
+ stroke-opacity: 0.5;
144
+ }
145
+ .note-display:nth-child(1) .circle__progress { stroke: #AAFF00; }
146
+ .note-display:nth-child(2) .circle__progress { stroke: #FF00AA; }
147
+ .note-display:nth-child(3) .circle__progress { stroke: #AA00FF; }
148
+ .note-display:nth-child(4) .circle__progress { stroke: #00AAFF; }
149
+ .circle {
150
+ position: relative;
151
+ }
152
+
153
+ .percent {
154
+ width: 100%;
155
+ top: 50%;
156
+ left: 50%;
157
+ position: absolute;
158
+ font-weight: bold;
159
+ text-align: center;
160
+ /* line-height: 28px;*/
161
+ transform: translate(-50%, -50%);
162
+ font-size: 12px;
163
+ }
164
+
165
165
  </style>
@@ -1,113 +1,113 @@
1
- <template>
2
- <div id="action_alert_iframe">
3
- <iframe
4
- class="grzh-iframe"
5
- :id="tampId"
6
- :data-name="tampId"
7
- :src="actionAlertIframe.template"
8
- width="100%"
9
- :height="actionAlertIframe.height"
10
- :scrolling="actionAlertIframe.scrolling"
11
- frameborder="no"
12
- border="0"
13
- ></iframe>
14
- </div>
15
- </template>
16
- <script>
17
- export default {
18
- name: "action_alert_iframe",
19
- props: ["actionAlertIframe"],
20
- data() {
21
- return {
22
- name: "action_alert_iframe",
23
- dataName: "",
24
- tampId:'',
25
- // 组件接收数据
26
- actionAlertIframeObj: {
27
- template: "url地址(可插入变量)",
28
- description: "描述",
29
- height: "frame高度",
30
- width: "iframe 的宽度",
31
- scrolling: "yes/no/auto(是否在 iframe 中显示滚动条)",
32
- sandbox: [
33
- "预留",
34
- "启用一系列对 <iframe> 中内容的额外限制",
35
- "参考 https://www.w3school.com.cn/tags/att_iframe_sandbox.asp",
36
- ],
37
- frameborder: "0/1(是否显示框架周围的边框)",
38
- displayStyle:
39
- "iframe 样式(点击弹出/嵌入iframe 字符串类型后端未做限制)",
40
- },
41
- };
42
- },
43
- methods: {},
44
- mounted() {
45
- this.tampId = 'iframeId++' + new Date().getTime();
46
- let tampUrl = this.actionAlertIframe.template;
47
- function GetRequest() {
48
- var url = tampUrl.split("?")[1]; //获取url中"?"符后的字串
49
- var theRequest = new Object();
50
- if (url) {
51
- // var str = url.substr(1);
52
- let strs = url.split("&");
53
- for (var i = 0; i < strs.length; i++) {
54
- theRequest[strs[i].split("=")[0]] = unescape(
55
- strs[i].split("=")[1]
56
- );
57
- }
58
- }
59
- return theRequest;
60
- }
61
- if (JSON.stringify(GetRequest()) == "{}") {
62
- this.actionAlertIframe.template = this.actionAlertIframe.template + "?iframeId=" + this.tampId
63
- } else {
64
- this.actionAlertIframe.template = this.actionAlertIframe.template + "&iframeId=" + this.tampId
65
- }
66
- },
67
- };
68
- </script>
69
- <style lang="less" scoped>
70
- // <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
71
-
72
- #action_alert_iframe {
73
- width: 100%;
74
- margin: 0 auto;
75
- overflow-x: auto;
76
- .grzh-iframe {
77
- scrollbar-face-color: #9aa1c4;
78
- /* 滚动条滑块按钮的颜色 */
79
- scrollbar-highlight-color: #f60;
80
- /* 滚动条整体颜色 */
81
- scrollbar-3dlight-color: #f00;
82
- scrollbar-darkshadow-color: #000;
83
- /* 滚动条阴影 */
84
- scrollbar-shadow-color: #000;
85
- /* 三角箭头颜色 */
86
- scrollbar-arrow-color: #394264;
87
- /* 滚动条轨道颜色 */
88
- scrollbar-track-color: #394264;
89
-
90
- ::-webkit-scrollbar {
91
- width: 5px;
92
- height: 5px;
93
- }
94
- ::-webkit-scrollbar-thumb {
95
- background-color: #999;
96
- -webkit-border-radius: 5px;
97
- border-radius: 5px;
98
- }
99
- ::-webkit-scrollbar-thumb:vertical:hover {
100
- background-color: #666;
101
- }
102
- ::-webkit-scrollbar-thumb:vertical:active {
103
- background-color: #333;
104
- }
105
- ::-webkit-scrollbar-button {
106
- display: none;
107
- }
108
- ::-webkit-scrollbar-track {
109
- background-color: #f1f1f1;
110
- }
111
- }
112
- }
1
+ <template>
2
+ <div id="action_alert_iframe">
3
+ <iframe
4
+ class="grzh-iframe"
5
+ :id="tampId"
6
+ :data-name="tampId"
7
+ :src="actionAlertIframe.template"
8
+ width="100%"
9
+ :height="actionAlertIframe.height"
10
+ :scrolling="actionAlertIframe.scrolling"
11
+ frameborder="no"
12
+ border="0"
13
+ ></iframe>
14
+ </div>
15
+ </template>
16
+ <script>
17
+ export default {
18
+ name: "action_alert_iframe",
19
+ props: ["actionAlertIframe"],
20
+ data() {
21
+ return {
22
+ name: "action_alert_iframe",
23
+ dataName: "",
24
+ tampId:'',
25
+ // 组件接收数据
26
+ actionAlertIframeObj: {
27
+ template: "url地址(可插入变量)",
28
+ description: "描述",
29
+ height: "frame高度",
30
+ width: "iframe 的宽度",
31
+ scrolling: "yes/no/auto(是否在 iframe 中显示滚动条)",
32
+ sandbox: [
33
+ "预留",
34
+ "启用一系列对 <iframe> 中内容的额外限制",
35
+ "参考 https://www.w3school.com.cn/tags/att_iframe_sandbox.asp",
36
+ ],
37
+ frameborder: "0/1(是否显示框架周围的边框)",
38
+ displayStyle:
39
+ "iframe 样式(点击弹出/嵌入iframe 字符串类型后端未做限制)",
40
+ },
41
+ };
42
+ },
43
+ methods: {},
44
+ mounted() {
45
+ this.tampId = 'iframeId++' + new Date().getTime();
46
+ let tampUrl = this.actionAlertIframe.template;
47
+ function GetRequest() {
48
+ var url = tampUrl.split("?")[1]; //获取url中"?"符后的字串
49
+ var theRequest = new Object();
50
+ if (url) {
51
+ // var str = url.substr(1);
52
+ let strs = url.split("&");
53
+ for (var i = 0; i < strs.length; i++) {
54
+ theRequest[strs[i].split("=")[0]] = unescape(
55
+ strs[i].split("=")[1]
56
+ );
57
+ }
58
+ }
59
+ return theRequest;
60
+ }
61
+ if (JSON.stringify(GetRequest()) == "{}") {
62
+ this.actionAlertIframe.template = this.actionAlertIframe.template + "?iframeId=" + this.tampId
63
+ } else {
64
+ this.actionAlertIframe.template = this.actionAlertIframe.template + "&iframeId=" + this.tampId
65
+ }
66
+ },
67
+ };
68
+ </script>
69
+ <style lang="less" scoped>
70
+ // <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
71
+
72
+ #action_alert_iframe {
73
+ width: 100%;
74
+ margin: 0 auto;
75
+ overflow-x: auto;
76
+ .grzh-iframe {
77
+ scrollbar-face-color: #9aa1c4;
78
+ /* 滚动条滑块按钮的颜色 */
79
+ scrollbar-highlight-color: #f60;
80
+ /* 滚动条整体颜色 */
81
+ scrollbar-3dlight-color: #f00;
82
+ scrollbar-darkshadow-color: #000;
83
+ /* 滚动条阴影 */
84
+ scrollbar-shadow-color: #000;
85
+ /* 三角箭头颜色 */
86
+ scrollbar-arrow-color: #394264;
87
+ /* 滚动条轨道颜色 */
88
+ scrollbar-track-color: #394264;
89
+
90
+ ::-webkit-scrollbar {
91
+ width: 5px;
92
+ height: 5px;
93
+ }
94
+ ::-webkit-scrollbar-thumb {
95
+ background-color: #999;
96
+ -webkit-border-radius: 5px;
97
+ border-radius: 5px;
98
+ }
99
+ ::-webkit-scrollbar-thumb:vertical:hover {
100
+ background-color: #666;
101
+ }
102
+ ::-webkit-scrollbar-thumb:vertical:active {
103
+ background-color: #333;
104
+ }
105
+ ::-webkit-scrollbar-button {
106
+ display: none;
107
+ }
108
+ ::-webkit-scrollbar-track {
109
+ background-color: #f1f1f1;
110
+ }
111
+ }
112
+ }
113
113
  </style>