@tencentcloud/ai-desk-customer-vue 1.5.6 → 1.5.8

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 (58) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/assets/feedback_dislike_after.svg +1 -1
  3. package/assets/feedback_dislike_before.svg +2 -9
  4. package/assets/feedback_dislike_hover.svg +2 -9
  5. package/assets/feedback_like_after.svg +2 -13
  6. package/assets/feedback_like_before.svg +2 -9
  7. package/assets/feedback_like_hover.svg +2 -9
  8. package/components/CustomerServiceChat/chat-header/index-web.vue +10 -10
  9. package/components/CustomerServiceChat/feedback-modal/index.vue +391 -0
  10. package/components/CustomerServiceChat/index-web.vue +26 -0
  11. package/components/CustomerServiceChat/message-input/message-input-editor-web.vue +0 -1
  12. package/components/CustomerServiceChat/message-input/message-input-quote/index.vue +0 -3
  13. package/components/CustomerServiceChat/message-input-toolbar/index-web.vue +4 -2
  14. package/components/CustomerServiceChat/message-list/bottom-quick-order/index.vue +0 -1
  15. package/components/CustomerServiceChat/message-list/index-web.vue +90 -61
  16. package/components/CustomerServiceChat/message-list/message-elements/feedback-button.vue +96 -251
  17. package/components/CustomerServiceChat/message-list/message-elements/message-bubble-web.vue +51 -16
  18. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-concurrency-limit.vue +0 -2
  19. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-ivr-form/form-branch.vue +0 -1
  20. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-branch/branch-pc.vue +0 -2
  21. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/form-mobile.vue +5 -9
  22. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/form-pc.vue +0 -1
  23. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-order.vue +0 -1
  24. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-product-card.vue +0 -1
  25. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-rating/message-rating-star.vue +0 -1
  26. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-stream.vue +0 -1
  27. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-transfer-with-desc.vue +0 -1
  28. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/styles/common.scss +0 -2
  29. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-plugin-layout-web.vue +16 -0
  30. package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-plugin-web.vue +18 -0
  31. package/components/CustomerServiceChat/message-list/message-elements/message-quote/index-web.vue +0 -3
  32. package/components/CustomerServiceChat/message-list/message-elements/message-text.vue +0 -1
  33. package/components/CustomerServiceChat/message-list/message-elements/message-timestamp.vue +0 -1
  34. package/components/CustomerServiceChat/message-list/message-elements/read-status/index.vue +4 -2
  35. package/components/CustomerServiceChat/message-list/scroll-button/index.vue +8 -4
  36. package/components/CustomerServiceChat/message-list/style/web.scss +0 -2
  37. package/components/CustomerServiceChat/message-toolbar-button/index.vue +8 -5
  38. package/components/CustomerServiceChat/style/common.scss +4 -0
  39. package/components/CustomerServiceChat/style/web.scss +2 -1
  40. package/components/common/BottomPopup/style/h5.scss +0 -1
  41. package/components/common/Dialog/style/color.scss +0 -1
  42. package/components/common/Toast/index-web.vue +1 -1
  43. package/constant.ts +2 -0
  44. package/locales/en/aidesk.ts +18 -15
  45. package/locales/fil/aidesk.ts +17 -15
  46. package/locales/id/aidesk.ts +17 -15
  47. package/locales/ja/aidesk.ts +17 -15
  48. package/locales/ms/aidesk.ts +17 -15
  49. package/locales/ru/aidesk.ts +17 -15
  50. package/locales/th/aidesk.ts +17 -15
  51. package/locales/vi/aidesk.ts +17 -15
  52. package/locales/zh_cn/aidesk.ts +17 -14
  53. package/locales/zh_tw/aidesk.ts +17 -15
  54. package/package.json +1 -1
  55. package/server.ts +5 -2
  56. package/utils/index.ts +6 -0
  57. package/utils/utils.ts +42 -0
  58. package/assets/customer_avatar.png +0 -0
@@ -15,23 +15,25 @@ const AIDesk = {
15
15
  "服务评价": "การประเมินบริการ",
16
16
  "并发限制": "ปัจจุบันมีผู้ใช้งานจำนวนมาก กรุณาลองใหม่ในภายหลัง",
17
17
  "分支选项异常": "เนื้อหาผิดปกติ กรุณาตรวจสอบการตั้งค่ากระบวนการงาน",
18
- "满意":"พอใจ",
19
- "不满意":"ไม่พอใจ",
20
- "感谢您的反馈,我们会持续优化改进":"ขอบคุณสำหรับความคิดเห็น เราจะปรับปรุงอย่างต่อเนื่อง",
21
- "您遇到了哪方面的问题":"คุณประสบปัญหาด้านใด",
22
- "其他反馈内容":"ความคิดเห็นอื่นๆ",
23
- "取消":"ยกเลิก",
24
- "答非所问":"คำตอบไม่เกี่ยวข้อง",
25
- "未匹配相关内容":"ไม่พบเนื้อหาที่เกี่ยวข้อง",
26
- "信息错误":"ข้อมูลผิดพลาด",
27
- "上下文理解错误":"ความเข้าใจบริบทผิดพลาด",
28
- "格式不规范":"รูปแบบไม่ถูกต้อง",
29
- "内容不完整":"เนื้อหาไม่สมบูรณ์",
30
- "file 大小超过 100MB,无法发送":"ขนาดไฟล์เกิน 100MB ไม่สามารถส่งได้",
31
- "image 大小超过 20MB,无法发送":"ไม่สามารถส่งรูปภาพได้เนื่องจากขนาดเกิน 20 MB",
32
- "video 大小超过 100MB,无法发送":"ไม่สามารถส่งวิดีโอได้เนื่องจากขนาดเกิน 100 MB",
18
+ "满意": "พอใจ",
19
+ "不满意": "ไม่พอใจ",
20
+ "感谢您的反馈,我们会持续优化改进": "ขอบคุณสำหรับความคิดเห็น เราจะปรับปรุงอย่างต่อเนื่อง",
21
+ "您遇到了哪方面的问题": "คุณประสบปัญหาด้านใด",
22
+ "其他反馈内容": "ความคิดเห็นอื่นๆ",
23
+ "取消": "ยกเลิก",
24
+ "答非所问": "คำตอบไม่เกี่ยวข้อง",
25
+ "未匹配相关内容": "ไม่พบเนื้อหาที่เกี่ยวข้อง",
26
+ "信息错误": "ข้อมูลผิดพลาด",
27
+ "上下文理解错误": "ความเข้าใจบริบทผิดพลาด",
28
+ "格式不规范": "รูปแบบไม่ถูกต้อง",
29
+ "内容不完整": "เนื้อหาไม่สมบูรณ์",
30
+ "file 大小超过 100MB,无法发送": "ขนาดไฟล์เกิน 100MB ไม่สามารถส่งได้",
31
+ "image 大小超过 20MB,无法发送": "ไม่สามารถส่งรูปภาพได้เนื่องจากขนาดเกิน 20 MB",
32
+ "video 大小超过 100MB,无法发送": "ไม่สามารถส่งวิดีโอได้เนื่องจากขนาดเกิน 100 MB",
33
+ "提交成功": "ส่งสำเร็จ",
33
34
  "userID 只能包含可打印 ASCII 字符": "UserID ต้องมีเฉพาะตัวอักษร ASCII ที่พิมพ์ได้เท่านั้น",
34
35
  "userID 不能包含'administrator'": "UserID ห้ามมี 'administrator'",
35
36
  "userID 长度不能超过45字节": "ความยาว UserID ต้องไม่เกิน 45 ไบต์",
37
+ "我们想知道你对此回答不满意的原因,你认为更好的回答是什么?": "เราขอขอบคุณสำหรับความคิดเห็นของคุณ โปรดแบ่งปันข้อเสนอแนะใดๆ เพื่อช่วยเราปรับปรุง",
36
38
  }
37
39
  export default AIDesk;
@@ -15,23 +15,25 @@ const AIDesk = {
15
15
  "服务评价": " Đánh giá dịch vụ",
16
16
  "并发限制": "Hiện có quá nhiều người đang truy cập. Vui lòng thử lại sau",
17
17
  "分支选项异常": "Nội dung bất thường, vui lòng kiểm tra cấu hình luồng tác vụ",
18
- "满意":"Hài lòng",
19
- "不满意":"Không hài lòng",
20
- "感谢您的反馈,我们会持续优化改进":"Cảm ơn phản hồi của bạn, chúng tôi sẽ tiếp tục cải thiện",
21
- "您遇到了哪方面的问题":"Bạn gặp vấn đề gì",
22
- "其他反馈内容":"Phản hồi khác",
23
- "取消":"Hủy",
24
- "答非所问":"Câu trả lời không liên quan",
25
- "未匹配相关内容":"Không có nội dung phù hợp",
26
- "信息错误":"Thông tin sai",
27
- "上下文理解错误":"Hiểu sai ngữ cảnh",
28
- "格式不规范":"Định dạng không chuẩn",
29
- "内容不完整":"Nội dung không đầy đủ",
30
- "file 大小超过 100MB,无法发送":"Kích thước tệp vượt quá 100MB, không thể gửi",
31
- "image 大小超过 20MB,无法发送":"Không thể gửi hình ảnh do vượt quá 20 MB",
32
- "video 大小超过 100MB,无法发送":"Không thể gửi video do vượt quá 100 MB",
18
+ "满意": "Hài lòng",
19
+ "不满意": "Không hài lòng",
20
+ "感谢您的反馈,我们会持续优化改进": "Cảm ơn phản hồi của bạn, chúng tôi sẽ tiếp tục cải thiện",
21
+ "您遇到了哪方面的问题": "Bạn gặp vấn đề gì",
22
+ "其他反馈内容": "Phản hồi khác",
23
+ "取消": "Hủy",
24
+ "答非所问": "Câu trả lời không liên quan",
25
+ "未匹配相关内容": "Không có nội dung phù hợp",
26
+ "信息错误": "Thông tin sai",
27
+ "上下文理解错误": "Hiểu sai ngữ cảnh",
28
+ "格式不规范": "Định dạng không chuẩn",
29
+ "内容不完整": "Nội dung không đầy đủ",
30
+ "file 大小超过 100MB,无法发送": "Kích thước tệp vượt quá 100MB, không thể gửi",
31
+ "image 大小超过 20MB,无法发送": "Kích thước hình ảnh vượt quá 20MB, không thể gửi",
32
+ "video 大小超过 100MB,无法发送": "Kích thước video vượt quá 100MB, không thể gửi",
33
+ "提交成功": "Gửi thành công",
33
34
  "userID 只能包含可打印 ASCII 字符": "UserID chỉ được chứa ký tự ASCII có thể in được",
34
35
  "userID 不能包含'administrator'": "UserID không được chứa 'administrator'",
35
36
  "userID 长度不能超过45字节": "Độ dài UserID không được vượt quá 45 byte",
37
+ "我们想知道你对此回答不满意的原因,你认为更好的回答是什么?": "Chúng tôi rất cảm kích phản hồi của bạn. Vui lòng chia sẻ bất kỳ đề xuất nào để giúp chúng tôi cải thiện.",
36
38
  }
37
39
  export default AIDesk;
@@ -15,23 +15,26 @@ const AIDesk = {
15
15
  "服务评价": "服务评价",
16
16
  "并发限制": "当前咨询人数较多,请稍后再试",
17
17
  "分支选项异常": "内容异常,请检查任务流配置",
18
- "满意":"满意",
19
- "不满意":"不满意",
20
- "感谢您的反馈,我们会持续优化改进":"感谢您的反馈,我们会持续优化改进",
21
- "您遇到了哪方面的问题":"您遇到了哪方面的问题",
22
- "其他反馈内容":"其他反馈内容",
23
- "取消":"取消",
24
- "答非所问":"答非所问",
25
- "未匹配相关内容":"未匹配相关内容",
26
- "信息错误":"信息错误",
27
- "上下文理解错误":"上下文理解错误",
28
- "格式不规范":"格式不规范",
29
- "内容不完整":"内容不完整",
18
+ "满意": "满意",
19
+ "不满意": "不满意",
20
+ "感谢您的反馈,我们会持续优化改进": "感谢您的反馈,我们会持续优化改进",
21
+ "您遇到了哪方面的问题": "您遇到了哪方面的问题",
22
+ "其他反馈内容": "其他反馈内容",
23
+ "取消": "取消",
24
+ "答非所问": "答非所问",
25
+ "未匹配相关内容": "未匹配相关内容",
26
+ "信息错误": "信息错误",
27
+ "上下文理解错误": "上下文理解错误",
28
+ "格式不规范": "格式不规范",
29
+ "内容不完整": "内容不完整",
30
30
  "file 大小超过 100MB,无法发送": "file 大小超过 100MB,无法发送",
31
- "image 大小超过 20MB,无法发送":"image 大小超过 20MB,无法发送",
32
- "video 大小超过 100MB,无法发送":"video 大小超过 100MB,无法发送",
31
+ "image 大小超过 20MB,无法发送": "image 大小超过 20MB,无法发送",
32
+ "video 大小超过 100MB,无法发送": "video 大小超过 100MB,无法发送",
33
+ "提交成功": "提交成功",
33
34
  "userID 只能包含可打印 ASCII 字符": "userID 只能包含可打印 ASCII 字符",
34
35
  "userID 不能包含'administrator'": "userID 不能包含'administrator'",
35
36
  "userID 长度不能超过45字节": "userID 长度不能超过45字节",
37
+ "我们想知道你对此回答不满意的原因,你认为更好的回答是什么?": "我们想知道你对此回答不满意的原因,你认为更好的回答是什么?",
38
+ "该回复由AI生成,内容仅供参考": "该回复由AI生成,内容仅供参考",
36
39
  }
37
40
  export default AIDesk;
@@ -15,23 +15,25 @@ const AIDesk = {
15
15
  "服务评价": "服務評價",
16
16
  "并发限制": "目前諮詢人數較多,請稍後再試",
17
17
  "分支选项异常": "內容異常,請檢查任務流配置",
18
- "满意":"滿意",
19
- "不满意":"不滿意",
20
- "感谢您的反馈,我们会持续优化改进":"感謝您的反饋,我們會持續優化改進",
21
- "您遇到了哪方面的问题":"您遇到了哪方面的問題",
22
- "其他反馈内容":"其他反饋內容",
23
- "取消":"取消",
24
- "答非所问":"答非所問",
25
- "未匹配相关内容":"未匹配相關內容",
26
- "信息错误":"信息錯誤",
27
- "上下文理解错误":"上下文理解錯誤",
28
- "格式不规范":"格式不規範",
29
- "内容不完整":"內容不完整",
30
- "file 大小超过 100MB,无法发送":"檔案大小超過100MB,無法傳送",
31
- "image 大小超过 20MB,无法发送":"圖片大小超過20MB,無法傳送",
32
- "video 大小超过 100MB,无法发送":"影片大小超過100MB,無法傳送",
18
+ "满意": "滿意",
19
+ "不满意": "不滿意",
20
+ "感谢您的反馈,我们会持续优化改进": "感謝您的反饋,我們會持續優化改進",
21
+ "您遇到了哪方面的问题": "您遇到了哪方面的問題",
22
+ "其他反馈内容": "其他反饋內容",
23
+ "取消": "取消",
24
+ "答非所问": "答非所問",
25
+ "未匹配相关内容": "未匹配相關內容",
26
+ "信息错误": "信息錯誤",
27
+ "上下文理解错误": "上下文理解錯誤",
28
+ "格式不规范": "格式不規範",
29
+ "内容不完整": "內容不完整",
30
+ "file 大小超过 100MB,无法发送": "檔案大小超過100MB,無法傳送",
31
+ "image 大小超过 20MB,无法发送": "圖片大小超過20MB,無法傳送",
32
+ "video 大小超过 100MB,无法发送": "影片大小超過100MB,無法傳送",
33
+ "提交成功": "提交成功",
33
34
  "userID 只能包含可打印 ASCII 字符": "userID 只能包含可打印 ASCII 字元",
34
35
  "userID 不能包含'administrator'": "userID 不能包含'administrator'",
35
36
  "userID 长度不能超过45字节": "userID 長度不能超過45位元組",
37
+ "我们想知道你对此回答不满意的原因,你认为更好的回答是什么?": "我們想知道你對此回答不滿意的原因,你認為更好的答案是什麼?",
36
38
  }
37
39
  export default AIDesk;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tencentcloud/ai-desk-customer-vue",
3
- "version": "1.5.6",
3
+ "version": "1.5.8",
4
4
  "description": "Vue2/Vue3 UIKit for AI Desk",
5
5
  "main": "index",
6
6
  "keywords": [
package/server.ts CHANGED
@@ -19,7 +19,7 @@ import TUIChatEngine, {
19
19
  import Log from './utils/logger';
20
20
  import { version } from './package.json'
21
21
  import { Toast, TOAST_TYPE } from "./components/common/Toast/index-web";
22
- import { switchReadStatus, transferToHuman, transferToTaskFlow, validateUserID } from "./utils/utils";
22
+ import { switchReadStatus, transferToHuman, transferToTaskFlow, validateUserID, updateCustomStore } from "./utils/utils";
23
23
  import state from "./utils/state";
24
24
  import { USER_DEFAULT_AVATAR } from "./constant";
25
25
  import { vueVersion } from "./adapter-vue-web";
@@ -139,6 +139,9 @@ export default class TUICustomerServer {
139
139
  }
140
140
  if (customerServiceID) {
141
141
  this.currentCustomerServiceID = customerServiceID;
142
+ if (!this.customerServiceIDList.includes(this.currentCustomerServiceID)) {
143
+ this.customerServiceIDList.push(this.currentCustomerServiceID);
144
+ }
142
145
  }
143
146
  return this.init(SDKAppID, userID, userSig);
144
147
  }
@@ -277,7 +280,7 @@ export default class TUICustomerServer {
277
280
  }),
278
281
  },
279
282
  }, { onlineUserOnly: true });
280
- TUIStore.update(StoreName.CUSTOM, "isInSession", true);
283
+ updateCustomStore("isInSession", { conversationID: params.conversationID, value: true });
281
284
  Log.w(`TUICustomerServer.activeServiceFlow src 7 sent`);
282
285
  }
283
286
  }
package/utils/index.ts CHANGED
@@ -43,6 +43,12 @@ export const isThinkingMessage = (message: IMessageModel): boolean => {
43
43
  return isCustomerMessage && customerServicePayload?.src === CUSTOM_MESSAGE_SRC.THINKING && customerServicePayload?.thinkingStatus === 0;
44
44
  }
45
45
 
46
+ export const isWelcomeMessage = (message: IMessageModel): boolean => {
47
+ const isCustomerMessage = message.type === TYPES.MSG_CUSTOM;
48
+ const customerServicePayload: customerServicePayloadType = JSONToObject(message.payload.data);
49
+ return isCustomerMessage && customerServicePayload.src === CUSTOM_MESSAGE_SRC.ROBOT_MSG && customerServicePayload.subtype === 'welcome_msg';
50
+ }
51
+
46
52
  export const isTransferMessageWithoutDesc = (message: IMessageModel): boolean => {
47
53
  const isCustomerMessage = message.type === TYPES.MSG_CUSTOM;
48
54
  const customerServicePayload: customerServicePayloadType = JSONToObject(message?.payload?.data);
package/utils/utils.ts CHANGED
@@ -308,6 +308,44 @@ export function transferToHuman(conversationID: string, groupID?: number, specif
308
308
  },{ onlineUserOnly: description ? false : true });
309
309
  }
310
310
 
311
+ const MessageTypeList = [
312
+ 'standardTaskFlowBranchOption', // 标准任务流分支选项。
313
+ 'standardTaskFlowInformationCollection', // 标准任务流信息收集。
314
+ 'standardTaskFlowReplyMessage', // 标准任务流回复消息。
315
+ 'fallback', // 兜底消息。
316
+ 'faq', // 机器人问答库回复消息(命中问答库)。
317
+ 'clarify', // 机器人澄清消息(引导提问)。
318
+ 'chitchat', // 机器人闲聊(欢迎卡片及命中寒暄库)。
319
+ 'rag', // 机器人文档检索回复消息(命中文档问答)。
320
+ 'aiTaskFlowInformationCollection', // 机器人智能任务流信息收集。
321
+ 'aiTaskFlowEndReply', // 机器人智能任务流结束回复。
322
+ 'aiReply', // ai回复(大模型模式下命中大模型回答)。
323
+ ];
324
+
325
+ const AINoteMessageTypeList = [
326
+ 'fallback',
327
+ 'faq',
328
+ 'aiReply',
329
+ ];
330
+
331
+ export function canShowFeedback(cloudCustomData: string): boolean {
332
+ try {
333
+ const jsonObj = JSONToObject(cloudCustomData);
334
+ return MessageTypeList.includes(jsonObj.messageType) && jsonObj.role === "robot";
335
+ } catch (e) {
336
+ return false;
337
+ }
338
+ }
339
+
340
+ export function canShowAINote(cloudCustomData: string): boolean {
341
+ try {
342
+ const jsonObj = JSONToObject(cloudCustomData);
343
+ return AINoteMessageTypeList.includes(jsonObj.messageType) && jsonObj.role === "robot";
344
+ } catch (e) {
345
+ return false;
346
+ }
347
+ }
348
+
311
349
  export function validateUserID(userID: string) {
312
350
  let ret = 0;
313
351
  if (!/^[\x20-\x7E]+$/.test(userID)) {
@@ -321,4 +359,8 @@ export function validateUserID(userID: string) {
321
359
  ret = 3;
322
360
  }
323
361
  return ret;
362
+ }
363
+
364
+ export function updateCustomStore(key: string, data: {conversationID: string, value: boolean}) {
365
+ TUIStore.update(StoreName.CUSTOM, key, data);
324
366
  }
Binary file