@tencentcloud/ai-desk-customer-vue 0.7.0 → 1.0.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 (94) hide show
  1. package/CHANGELOG.md +5 -3
  2. package/README.md +153 -50
  3. package/components/CustomerServiceChat/chat-header/index-web.vue +2 -2
  4. package/components/CustomerServiceChat/index-web.vue +71 -11
  5. package/components/CustomerServiceChat/message-input/message-input-editor-web.vue +7 -1
  6. package/components/CustomerServiceChat/message-input-toolbar/emoji-dialog-mobile/emoji-dialog-mobile.vue +2 -1
  7. package/components/CustomerServiceChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.vue +2 -1
  8. package/components/CustomerServiceChat/message-input-toolbar/emoji-picker/index.vue +2 -1
  9. package/components/CustomerServiceChat/message-input-toolbar/file-upload/index.vue +3 -2
  10. package/components/CustomerServiceChat/message-input-toolbar/image-upload/index.vue +4 -3
  11. package/components/CustomerServiceChat/message-input-toolbar/index-web.vue +2 -2
  12. package/components/CustomerServiceChat/message-input-toolbar/video-upload/index.vue +2 -2
  13. package/components/CustomerServiceChat/message-list/message-elements/message-bubble-web.vue +19 -0
  14. package/components/CustomerServiceChat/message-list/message-elements/message-custom.vue +6 -2
  15. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/marked.ts +4 -0
  16. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-branch.vue +13 -4
  17. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/component-mobile/input-mobile.vue +4 -2
  18. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/component-mobile/radios-mobile.vue +4 -2
  19. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/component-pc/input-pc.vue +4 -2
  20. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/component-pc/radio-pc.vue +5 -3
  21. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/form-mobile.vue +6 -4
  22. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/form-pc.vue +5 -3
  23. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-product-card.vue +21 -11
  24. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-rating/message-rating-number.vue +6 -6
  25. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-rating/message-rating-star.vue +14 -14
  26. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-robot-welcome.vue +2 -6
  27. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-single-form/form-input.vue +6 -4
  28. package/components/CustomerServiceChat/message-list/message-elements/message-location.vue +2 -1
  29. package/components/CustomerServiceChat/message-list/message-elements/message-text.vue +1 -1
  30. package/components/CustomerServiceChat/message-list/message-elements/message-thinking.vue +2 -2
  31. package/components/CustomerServiceChat/message-list/message-tool/index-web.vue +1 -1
  32. package/components/CustomerServiceChat/message-list/message-tool/message-revoked.vue +1 -0
  33. package/components/CustomerServiceChat/message-list/scroll-button/index.vue +3 -1
  34. package/components/CustomerServiceChat/message-toolbar-button/index.vue +2 -2
  35. package/components/common/Dialog/index.vue +2 -2
  36. package/components/common/ImagePreviewer/index-web.vue +2 -2
  37. package/constant.ts +14 -0
  38. package/excluded-list.txt +0 -1
  39. package/index.ts +1 -6
  40. package/locales/en/TUIChat.ts +158 -0
  41. package/locales/en/aidesk.ts +16 -0
  42. package/locales/en/component.ts +6 -0
  43. package/locales/en/index.ts +26 -0
  44. package/locales/en/time.ts +37 -0
  45. package/locales/fil/TUIChat.ts +160 -0
  46. package/locales/fil/aidesk.ts +16 -0
  47. package/locales/fil/component.ts +6 -0
  48. package/locales/fil/index.ts +25 -0
  49. package/locales/fil/time.ts +18 -0
  50. package/locales/id/TUIChat.ts +164 -0
  51. package/locales/id/aidesk.ts +16 -0
  52. package/locales/id/component.ts +6 -0
  53. package/locales/id/index.ts +26 -0
  54. package/locales/id/time.ts +19 -0
  55. package/locales/index.ts +30 -0
  56. package/locales/ja/TUIChat.ts +165 -0
  57. package/locales/ja/aidesk.ts +16 -0
  58. package/locales/ja/component.ts +6 -0
  59. package/locales/ja/index.ts +26 -0
  60. package/locales/ja/time.ts +18 -0
  61. package/locales/ms/TUIChat.ts +165 -0
  62. package/locales/ms/aidesk.ts +16 -0
  63. package/locales/ms/component.ts +6 -0
  64. package/locales/ms/index.ts +26 -0
  65. package/locales/ms/time.ts +18 -0
  66. package/locales/ru/TUIChat.ts +158 -0
  67. package/locales/ru/aidesk.ts +16 -0
  68. package/locales/ru/component.ts +7 -0
  69. package/locales/ru/index.ts +26 -0
  70. package/locales/ru/time.ts +30 -0
  71. package/locales/th/TUIChat.ts +165 -0
  72. package/locales/th/aidesk.ts +16 -0
  73. package/locales/th/component.ts +6 -0
  74. package/locales/th/index.ts +26 -0
  75. package/locales/th/time.ts +18 -0
  76. package/locales/vi/TUIChat.ts +156 -0
  77. package/locales/vi/aidesk.ts +16 -0
  78. package/locales/vi/component.ts +6 -0
  79. package/locales/vi/index.ts +26 -0
  80. package/locales/vi/time.ts +18 -0
  81. package/locales/zh_cn/TUIChat.ts +158 -0
  82. package/locales/zh_cn/aidesk.ts +17 -0
  83. package/locales/zh_cn/component.ts +6 -0
  84. package/locales/zh_cn/index.ts +26 -0
  85. package/locales/zh_cn/time.ts +37 -0
  86. package/locales/zh_tw/TUIChat.ts +158 -0
  87. package/locales/zh_tw/aidesk.ts +16 -0
  88. package/locales/zh_tw/component.ts +6 -0
  89. package/locales/zh_tw/index.ts +26 -0
  90. package/locales/zh_tw/time.ts +37 -0
  91. package/package.json +2 -2
  92. package/server.ts +14 -2
  93. package/utils/index.ts +6 -16
  94. package/utils/utils.ts +4 -5
@@ -10,7 +10,7 @@
10
10
  <div :class="['video-upload', !isPC && 'video-upload-h5']">
11
11
  <input
12
12
  ref="inputRef"
13
- title="视频"
13
+ :title="TUITranslateService.t('视频')"
14
14
  type="file"
15
15
  data-type="video"
16
16
  accept="video/*"
@@ -27,8 +27,8 @@ import {
27
27
  IConversationModel,
28
28
  SendMessageParams,
29
29
  SendMessageOptions,
30
+ TUITranslateService
30
31
  } from '@tencentcloud/chat-uikit-engine';
31
- import { TUIGlobal } from '@tencentcloud/universal-api';
32
32
  import vue from '../../../../adapter-vue';
33
33
  import { isPC } from '../../../../utils/env';
34
34
  import ToolbarItemContainer from '../toolbar-item-container/index.vue';
@@ -44,6 +44,7 @@
44
44
  isNoPadding && isBlink ? 'blink-shadow' : '',
45
45
  !isNoPadding && isBlink ? 'blink-content' : '',
46
46
  isMultiBranchMsg?'multi-branch-message':'',
47
+ (isProductCardMessage && isH5) ? 'product-message-bubble-h5' : (isProductCardMessage ? 'product-message-bubble' : ''),
47
48
  isPC ? '':'body-mobile',
48
49
  ]"
49
50
  >
@@ -141,6 +142,7 @@ import loadingIcon from '../../../../assets/loading.png';
141
142
  import customerAvatar from '../../../../assets/customer_avatar.png';
142
143
  import { shallowCopyMessage } from '../../../../utils/utils';
143
144
  import { isPC,isH5 } from '../../../../utils/env';
145
+ import { CUSTOM_MESSAGE_SRC } from '../../../../constant';
144
146
  const { computed, toRefs } = vue;
145
147
 
146
148
  interface IProps {
@@ -213,6 +215,15 @@ const isMultiBranchMsg = computed(()=>{
213
215
  });
214
216
 
215
217
 
218
+ const isProductCardMessage = computed(()=>{
219
+ if (message.value?.type == "TIMCustomElem") {
220
+ if (JSON.parse(message.value.payload.data).src === CUSTOM_MESSAGE_SRC.PRODUCT_CARD) {
221
+ return true;
222
+ }
223
+ }
224
+ return false;
225
+ });
226
+
216
227
  const isNoPadding = computed(() => {
217
228
  return (
218
229
  !hasEmojiReaction.value
@@ -400,6 +411,14 @@ function scrollTo(scrollHeight: number) {
400
411
  border-radius: 0 10px 10px;
401
412
  padding: 0px;
402
413
  }
414
+
415
+ .product-message-bubble {
416
+ background: #f3f4f7 !important ;
417
+ }
418
+
419
+ .product-message-bubble-h5 {
420
+ background: #fff !important ;
421
+ }
403
422
 
404
423
  .content-out {
405
424
  background: linear-gradient(26deg, #1C66E5 2.07%, #03C8FD 152.75%);
@@ -1,5 +1,9 @@
1
1
  <template>
2
- <div>[自定义消息]</div>
2
+ <div>{{TUITranslateService.t("TUIChat.[自定义消息]")}}</div>
3
3
  </template>
4
4
 
5
- <script lang="ts" setup></script>
5
+ <script lang="ts" setup>
6
+ import {
7
+ TUITranslateService,
8
+ } from '@tencentcloud/chat-uikit-engine';
9
+ </script>
@@ -15,6 +15,10 @@ export const marked = new Marked(
15
15
  `;
16
16
  },
17
17
  link(this: any, href: string | null, title: string | null, text: string) {
18
+ // a 标签 href 如果异常(包含非 ASCII 字符),则当成普通文本处理
19
+ if (href && /[^\x00-\x7F]/g.test(href)) {
20
+ return text;
21
+ }
18
22
  return `<a target="_blank" rel="noreferrer noopenner" class="message-marked_link" href="${href || ''}" title="${title}">${text}</a>`;
19
23
  },
20
24
  },
@@ -8,10 +8,9 @@
8
8
  {{ content.header || content.title }}
9
9
  </div>
10
10
  <div
11
- v-if="!isSelected"
12
11
  v-for="(item, index) in content.items"
13
12
  :key="index"
14
- class="branch-body branch-bubble branch-item"
13
+ :class="['branch-body','branch-bubble','branch-item',isSelected ? 'branch-item-selected' : '']"
15
14
  :style="{ borderWidth: content.header ? '1px 0 0px 0' : '' }"
16
15
  @click="handleContentListItemClick(item)"
17
16
  >
@@ -61,8 +60,10 @@ export default {
61
60
  });
62
61
 
63
62
  const handleContentListItemClick = (branch: branchItem) => {
64
- isSelected.value = true;
65
- emit('sendMessage', { text: branch.content });
63
+ if(!isSelected.value) {
64
+ isSelected.value = true;
65
+ emit('sendMessage', { text: branch.content });
66
+ }
66
67
  };
67
68
 
68
69
  return {
@@ -117,4 +118,12 @@ export default {
117
118
  flex-direction:column;
118
119
  align-items: flex-start;
119
120
  }
121
+ .branch-item-selected {
122
+ cursor:none;
123
+ color: #a0a7b8;
124
+ opacity:0.6;
125
+ }
126
+ .branch-title-icon {
127
+ margin-right: 5px;
128
+ }
120
129
  </style>
@@ -9,7 +9,7 @@
9
9
  @input="onInputChanged"
10
10
  >
11
11
  <div v-if="validator" class="validator-line">
12
- 请填写必填项
12
+ {{TUITranslateService.t("AIDesk.请填写必填项")}}
13
13
  </div>
14
14
  </div>
15
15
 
@@ -18,6 +18,7 @@
18
18
  <script lang="ts">
19
19
  import vue from '../../../../../../../../adapter-vue';
20
20
  import LabelMobile from './label-mobile.vue';
21
+ import { TUITranslateService } from '@tencentcloud/chat-uikit-engine';
21
22
  const { computed, ref} = vue;
22
23
 
23
24
  interface FormItem{
@@ -68,7 +69,8 @@ export default {
68
69
  return {
69
70
  text,
70
71
  onInputChanged,
71
- props
72
+ props,
73
+ TUITranslateService
72
74
  }
73
75
  }
74
76
  }
@@ -5,7 +5,7 @@
5
5
  </div>
6
6
  <div class="radio-container">
7
7
  <div v-if="validator" class="validator-line">
8
- 请填写必填项
8
+ {{ TUITranslateService.t("AIDesk.请填写必填项") }}
9
9
  </div>
10
10
  <div class="form-radio-box-mobile" v-for="(item,index) in chooseItemList" :key="index">
11
11
  <div class="radio-container-uni" @click="clickItem(index)">
@@ -33,6 +33,7 @@ import Icon from '../../customer-icon.vue';
33
33
  import radioUncheckIcon from '../../../../../../../../assets/radio-uncheck.png';
34
34
  import radioCheckIcon from '../../../../../../../../assets/radio-check.png';
35
35
  import { isPC, isH5,isWeChat, isUniFrameWork } from '../../../../../../../../utils/env';
36
+ import { TUITranslateService } from '@tencentcloud/chat-uikit-engine';
36
37
  const { ref} = vue;
37
38
  export default {
38
39
  components:{
@@ -84,7 +85,8 @@ export default {
84
85
  radioUncheckIcon,
85
86
  radioCheckIcon,
86
87
  changeSelectedIcon,
87
- checkedIcon
88
+ checkedIcon,
89
+ TUITranslateService
88
90
  }
89
91
  }
90
92
  }
@@ -8,7 +8,7 @@
8
8
  @change="onInputChanged"
9
9
  >
10
10
  <div v-if="validator" class="validator-line">
11
- 请填写必填项
11
+ {{ TUITranslateService.t("AIDesk.请填写必填项") }}
12
12
  </div>
13
13
  </div>
14
14
 
@@ -16,6 +16,7 @@
16
16
  </template>
17
17
  <script lang="ts">
18
18
  import vue from '../../../../../../../../adapter-vue';
19
+ import { TUITranslateService } from '@tencentcloud/chat-uikit-engine';
19
20
  const { computed, ref} = vue;
20
21
 
21
22
  interface FormItem{
@@ -62,7 +63,8 @@ export default {
62
63
  };
63
64
  return {
64
65
  text,
65
- onInputChanged
66
+ onInputChanged,
67
+ TUITranslateService
66
68
  }
67
69
  }
68
70
  }
@@ -2,7 +2,7 @@
2
2
  <div>
3
3
  <div class="radio-container-pc">
4
4
  <div v-if="validator" class="validator-line">
5
- 请填写必填项
5
+ {{ TUITranslateService.t("AIDesk.请填写必填项") }}
6
6
  </div>
7
7
  <div class="form-radio-box-pc" v-for="(item,index) in chooseItemList" :key="index">
8
8
  <div class="radio-container-pc-icon" @click="clickItem(index)">
@@ -22,7 +22,8 @@
22
22
  import vue from '../../../../../../../../adapter-vue';
23
23
  import radioUncheckIcon from '../../../../../../../../assets/radio-uncheck.png';
24
24
  import radioCheckIcon from '../../../../../../../../assets/radio-check.png';
25
- const { ref} = vue;
25
+ import { TUITranslateService } from '@tencentcloud/chat-uikit-engine';
26
+ const { ref } = vue;
26
27
  export default {
27
28
  props:{
28
29
  chooseItemList:{
@@ -68,7 +69,8 @@ export default {
68
69
  radioUncheckIcon,
69
70
  radioCheckIcon,
70
71
  changeSelectedIcon,
71
- checkedIcon
72
+ checkedIcon,
73
+ TUITranslateService
72
74
  }
73
75
  }
74
76
  }
@@ -3,7 +3,7 @@
3
3
  <div v-if="!finishSubmit && props.payload.nodeStatus == 0" class="before-form">
4
4
  <Icon :src="iconForm" width="60px" height="60px" style="margin:5px 4px"/>
5
5
  <div class="form-button" @click="clickShowDialog">
6
- 立即填写
6
+ {{TUITranslateService.t("AIDesk.立即填写")}}
7
7
  </div>
8
8
  </div>
9
9
  <div class="edit-form">
@@ -46,7 +46,7 @@
46
46
  </div>
47
47
  <div class="button-container"v-if="!finishSubmit && props.payload.nodeStatus == 0">
48
48
  <div class="button" @click="handleSendForm">
49
- 提交
49
+ {{TUITranslateService.t("AIDesk.提交")}}
50
50
  </div>
51
51
 
52
52
  </div>
@@ -62,7 +62,7 @@
62
62
  </div>
63
63
 
64
64
  <div class="form-button" @click="clickShowDialog">
65
- 查看内容
65
+ {{TUITranslateService.t("AIDesk.查看内容")}}
66
66
  </div>
67
67
  </div>
68
68
  </div>
@@ -80,6 +80,7 @@ import RadioMobile from './component-mobile/radios-mobile.vue';
80
80
  import LabelMobile from './component-mobile/label-mobile.vue';
81
81
  import FormPopup from './component-mobile/form-popup.vue';
82
82
  import { CUSTOM_MESSAGE_SRC } from '../../../../../../../constant';
83
+ import {TUITranslateService} from '@tencentcloud/chat-uikit-engine';
83
84
  const { ref , onMounted,computed} = vue;
84
85
  interface Props {
85
86
  payload: customerServicePayloadType;
@@ -194,7 +195,8 @@ export default {
194
195
  handleInputChange,
195
196
  handleSendForm,
196
197
  closeDialog,
197
- isValid
198
+ isValid,
199
+ TUITranslateService
198
200
  }
199
201
  }
200
202
  }
@@ -6,7 +6,7 @@
6
6
  </div>
7
7
  <div class="form-finish-title-right" v-if="finishSubmit || props.payload.nodeStatus == 2" >
8
8
  <Icon :src="iconSucess" style="margin:0px 4px"/>
9
- 已提交
9
+ {{TUITranslateService.t("AIDesk.已提交")}}
10
10
  </div>
11
11
  </div>
12
12
 
@@ -28,7 +28,7 @@
28
28
 
29
29
  <div class="button-container"v-if="!finishSubmit && props.payload.nodeStatus == 0">
30
30
  <div class="button" @click="handleSendForm">
31
- 提交
31
+ {{TUITranslateService.t("AIDesk.提交")}}
32
32
  </div>
33
33
 
34
34
  </div>
@@ -44,6 +44,7 @@ import RadioPC from './component-pc/radio-pc.vue';
44
44
  import Icon from '../customer-icon.vue';
45
45
  import iconSucess from '../../../../../../../assets/icon_success.png';
46
46
  import { CUSTOM_MESSAGE_SRC } from '../../../../../../../constant';
47
+ import {TUITranslateService} from '@tencentcloud/chat-uikit-engine';
47
48
  const { ref, onMounted } = vue;
48
49
  interface Props {
49
50
  payload: customerServicePayloadType;
@@ -147,7 +148,8 @@ export default {
147
148
  mapValue,
148
149
  isSubmit,
149
150
  checkTip,
150
- isValid
151
+ isValid,
152
+ TUITranslateService
151
153
  };
152
154
  },
153
155
  };
@@ -21,7 +21,7 @@
21
21
  {{ props.payload.content.desc }}
22
22
  </div>
23
23
  <div class="product-card-link" @click="jumpProductCard">
24
- 跳转
24
+ {{TUITranslateService.t("AIDesk.跳转")}}
25
25
  </div>
26
26
  </div>
27
27
  </div>
@@ -31,7 +31,7 @@
31
31
  <script lang="ts">
32
32
  import { customerServicePayloadType } from '../../../../../../interface';
33
33
  import { isApp } from '../../../../../../utils/env';
34
-
34
+ import {TUITranslateService} from '@tencentcloud/chat-uikit-engine';
35
35
  // eslint-disable-next-line
36
36
  declare var uni: any;
37
37
 
@@ -67,38 +67,42 @@ export default {
67
67
  props,
68
68
  isApp,
69
69
  jumpProductCard,
70
+ TUITranslateService
70
71
  };
71
72
  },
72
73
  };
73
74
  </script>
74
75
  <style lang="scss" scoped>
75
76
  .message-product-card {
76
- min-width: 224px;
77
- max-width: 288px;
77
+ min-width: 200px;
78
+ max-width: 400px;
78
79
  display: flex;
79
- padding: 10px;
80
80
 
81
81
  .product-img {
82
82
  width: 75px;
83
83
  height: 75px;
84
84
  border-radius: 10px;
85
+ flex-shrink: 0;
86
+ object-fit: cover;
85
87
  }
86
88
 
87
89
  .product-card-information {
88
90
  width:100%;
89
- margin-left: 12px;
91
+ margin-left: 15px;
90
92
  margin-right:5px;
91
93
  display: flex;
92
94
  flex-direction: column;
93
95
  justify-content: space-between;
94
96
 
95
97
  .product-card-title {
96
- font-size: 16px;
97
- max-width: 165px;
98
+ max-width: 200px;
99
+ min-width: 100px;
100
+ color: #000000;
101
+ font-size: 14px;
98
102
  display: -webkit-box;
99
103
  overflow: hidden;
100
104
  text-overflow: ellipsis;
101
- -webkit-line-clamp: 3;
105
+ -webkit-line-clamp: 2;
102
106
  -webkit-box-orient: vertical;
103
107
  word-break: break-all;
104
108
  }
@@ -106,23 +110,29 @@ export default {
106
110
  .product-card-description-block {
107
111
  display:flex;
108
112
  justify-content: space-between;
113
+ align-items: center;
114
+ gap: 5px;
109
115
  }
110
116
 
111
117
  .product-card-description {
112
- font-size: 14px;
113
- max-width: 165px;
118
+ font-size: 12px;
119
+ max-width: 60px;
114
120
  color: #1c66e5;
115
121
  overflow: hidden;
116
122
  text-overflow: ellipsis;
117
123
  white-space: nowrap;
118
124
  font-weight: 600;
125
+ flex: 0 1 60px;
119
126
  }
120
127
 
121
128
  .product-card-link {
129
+ cursor: pointer;
122
130
  background-color: #1c66e5;
123
131
  color:#ffffff;
124
132
  padding:2px 12px;
125
133
  border-radius: 12px;
134
+ flex: 0 0 auto;
135
+ margin-left: auto;
126
136
  }
127
137
  }
128
138
  }
@@ -5,7 +5,7 @@
5
5
  </p>
6
6
 
7
7
  <div class="rating-card">
8
- <span class="card-title">请对本次服务进行评价</span>
8
+ <span class="card-title">{{ TUITranslateService.t("AIDesk.请对本次服务进行评价") }}</span>
9
9
  <div class="card-wrapper">
10
10
  <div style="max-width: 250px">
11
11
  <div
@@ -27,11 +27,11 @@
27
27
  </div>
28
28
  </div>
29
29
  </div>
30
- <div :style="{ marginTop: 10 + 'px', marginBottom: 10 + 'px' }">
30
+ <div :style="{ marginTop: 10 + 'px', marginBottom: 10 + 'px', wordBreak: 'normal' }">
31
31
  {{
32
32
  hoverValue === -1
33
33
  ? selectValue === -1
34
- ? "如果满意请给好评哦~"
34
+ ? TUITranslateService.t("AIDesk.如果满意请给好评哦~")
35
35
  : desc[selectValue]
36
36
  : desc[hoverValue]
37
37
  }}
@@ -41,7 +41,7 @@
41
41
  :disabled="hasReply || hasExpire"
42
42
  @click="submitRatingStar"
43
43
  >
44
- 提交评价
44
+ {{ TUITranslateService.t("AIDesk.提交评价") }}
45
45
  </button>
46
46
  </div>
47
47
  <p
@@ -60,6 +60,7 @@
60
60
  import vue from '../../../../../../../adapter-vue';
61
61
  import { CUSTOM_MESSAGE_SRC } from '../../../../../../../constant';
62
62
  import { ratingTemplateType } from '../../../../../../../interface';
63
+ import { TUITranslateService } from '@tencentcloud/chat-uikit-engine';
63
64
  const { computed, ref, watchEffect } = vue;
64
65
 
65
66
  interface Props {
@@ -148,6 +149,7 @@ export default {
148
149
  setValue,
149
150
  setHoverValue,
150
151
  submitRatingStar,
152
+ TUITranslateService
151
153
  };
152
154
  },
153
155
  };
@@ -172,7 +174,6 @@ export default {
172
174
 
173
175
  .rating-card {
174
176
  min-width: 270px;
175
- width: 50%;
176
177
  background: #fbfbfb;
177
178
  border-radius: 20px;
178
179
  border: 0;
@@ -202,7 +203,6 @@ export default {
202
203
  }
203
204
 
204
205
  .submit-button {
205
- width: 50%;
206
206
  height: 50px;
207
207
  background-color: #0365f9;
208
208
  font-size: 18px;
@@ -4,7 +4,7 @@
4
4
  {{ props.ratingTemplate.head }}
5
5
  </p>
6
6
  <div class="rating-card">
7
- <span class="card-title">请对本次服务进行评价</span>
7
+ <span class="card-title">{{ TUITranslateService.t("AIDesk.请对本次服务进行评价") }}</span>
8
8
  <div class="card-wrapper">
9
9
  <div style="max-width: 200px">
10
10
  <div
@@ -30,11 +30,11 @@
30
30
  </div>
31
31
  </div>
32
32
  </div>
33
- <div :style="{ marginTop: 10 + 'px', marginBottom: 10 + 'px' }">
33
+ <div :style="{ marginTop: 10 + 'px', marginBottom: 10 + 'px', wordBreak: 'normal' }">
34
34
  {{
35
35
  hoverValue === -1
36
36
  ? value === -1
37
- ? "如果满意请给好评哦~"
37
+ ? TUITranslateService.t("AIDesk.如果满意请给好评哦~")
38
38
  : desc[value]
39
39
  : desc[hoverValue]
40
40
  }}
@@ -44,7 +44,7 @@
44
44
  :disabled="hasReply || hasExpire"
45
45
  @click="submitRatingStar"
46
46
  >
47
- 提交评价
47
+ {{ TUITranslateService.t("AIDesk.提交评价") }}
48
48
  </button>
49
49
  </div>
50
50
  <p
@@ -66,6 +66,7 @@ import { ratingTemplateType } from '../../../../../../../interface';
66
66
  import star from '../../../../../../../assets/star.png';
67
67
  import starLine from '../../../../../../../assets/starLine.png';
68
68
  import Icon from '../customer-icon.vue';
69
+ import { TUITranslateService } from '@tencentcloud/chat-uikit-engine';
69
70
  const { computed, ref, watchEffect } = vue;
70
71
 
71
72
  interface Props {
@@ -169,6 +170,7 @@ export default {
169
170
  submitRatingStar,
170
171
  star,
171
172
  starLine,
173
+ TUITranslateService
172
174
  };
173
175
  },
174
176
  };
@@ -193,7 +195,6 @@ export default {
193
195
 
194
196
  .rating-card {
195
197
  min-width: 250px;
196
- width: 50%;
197
198
  background: #fbfbfb;
198
199
  border-radius: 20px;
199
200
  border: 0;
@@ -223,15 +224,14 @@ export default {
223
224
  }
224
225
 
225
226
  .submit-button {
226
- width: 40%;
227
- height: 35px;
228
- background-color: #0365f9;
229
- font-size: 14px;
230
- font-weight: 400;
231
- color: white;
232
- border: 0;
233
- border-radius: 8px;
234
- cursor: pointer;
227
+ height: 35px;
228
+ background-color: #0365f9;
229
+ font-size: 14px;
230
+ font-weight: 400;
231
+ color: white;
232
+ border: 0;
233
+ border-radius: 8px;
234
+ cursor: pointer;
235
235
  }
236
236
 
237
237
  </style>
@@ -14,9 +14,6 @@
14
14
  class="change-wrapper"
15
15
  @click="changeBranchList()"
16
16
  >
17
- <div style="margin-right: 3px;">
18
- 换一换
19
- </div>
20
17
  <Icon :src="iconRefresh" />
21
18
  </div>
22
19
  </div>
@@ -98,7 +95,7 @@ export default {
98
95
  iconRight,
99
96
  changeBranchList,
100
97
  iconQuestion,
101
- iconRefresh
98
+ iconRefresh,
102
99
  };
103
100
  },
104
101
  };
@@ -106,7 +103,6 @@ export default {
106
103
 
107
104
  <style lang="scss">
108
105
  .welcome-card {
109
- min-width: 300px;
110
106
  max-width: 400px;
111
107
 
112
108
  .welcome-title {
@@ -125,7 +121,7 @@ export default {
125
121
  .card-title {
126
122
  display: inline-block;
127
123
  margin-left: 8px;
128
- font-size: 16px;
124
+ font-size: 14px;
129
125
  }
130
126
 
131
127
  .el-link {
@@ -7,7 +7,7 @@
7
7
  {{ props.title }}
8
8
  </div>
9
9
  <div class="form-button" @click="showForm">
10
- 立即填写
10
+ {{ TUITranslateService.t("AIDesk.立即填写") }}
11
11
  </div>
12
12
  </div>
13
13
 
@@ -26,7 +26,7 @@
26
26
  <input
27
27
  v-model="text"
28
28
  class="form-input"
29
- placeholder="请输入内容"
29
+ :placeholder="TUITranslateService.t('AIDesk.请输入内容')"
30
30
  >
31
31
  </div>
32
32
  </div>
@@ -38,7 +38,7 @@
38
38
  </div>
39
39
  <div class="form-finish-title-right">
40
40
  <Icon :src="iconSucess" style="margin:0px 4px"/>
41
- 已提交
41
+ {{ TUITranslateService.t("AIDesk.已提交") }}
42
42
  </div>
43
43
  </div>
44
44
  <div>
@@ -52,6 +52,7 @@ import vue from '../../../../../../../adapter-vue';
52
52
  import iconForm from '../../../../../../../assets/icon_form.png';
53
53
  import Icon from '../customer-icon.vue';
54
54
  import iconSucess from '../../../../../../../assets/icon_success.png';
55
+ import { TUITranslateService } from '@tencentcloud/chat-uikit-engine';
55
56
  const { computed, ref} = vue;
56
57
 
57
58
  interface Props {
@@ -94,7 +95,8 @@ export default {
94
95
  isShowForm,
95
96
  showForm,
96
97
  iconSucess,
97
- isFinish
98
+ isFinish,
99
+ TUITranslateService
98
100
  };
99
101
  },
100
102
  };
@@ -3,7 +3,7 @@
3
3
  class="message-location"
4
4
  :href="data.href"
5
5
  target="_blank"
6
- title="点击查看详情"
6
+ :title="TUITranslateService.t('AIDesk.跳转')"
7
7
  >
8
8
  <span class="el-icon-location-outline">{{ data.description }}</span>
9
9
  <img :src="data.url">
@@ -11,6 +11,7 @@
11
11
  </template>
12
12
 
13
13
  <script lang="ts" setup>
14
+ import { TUITranslateService } from '@tencentcloud/chat-uikit-engine';
14
15
  import vue from '../../../../adapter-vue';
15
16
  const { watchEffect, ref } = vue;
16
17
  const props = defineProps({
@@ -98,6 +98,6 @@ watchEffect(() => {
98
98
  text-size-adjust: none;
99
99
  font-family: PingFangSC-Regular;
100
100
  overflow-wrap: break-word;
101
- word-break: keep-all;
101
+ word-break: normal;
102
102
  }
103
103
  </style>