@tencentcloud/ai-desk-customer-vue 1.1.0 → 1.4.0

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 (70) hide show
  1. package/CHANGELOG.md +16 -3
  2. package/assets/customer_avatar.png +0 -0
  3. package/assets/face.svg +10 -0
  4. package/assets/files.svg +5 -0
  5. package/assets/image.svg +8 -0
  6. package/assets/rating_tool_icon.svg +5 -0
  7. package/assets/rating_tool_icon_h5.svg +1 -0
  8. package/assets/video.svg +8 -0
  9. package/assets/video_h5.svg +1 -0
  10. package/components/CustomerServiceChat/chat-header/index-web.vue +16 -14
  11. package/components/CustomerServiceChat/index-web.vue +72 -16
  12. package/components/CustomerServiceChat/message-input/index-web.vue +31 -5
  13. package/components/CustomerServiceChat/message-input/message-input-editor-web.vue +24 -0
  14. package/components/CustomerServiceChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.vue +1 -1
  15. package/components/CustomerServiceChat/message-input-toolbar/emoji-picker/index.vue +1 -1
  16. package/components/CustomerServiceChat/message-input-toolbar/file-upload/index.vue +6 -8
  17. package/components/CustomerServiceChat/message-input-toolbar/image-upload/index.vue +11 -16
  18. package/components/CustomerServiceChat/message-input-toolbar/index-web.vue +61 -18
  19. package/components/CustomerServiceChat/message-input-toolbar/rating-tool/index.vue +72 -0
  20. package/components/CustomerServiceChat/message-input-toolbar/toolbar-item-container/style/h5.scss +10 -1
  21. package/components/CustomerServiceChat/message-input-toolbar/user-define-input-tool.vue +80 -0
  22. package/components/CustomerServiceChat/message-input-toolbar/video-upload/index.vue +9 -14
  23. package/components/CustomerServiceChat/message-list/index-web.vue +34 -6
  24. package/components/CustomerServiceChat/message-list/message-elements/message-bubble-web.vue +65 -19
  25. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/marked.ts +1 -1
  26. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-branch.vue +30 -11
  27. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-concurrency-limit.vue +40 -0
  28. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-desk.vue +29 -7
  29. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-branch/branch-pc.vue +107 -73
  30. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-branch/index.vue +53 -52
  31. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/component-mobile/input-mobile.vue +73 -80
  32. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/component-mobile/label-mobile.vue +21 -24
  33. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/component-mobile/radios-mobile.vue +115 -116
  34. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/component-pc/input-pc.vue +69 -73
  35. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/component-pc/label-pc.vue +21 -25
  36. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/component-pc/radio-pc.vue +87 -77
  37. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/form-mobile.vue +213 -200
  38. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/form-pc.vue +122 -113
  39. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/index.vue +7 -7
  40. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-order.vue +141 -0
  41. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-rich-text.vue +5 -1
  42. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-stream.vue +25 -1
  43. package/components/CustomerServiceChat/message-list/message-elements/message-file.vue +1 -1
  44. package/components/CustomerServiceChat/message-list/scroll-button/index.vue +18 -6
  45. package/components/CustomerServiceChat/message-list/style/web.scss +2 -1
  46. package/components/CustomerServiceChat/message-toolbar-button/index.vue +111 -42
  47. package/components/CustomerServiceChat/message-toolbar-button/toolbar-button-end-human-service.vue +59 -0
  48. package/components/CustomerServiceChat/message-toolbar-button/toolbar-button-human-service.vue +55 -0
  49. package/components/CustomerServiceChat/message-toolbar-button/toolbar-button-service-rating.vue +59 -0
  50. package/components/common/BottomPopup/index.vue +1 -1
  51. package/constant.ts +25 -4
  52. package/interface.ts +35 -5
  53. package/locales/en/aidesk.ts +6 -3
  54. package/locales/fil/aidesk.ts +4 -1
  55. package/locales/id/aidesk.ts +7 -4
  56. package/locales/ja/aidesk.ts +5 -2
  57. package/locales/ms/aidesk.ts +5 -2
  58. package/locales/ru/aidesk.ts +6 -3
  59. package/locales/th/aidesk.ts +4 -1
  60. package/locales/vi/aidesk.ts +5 -2
  61. package/locales/zh_cn/aidesk.ts +5 -3
  62. package/locales/zh_tw/aidesk.ts +4 -1
  63. package/package.json +1 -1
  64. package/server.ts +11 -2
  65. package/utils/state.js +30 -0
  66. package/utils/utils.ts +48 -1
  67. package/assets/face.png +0 -0
  68. package/assets/files.png +0 -0
  69. package/assets/image.png +0 -0
  70. package/assets/video.png +0 -0
@@ -1,33 +1,29 @@
1
1
  <template>
2
- <div class="form-label">
3
- <div v-if="isRequired" style="color: red;">
4
- *&nbsp;
5
- </div>
6
- {{ name }}
7
-
2
+ <div class="form-label">
3
+ <div v-if="isRequired" style="color: red;">
4
+ *&nbsp;
8
5
  </div>
6
+ {{ name }}
7
+ </div>
9
8
  </template>
10
9
  <script lang="ts">
11
- export default {
12
- props:{
13
- name:{
14
- type:String,
15
- default:''
16
- },
17
- isRequired:{
18
- type:Number,
19
- default:0
20
- }
21
- },
22
- setup(props){
23
-
24
- }
25
- }
10
+ export default {
11
+ props: {
12
+ name: {
13
+ type: String,
14
+ default: ''
15
+ },
16
+ isRequired: {
17
+ type: Number,
18
+ default: 0
19
+ }
20
+ },
21
+ }
26
22
  </script>
27
23
  <style lang="scss">
28
24
  .form-label {
29
- display:flex;
30
- padding-bottom: 8px;
31
- margin-top:12px;
25
+ display:flex;
26
+ padding-bottom: 8px;
27
+ margin-top:12px;
32
28
  }
33
- </style>
29
+ </style>
@@ -1,99 +1,109 @@
1
1
  <template>
2
- <div>
3
- <div class="radio-container-pc">
4
- <div v-if="validator" class="validator-line">
5
- {{ TUITranslateService.t("AIDesk.请填写必填项") }}
6
- </div>
7
- <div class="form-radio-box-pc" v-for="(item,index) in chooseItemList" :key="index">
8
- <div class="radio-container-pc-icon" @click="clickItem(index)">
9
- <div class="radio-icon">
10
- <img :src="changeSelectedIcon(item)" alt="" style="width: 20px; height: 20px; vertical-align: middle;"/>
11
- </div>
12
- <div class="radio-label">
13
- {{ item }}
14
- </div>
15
- </div>
16
- </div>
2
+ <div>
3
+ <div class="radio-container-pc">
4
+ <div v-if="validator && !isDisabled" class="validator-line">
5
+ {{ TUITranslateService.t("AIDesk.请填写必填项") }}
6
+ </div>
7
+ <div :class="['form-radio-box-pc',isDisabled ? 'form-radio-box-pc-disabled' : '']" v-for="(item,index) in chooseItemList" :key="index">
8
+ <div class="radio-container-pc-icon" @click="clickItem(index)">
9
+ <div class="radio-icon">
10
+ <img :src="changeSelectedIcon(item)" alt="" style="width: 20px; height: 20px; vertical-align: middle;"/>
11
+ </div>
12
+ <div class="radio-label">
13
+ {{ item }}
14
+ </div>
17
15
  </div>
18
-
16
+ </div>
19
17
  </div>
18
+ </div>
20
19
  </template>
21
20
  <script lang="ts">
22
21
  import vue from '../../../../../../../../adapter-vue';
23
22
  import radioUncheckIcon from '../../../../../../../../assets/radio-uncheck.png';
24
23
  import radioCheckIcon from '../../../../../../../../assets/radio-check.png';
25
24
  import { TUITranslateService } from '@tencentcloud/chat-uikit-engine';
26
- const { ref } = vue;
25
+ const { ref } = vue;
27
26
  export default {
28
- props:{
29
- chooseItemList:{
30
- type:Array,
31
- default:[]
32
- },
33
- name:{
34
- type:String,
35
- default:'',
36
- },
37
- isRequired:{
38
- type:Number,
39
- default:0,
40
- },
41
- validator:{
42
- type:Boolean,
43
- default:false
44
- }
27
+ props: {
28
+ chooseItemList: {
29
+ type: Array,
30
+ default: []
45
31
  },
46
- emits:['input-change'],
47
- setup(props,{emit}){
48
- const selectedOption = ref<string>('');
49
- const checkedIcon = ref<string>('');
50
- const changeSelectedIcon = (name:any) => {
51
- if(selectedOption.value === name)
52
- return radioCheckIcon;
53
- else
54
- return radioUncheckIcon;
55
- }
56
-
57
- const clickItem=(index:number) => {
58
- selectedOption.value = props.chooseItemList[index] as string;
59
- emit('input-change',{name:props.name,value:selectedOption.value});
60
- }
32
+ name: {
33
+ type: String,
34
+ default: '',
35
+ },
36
+ isRequired: {
37
+ type: Number,
38
+ default: 0,
39
+ },
40
+ validator: {
41
+ type: Boolean,
42
+ default: false
43
+ },
44
+ isDisabled: {
45
+ type: Boolean,
46
+ default: false
47
+ }
48
+ },
49
+ emits:['input-change'],
50
+ setup(props,{emit}){
51
+ const selectedOption = ref<string>('');
52
+ const checkedIcon = ref<string>('');
53
+ const changeSelectedIcon = (name:any) => {
54
+ if (selectedOption.value === name) {
55
+ return radioCheckIcon;
56
+ } else {
57
+ return radioUncheckIcon;
58
+ }
59
+ }
61
60
 
62
- const onInputChanged = ():void => {
63
- emit('input-change',{name:props.name,value:selectedOption.value});
64
- };
65
- return {
66
- onInputChanged,
67
- selectedOption,
68
- clickItem,
69
- radioUncheckIcon,
70
- radioCheckIcon,
71
- changeSelectedIcon,
72
- checkedIcon,
73
- TUITranslateService
74
- }
61
+ const clickItem=(index:number) => {
62
+ if (props.isDisabled) {
63
+ return;
64
+ }
65
+ selectedOption.value = props.chooseItemList[index] as string;
66
+ emit('input-change',{name:props.name,value:selectedOption.value});
75
67
  }
68
+
69
+ const onInputChanged = ():void => {
70
+ emit('input-change',{name:props.name,value:selectedOption.value});
71
+ };
72
+ return {
73
+ onInputChanged,
74
+ selectedOption,
75
+ clickItem,
76
+ radioUncheckIcon,
77
+ radioCheckIcon,
78
+ changeSelectedIcon,
79
+ checkedIcon,
80
+ TUITranslateService
81
+ }
82
+ }
76
83
  }
77
84
  </script>
78
85
  <style lang="scss">
79
86
  .form-radio-box{
80
- margin-bottom: 5px;
87
+ margin-bottom: 5px;
81
88
  }
82
89
  .radio-container-pc {
83
- display:flex;
84
- flex-direction: column;
85
- width:100%;
90
+ display: flex;
91
+ flex-direction: column;
92
+ width: 100%;
86
93
  }
87
- .form-radio-box-pc{
88
- padding: 5px 0;
94
+ .form-radio-box-pc {
95
+ padding: 5px 0;
89
96
  }
90
- .radio-container-pc-icon{
91
- display:flex;
92
- flex-direction: row;
93
- width: 100%;
94
- align-items: center;
95
- .radio-icon {
96
- margin-right:5px;
97
- }
97
+ .form-radio-box-pc-disabled {
98
+ color: #b0b0b0;
99
+ }
100
+ .radio-container-pc-icon {
101
+ display: flex;
102
+ flex-direction: row;
103
+ width: 100%;
104
+ align-items: center;
105
+ .radio-icon {
106
+ margin-right:5px;
107
+ }
98
108
  }
99
- </style>
109
+ </style>