@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
package/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## 1.5.8 @2025.8.26
2
+
3
+ ### Features
4
+ - 默认标注 AI 生成内容,满足合规要求。
5
+ - 支持对 AI 生成内容点赞点踩。
6
+ - 优化消息已读回执上报的时机和效率,提升产品体验。
7
+ - 状态变更适配多客服号场景。
8
+ - 默认机器人头像和客服号头像保持一致。
9
+
1
10
  ## 1.5.6 @2025.8.5
2
11
 
3
12
  ### Features
@@ -1,3 +1,3 @@
1
1
  <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <path fill-rule="evenodd" clip-rule="evenodd" d="M5.93575 12.8076C5.98695 14.02 6.63253 14.5243 7.164 14.734C7.5547 14.8882 7.92273 14.5824 7.99512 14.1686L8.18994 13.0553C8.42499 11.7119 9.42462 10.6306 10.7454 10.2909L10.8549 10.2627L10.8549 3.07497L3.82176 3.07497C3.25596 3.07497 2.77309 3.48403 2.68007 4.04214L1.71554 8.96129C1.59796 9.66679 2.142 10.309 2.85723 10.309L5.93575 10.3091C5.93575 10.3091 5.84768 10.7223 5.93575 12.8076ZM12.9133 2.49994L12.9132 10.4999L14.2466 10.4999L14.2466 2.49994L12.9133 2.49994Z" fill="#727A8A"/>
2
+ <path d="M7.91895 14.6355C7.66124 14.8227 7.32493 14.9091 6.97949 14.823L6.83105 14.7752L6.70215 14.7205C6.39723 14.581 6.06449 14.3582 5.79102 14.0037C5.47516 13.5939 5.26737 13.045 5.2373 12.3347C5.19757 11.3938 5.19436 10.7825 5.20215 10.3904L2.73633 10.3904C1.66382 10.3901 0.848318 9.42686 1.02441 8.36891L1.02539 8.36109L1.02734 8.35328L1.99121 3.43434C2.13713 2.60526 2.85784 1.99982 3.70117 1.99977L11.3135 1.99977L11.3135 10.2146L10.8789 10.3259L10.7695 10.3543C9.66896 10.6373 8.83558 11.5386 8.63965 12.658L8.44434 13.7713C8.38459 14.1122 8.20095 14.4305 7.91895 14.6355ZM12.793 2.0027L14.126 2.0027L14.126 10.0027L12.793 10.0027L12.793 2.0027Z" fill="#676A70" style="fill:#676A70;fill:color(display-p3 0.4039 0.4157 0.4392);fill-opacity:1;"/>
3
3
  </svg>
@@ -1,10 +1,3 @@
1
- <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <g clip-path="url(#clip0_8053_26348)">
3
- <path fill-rule="evenodd" clip-rule="evenodd" d="M5.95155 14.2724C6.34804 14.4288 6.74452 14.3465 7.03909 14.1325C7.32135 13.9274 7.50548 13.6096 7.56518 13.2684L7.76 12.155C7.95587 11.0356 8.7889 10.1344 9.88953 9.85137L9.99901 9.82321L10.4336 9.71144L10.4336 9.26273L10.4336 2.07497L10.4336 1.49626L9.85486 1.49625L2.82176 1.49625C1.97608 1.49625 1.2539 2.10548 1.11074 2.93808L0.147638 7.84993L0.146053 7.85802L0.144699 7.86615C-0.0316758 8.92438 0.784381 9.88773 1.85722 9.88774L1.85723 9.88774L4.32106 9.88777C4.31328 10.2799 4.3178 10.891 4.35754 11.832C4.38755 12.5424 4.59551 13.0903 4.91143 13.5001C5.22412 13.9058 5.61379 14.1391 5.95155 14.2724ZM6.42506 13.0689C6.41914 13.1027 6.4075 13.132 6.39372 13.155C6.38304 13.1727 6.37254 13.1843 6.3649 13.1911C6.17486 13.1143 5.98079 12.9915 5.82812 12.7935C5.67558 12.5956 5.53515 12.2851 5.51395 11.7831C5.47028 10.7491 5.47073 10.1393 5.48118 9.79384C5.48639 9.62136 5.49402 9.51761 5.49941 9.46178C5.50165 9.4385 5.50345 9.42423 5.50438 9.41735L5.65078 8.73035L4.93576 8.73034L1.85724 8.7303L1.85723 8.7303C1.50191 8.7303 1.23107 8.41328 1.2853 8.06319L2.24798 3.15349L2.24956 3.1454L2.25092 3.13728C2.29743 2.85822 2.53887 2.65369 2.82176 2.65369L9.27614 2.65369L9.27614 8.82866C7.89788 9.30898 6.87447 10.5005 6.61988 11.9555L6.42506 13.0689ZM11.9133 1.49994L11.9132 9.49994L13.2466 9.49994L13.2466 1.49994L11.9133 1.49994Z" fill="#727A8A"/>
4
- </g>
5
- <defs>
6
- <clipPath id="clip0_8053_26348">
7
- <rect width="14" height="14" fill="white"/>
8
- </clipPath>
9
- </defs>
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M7.91856 14.6355C7.66085 14.8227 7.32454 14.9091 6.9791 14.823L6.83067 14.7752L6.70176 14.7205C6.39684 14.581 6.0641 14.3582 5.79062 14.0037C5.47477 13.5939 5.26698 13.045 5.23691 12.3347C5.19718 11.3938 5.19397 10.7825 5.20176 10.3904L2.73594 10.3904C1.66343 10.3901 0.847927 9.42686 1.02402 8.36891L1.025 8.36109L1.02695 8.35328L1.99082 3.43434C2.13673 2.60527 2.85745 1.99982 3.70078 1.99977L11.3131 1.99977L11.3131 10.2146L10.8785 10.3259L10.7691 10.3543C9.66857 10.6373 8.83519 11.5386 8.63926 12.658L8.44395 13.7713C8.3842 14.1122 8.20056 14.4305 7.91856 14.6355ZM12.7926 2.0027L14.0024 2.0027L14.0024 10.0027L12.7926 10.0027L12.7926 2.0027ZM7.27305 13.658C7.28674 13.6352 7.29837 13.6056 7.3043 13.572L7.49863 12.4588C7.75316 11.0041 8.77712 9.81429 10.1549 9.33375L10.1549 3.15699L3.70078 3.15699C3.41795 3.15705 3.177 3.3614 3.13047 3.64039L3.12852 3.6482L3.12754 3.65699L2.16563 8.56227C2.1089 8.9137 2.37956 9.23291 2.73594 9.23316L6.52988 9.23317L6.38438 9.91774C6.38356 9.92328 6.38106 9.93832 6.37852 9.96461C6.37314 10.0205 6.36517 10.1247 6.35996 10.2966C6.34953 10.6421 6.34952 11.2524 6.39317 12.2859C6.41442 12.7876 6.55512 13.0988 6.70762 13.2966C6.86016 13.4943 7.05397 13.6174 7.24375 13.6941C7.25136 13.6873 7.26237 13.6757 7.27305 13.658Z" fill="#676A70" style="fill:#676A70;fill:color(display-p3 0.4039 0.4157 0.4392);fill-opacity:1;"/>
10
3
  </svg>
@@ -1,10 +1,3 @@
1
- <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <g clip-path="url(#clip0_8984_1331)">
3
- <path fill-rule="evenodd" clip-rule="evenodd" d="M5.95155 14.2724C6.34804 14.4288 6.74452 14.3465 7.03909 14.1325C7.32135 13.9274 7.50548 13.6096 7.56518 13.2684L7.76 12.155C7.95587 11.0356 8.7889 10.1344 9.88953 9.85137L9.99901 9.82321L10.4336 9.71144L10.4336 9.26273L10.4336 2.07497L10.4336 1.49626L9.85486 1.49625L2.82176 1.49625C1.97608 1.49625 1.2539 2.10548 1.11074 2.93808L0.147638 7.84993L0.146053 7.85802L0.144699 7.86615C-0.0316758 8.92438 0.784381 9.88773 1.85722 9.88774L1.85723 9.88774L4.32106 9.88777C4.31328 10.2799 4.3178 10.891 4.35754 11.832C4.38755 12.5424 4.59551 13.0903 4.91143 13.5001C5.22412 13.9058 5.61379 14.1391 5.95155 14.2724ZM6.42506 13.0689C6.41914 13.1027 6.4075 13.132 6.39372 13.155C6.38304 13.1727 6.37254 13.1843 6.3649 13.1911C6.17486 13.1143 5.98079 12.9915 5.82812 12.7935C5.67558 12.5956 5.53515 12.2851 5.51395 11.7831C5.47028 10.7491 5.47073 10.1393 5.48118 9.79384C5.48639 9.62136 5.49402 9.51761 5.49941 9.46178C5.50165 9.4385 5.50345 9.42423 5.50438 9.41735L5.65078 8.73035L4.93576 8.73034L1.85724 8.7303L1.85723 8.7303C1.50191 8.7303 1.23107 8.41328 1.2853 8.06319L2.24798 3.15349L2.24956 3.1454L2.25092 3.13728C2.29743 2.85822 2.53887 2.65369 2.82176 2.65369L9.27614 2.65369L9.27614 8.82866C7.89788 9.30898 6.87447 10.5005 6.61988 11.9555L6.42506 13.0689ZM11.9133 1.49994L11.9132 9.49994L13.2466 9.49994L13.2466 1.49994L11.9133 1.49994Z" fill="#22262E"/>
4
- </g>
5
- <defs>
6
- <clipPath id="clip0_8984_1331">
7
- <rect width="14" height="14" fill="white"/>
8
- </clipPath>
9
- </defs>
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M7.91856 14.6355C7.66085 14.8227 7.32454 14.9091 6.9791 14.823L6.83067 14.7752L6.70176 14.7205C6.39684 14.581 6.0641 14.3582 5.79062 14.0037C5.47477 13.5939 5.26698 13.045 5.23691 12.3347C5.19718 11.3938 5.19397 10.7825 5.20176 10.3904L2.73594 10.3904C1.66343 10.3901 0.847927 9.42686 1.02402 8.36891L1.025 8.36109L1.02695 8.35328L1.99082 3.43434C2.13673 2.60527 2.85745 1.99982 3.70078 1.99977L11.3131 1.99977L11.3131 10.2146L10.8785 10.3259L10.7691 10.3543C9.66857 10.6373 8.83519 11.5386 8.63926 12.658L8.44395 13.7713C8.3842 14.1122 8.20056 14.4305 7.91856 14.6355ZM12.7926 2.0027L14.0024 2.0027L14.0024 10.0027L12.7926 10.0027L12.7926 2.0027ZM7.27305 13.658C7.28674 13.6352 7.29837 13.6056 7.3043 13.572L7.49863 12.4588C7.75316 11.0041 8.77712 9.81429 10.1549 9.33375L10.1549 3.15699L3.70078 3.15699C3.41795 3.15705 3.177 3.3614 3.13047 3.64039L3.12852 3.6482L3.12754 3.65699L2.16563 8.56227C2.1089 8.9137 2.37956 9.23291 2.73594 9.23316L6.52988 9.23317L6.38438 9.91774C6.38356 9.92328 6.38106 9.93832 6.37852 9.96461C6.37314 10.0205 6.36517 10.1247 6.35996 10.2966C6.34953 10.6421 6.34952 11.2524 6.39317 12.2859C6.41442 12.7876 6.55512 13.0988 6.70762 13.2966C6.86016 13.4943 7.05397 13.6174 7.24375 13.6941C7.25136 13.6873 7.26237 13.6757 7.27305 13.658Z" fill="#48494F" style="fill:#48494F;fill:color(display-p3 0.2824 0.2863 0.3098);fill-opacity:1;"/>
10
3
  </svg>
@@ -1,14 +1,3 @@
1
- <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <g clip-path="url(#clip0_8053_26576)">
3
- <path fill-rule="evenodd" clip-rule="evenodd" d="M9.06425 3.19243C9.01305 1.98001 8.36747 1.47571 7.836 1.26596C7.4453 1.11177 7.07727 1.41761 7.00488 1.83136L6.81006 2.94473C6.57501 4.28806 5.57538 5.36942 4.25462 5.70911L4.14514 5.73727L4.14514 12.925L11.1782 12.925C11.744 12.925 12.2269 12.516 12.3199 11.9579L13.2845 7.03871C13.402 6.33321 12.858 5.69098 12.1428 5.69098L9.06425 5.69094C9.06425 5.69094 9.15232 5.27767 9.06425 3.19243ZM2.08675 13.5001L2.08675 5.50006L0.753417 5.50006L0.753416 13.5001L2.08675 13.5001Z" fill="url(#paint0_linear_8053_26576)"/>
4
- </g>
5
- <defs>
6
- <linearGradient id="paint0_linear_8053_26576" x1="7.31638" y1="16.2105" x2="18.4078" y2="-7.26721" gradientUnits="userSpaceOnUse">
7
- <stop stop-color="#1C66E5"/>
8
- <stop offset="1" stop-color="#03C8FD"/>
9
- </linearGradient>
10
- <clipPath id="clip0_8053_26576">
11
- <rect width="14" height="14" fill="white" transform="translate(14 14) rotate(-180)"/>
12
- </clipPath>
13
- </defs>
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M7.96045 1.86742C8.21815 1.68023 8.55446 1.59383 8.8999 1.67992L9.04834 1.72777L9.17725 1.78246C9.48216 1.92188 9.81491 2.14475 10.0884 2.49926C10.4042 2.909 10.612 3.45796 10.6421 4.1682C10.6818 5.10908 10.685 5.72045 10.6772 6.11254L13.1431 6.11254C14.2156 6.11279 15.0311 7.07607 14.855 8.13402L14.854 8.14184L14.852 8.14965L13.8882 13.0686C13.7423 13.8977 13.0216 14.5031 12.1782 14.5032L4.56592 14.5032L4.56592 6.28832L5.00049 6.17699L5.10986 6.14867C6.21044 5.86561 7.04381 4.96432 7.23975 3.84496L7.43506 2.73168C7.4948 2.39076 7.67844 2.07243 7.96045 1.86742ZM3.08642 14.5002L1.75342 14.5002L1.75342 6.50023L3.08642 6.50023L3.08642 14.5002Z" fill="#1C66E5" style="fill:#1C66E5;fill:color(display-p3 0.1098 0.4000 0.8980);fill-opacity:1;"/>
14
3
  </svg>
@@ -1,10 +1,3 @@
1
- <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <g clip-path="url(#clip0_8053_26340)">
3
- <path fill-rule="evenodd" clip-rule="evenodd" d="M8.04845 0.727649C7.65196 0.57117 7.25548 0.653472 6.96091 0.867493C6.67865 1.07257 6.49452 1.39045 6.43482 1.73161L6.24001 2.84498C6.04413 3.96442 5.2111 4.86556 4.11047 5.14863L4.00099 5.17679L3.56643 5.28856L3.56643 5.73727L3.56642 12.925L3.56642 13.5037L4.14514 13.5037L11.1782 13.5037C12.0239 13.5037 12.7461 12.8945 12.8893 12.0619L13.8524 7.15007L13.8539 7.14198L13.8553 7.13385C14.0317 6.07561 13.2156 5.11227 12.1428 5.11226L12.1428 5.11226L9.67894 5.11223C9.68672 4.72009 9.6822 4.109 9.64246 3.16801C9.61245 2.45757 9.40449 1.90968 9.08857 1.49987C8.77588 1.09424 8.38621 0.860948 8.04845 0.727649ZM7.57494 1.93111C7.58086 1.89728 7.5925 1.86796 7.60628 1.84505C7.61696 1.82729 7.62746 1.81573 7.6351 1.80888C7.82514 1.88567 8.01921 2.00846 8.17188 2.20652C8.32442 2.40439 8.46485 2.71487 8.48605 3.21685C8.52972 4.25092 8.52927 4.86069 8.51882 5.20616C8.51361 5.37864 8.50598 5.48239 8.50059 5.53822C8.49835 5.5615 8.49656 5.57577 8.49562 5.58265L8.34922 6.26965L9.06424 6.26966L12.1428 6.2697L12.1428 6.2697C12.4981 6.2697 12.7689 6.58672 12.7147 6.93681L11.752 11.8465L11.7504 11.8546L11.7491 11.8627C11.7026 12.1418 11.4611 12.3463 11.1782 12.3463L4.72386 12.3463L4.72386 6.17134C6.10212 5.69102 7.12553 4.49946 7.38012 3.04447L7.57494 1.93111ZM2.08675 13.5001L2.08675 5.50006L0.753417 5.50006L0.753416 13.5001L2.08675 13.5001Z" fill="#727A8A"/>
4
- </g>
5
- <defs>
6
- <clipPath id="clip0_8053_26340">
7
- <rect width="14" height="14" fill="white" transform="translate(14 14) rotate(-180)"/>
8
- </clipPath>
9
- </defs>
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M7.95998 1.86742C8.21768 1.68024 8.554 1.59384 8.89944 1.67992L9.04787 1.72777L9.17678 1.78246C9.48169 1.92188 9.81445 2.14476 10.0879 2.49926C10.4038 2.90899 10.6116 3.45797 10.6416 4.1682C10.6814 5.10906 10.6846 5.72046 10.6768 6.11254L13.1426 6.11255C14.2151 6.1128 15.0306 7.07609 14.8545 8.13403L14.8536 8.14185L14.8516 8.14966L13.8877 13.0686C13.7418 13.8977 13.0211 14.5031 12.1778 14.5032L4.56544 14.5032L4.56544 6.28833L5.00001 6.177L5.10938 6.14868C6.20996 5.86562 7.04334 4.96433 7.23927 3.84496L7.43459 2.73168C7.49434 2.39077 7.67798 2.07242 7.95998 1.86742ZM3.08594 14.5003L1.86328 14.5003L1.86328 6.50024L3.08594 6.50024L3.08594 14.5003ZM8.60549 2.84496C8.59181 2.86775 8.58017 2.89732 8.57424 2.9309L8.3799 4.04418C8.12537 5.49882 7.10141 6.68865 5.72364 7.16919L5.72364 13.346L12.1778 13.346C12.4606 13.3459 12.7016 13.1416 12.7481 12.8626L12.75 12.8547L12.751 12.846L13.7129 7.94067C13.7696 7.58926 13.499 7.27003 13.1426 7.26977L9.34866 7.26977L9.49416 6.5852C9.49498 6.57963 9.49749 6.56457 9.50002 6.53833C9.5054 6.48243 9.51337 6.37817 9.51858 6.20629C9.52901 5.86079 9.52901 5.25047 9.48537 4.21703C9.46411 3.71531 9.32342 3.40411 9.17092 3.20629C9.01838 3.00865 8.82456 2.88555 8.63479 2.80883C8.62718 2.81563 8.61616 2.82728 8.60549 2.84496Z" fill="#676A70" style="fill:#676A70;fill:color(display-p3 0.4039 0.4157 0.4392);fill-opacity:1;"/>
10
3
  </svg>
@@ -1,10 +1,3 @@
1
- <svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg">
2
- <g clip-path="url(#clip0_8984_1289)">
3
- <path fill-rule="evenodd" clip-rule="evenodd" d="M8.04845 0.727649C7.65196 0.57117 7.25548 0.653472 6.96091 0.867493C6.67865 1.07257 6.49452 1.39045 6.43482 1.73161L6.24001 2.84498C6.04413 3.96442 5.2111 4.86556 4.11047 5.14863L4.00099 5.17679L3.56643 5.28856L3.56643 5.73727L3.56642 12.925L3.56642 13.5037L4.14514 13.5037L11.1782 13.5037C12.0239 13.5037 12.7461 12.8945 12.8893 12.0619L13.8524 7.15007L13.8539 7.14198L13.8553 7.13385C14.0317 6.07561 13.2156 5.11227 12.1428 5.11226L12.1428 5.11226L9.67894 5.11223C9.68672 4.72009 9.6822 4.109 9.64246 3.16801C9.61245 2.45757 9.40449 1.90968 9.08857 1.49987C8.77588 1.09424 8.38621 0.860948 8.04845 0.727649ZM7.57494 1.93111C7.58086 1.89728 7.5925 1.86796 7.60628 1.84505C7.61696 1.82729 7.62746 1.81573 7.6351 1.80888C7.82514 1.88567 8.01921 2.00846 8.17188 2.20652C8.32442 2.40439 8.46485 2.71487 8.48605 3.21685C8.52972 4.25092 8.52927 4.86069 8.51882 5.20616C8.51361 5.37864 8.50598 5.48239 8.50059 5.53822C8.49835 5.5615 8.49656 5.57577 8.49562 5.58265L8.34922 6.26965L9.06424 6.26966L12.1428 6.2697L12.1428 6.2697C12.4981 6.2697 12.7689 6.58672 12.7147 6.93681L11.752 11.8465L11.7504 11.8546L11.7491 11.8627C11.7026 12.1418 11.4611 12.3463 11.1782 12.3463L4.72386 12.3463L4.72386 6.17134C6.10212 5.69102 7.12553 4.49946 7.38012 3.04447L7.57494 1.93111ZM2.08675 13.5001L2.08675 5.50006L0.753417 5.50006L0.753416 13.5001L2.08675 13.5001Z" fill="#22262E"/>
4
- </g>
5
- <defs>
6
- <clipPath id="clip0_8984_1289">
7
- <rect width="14" height="14" fill="white" transform="translate(14 14) rotate(-180)"/>
8
- </clipPath>
9
- </defs>
1
+ <svg width="16" height="16" viewBox="0 0 16 16" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M7.95998 1.86742C8.21768 1.68024 8.554 1.59384 8.89944 1.67992L9.04787 1.72777L9.17678 1.78246C9.48169 1.92188 9.81445 2.14476 10.0879 2.49926C10.4038 2.90899 10.6116 3.45797 10.6416 4.1682C10.6814 5.10906 10.6846 5.72046 10.6768 6.11254L13.1426 6.11255C14.2151 6.1128 15.0306 7.07609 14.8545 8.13403L14.8536 8.14185L14.8516 8.14966L13.8877 13.0686C13.7418 13.8977 13.0211 14.5031 12.1778 14.5032L4.56544 14.5032L4.56544 6.28833L5.00001 6.177L5.10938 6.14868C6.20996 5.86562 7.04334 4.96433 7.23927 3.84496L7.43459 2.73168C7.49434 2.39077 7.67798 2.07242 7.95998 1.86742ZM3.08594 14.5003L1.86328 14.5003L1.86328 6.50024L3.08594 6.50024L3.08594 14.5003ZM8.60549 2.84496C8.59181 2.86775 8.58017 2.89732 8.57424 2.9309L8.3799 4.04418C8.12537 5.49882 7.10141 6.68865 5.72364 7.16919L5.72364 13.346L12.1778 13.346C12.4606 13.3459 12.7016 13.1416 12.7481 12.8626L12.75 12.8547L12.751 12.846L13.7129 7.94067C13.7696 7.58926 13.499 7.27003 13.1426 7.26977L9.34866 7.26977L9.49416 6.5852C9.49498 6.57963 9.49749 6.56457 9.50002 6.53833C9.5054 6.48243 9.51337 6.37817 9.51858 6.20629C9.52901 5.86079 9.52901 5.25047 9.48537 4.21703C9.46411 3.71531 9.32342 3.40411 9.17092 3.20629C9.01838 3.00865 8.82456 2.88555 8.63479 2.80883C8.62718 2.81563 8.61616 2.82728 8.60549 2.84496Z" fill="#48494F" style="fill:#48494F;fill:color(display-p3 0.2824 0.2863 0.3098);fill-opacity:1;"/>
10
3
  </svg>
@@ -131,15 +131,17 @@ function onCurrentConversationUpdated(conversation: IConversationModel) {
131
131
  currentConversationName.value = currentConversation.value?.getShowName();
132
132
  }
133
133
 
134
- function onTypingStatusUpdated(status: boolean) {
135
- isTyping.value = status;
136
- if (isTyping.value && state.get('showTyping') === 1) {
137
- currentConversationName.value = TUITranslateService.t('TUIChat.对方正在输入');
138
- } else {
139
- if (isPC) {
140
- currentConversationName.value = currentConversation.value?.getShowName();
134
+ function onTypingStatusUpdated(data: {conversationID: string, value: boolean}) {
135
+ if (data && data.conversationID === currentConversation.value.conversationID) {
136
+ isTyping.value = data.value;
137
+ if (isTyping.value && state.get('showTyping') === 1) {
138
+ currentConversationName.value = TUITranslateService.t('TUIChat.对方正在输入');
141
139
  } else {
142
- currentConversationName.value = TUITranslateService.t('AIDesk.Hi,我是') + currentConversation.value?.getShowName();
140
+ if (isPC) {
141
+ currentConversationName.value = currentConversation.value?.getShowName();
142
+ } else {
143
+ currentConversationName.value = TUITranslateService.t('AIDesk.Hi,我是') + currentConversation.value?.getShowName();
144
+ }
143
145
  }
144
146
  }
145
147
  }
@@ -168,7 +170,6 @@ function selectLanguage(languageOption) {
168
170
  align-items: center;
169
171
  justify-content: space-between;
170
172
  border-bottom:1px solid #f3f4f7;
171
- font-family: PingFangSC-Regular;
172
173
  width: 100%;
173
174
 
174
175
  &-container {
@@ -184,7 +185,6 @@ function selectLanguage(languageOption) {
184
185
  flex: 1;
185
186
  font-size: 16px;
186
187
  line-height: 30px;
187
- font-family: PingFangSC-Medium;
188
188
  font-weight: 500;
189
189
  color: #000;
190
190
  letter-spacing: 0;
@@ -0,0 +1,391 @@
1
+ <template>
2
+ <div>
3
+ <div v-if="isPC" class="feedback-dialog">
4
+ <div class="feedback-dialog-main">
5
+ <div class="feedback-dialog-header">
6
+ <div class="dialog-header-container">
7
+ <span class="dialog-header-title">
8
+ {{ TUITranslateService.t("AIDesk.感谢您的反馈,我们会持续优化改进") }}
9
+ </span>
10
+ </div>
11
+ <Icon :file="DialogCloseIcon" width="20px" height="20px" @click="closeFeedbackModal"/>
12
+ </div>
13
+
14
+ <div class="dialog-select-container">
15
+ <span class="dialog-session-title">
16
+ {{ TUITranslateService.t("AIDesk.您遇到了哪方面的问题") }}
17
+ </span>
18
+ <div class="dialog-button-list">
19
+ <div class="dialog-button-row" v-for="(item) in feedbackButtonList">
20
+ <div :class="['dialog-button',item.isSelected ? 'dialog-button-selected': '']" @click="dialogButtonClick(item)">
21
+ {{ feedbackButtonListFromStore ? item.content : TUITranslateService.t(`AIDesk.${item.content}`) }}
22
+ </div>
23
+ </div>
24
+ </div>
25
+ </div>
26
+
27
+ <div class="dialog-other-feedback-container">
28
+ <span class="dialog-session-title">
29
+ {{ TUITranslateService.t("AIDesk.其他反馈内容") }}
30
+ </span>
31
+ <textarea type="text" :placeholder="TUITranslateService.t('AIDesk.我们想知道你对此回答不满意的原因,你认为更好的回答是什么?')" maxlength="200" v-model="feedbackText" class="dialog-other-feedback-input"/>
32
+ </div>
33
+ <div class="dialog-foot">
34
+ <div :class="isSubmitEnabled ? 'dialog-submit' : 'dialog-submit disabled'" @click="submit">
35
+ {{ TUITranslateService.t("AIDesk.提交") }}
36
+ </div>
37
+ <div class="dialog-cancel" @click="closeFeedbackModal">
38
+ {{ TUITranslateService.t("AIDesk.取消") }}
39
+ </div>
40
+ </div>
41
+ </div>
42
+ </div>
43
+ <div v-else class="edit-form">
44
+ <div class="edit-form-item">
45
+ <FormPopup
46
+ class="form-item"
47
+ :show="true"
48
+ :showHeaderCloseButton="false"
49
+ @onClose="closeFeedbackModal"
50
+ title=""
51
+ >
52
+ <div class="dialog-title">
53
+ <div class="dialog-header-title">
54
+ {{ TUITranslateService.t("AIDesk.感谢您的反馈,我们会持续优化改进") }}
55
+ </div>
56
+ <Icon :file="DialogCloseIcon" width="16px" height="16px" @click="closeFeedbackModal"/>
57
+ </div>
58
+ <div class="dialog-select-container-h5">
59
+ <span class="dialog-session-title">
60
+ {{ TUITranslateService.t("AIDesk.您遇到了哪方面的问题") }}
61
+ </span>
62
+ <div class="dialog-button-list">
63
+ <div class="dialog-button-row" v-for="(item) in feedbackButtonList">
64
+ <div :class="['dialog-button',item.isSelected ? 'dialog-button-selected': '']" @click="dialogButtonClick(item)">
65
+ {{ feedbackButtonListFromStore ? item.content : TUITranslateService.t(`AIDesk.${item.content}`) }}
66
+ </div>
67
+ </div>
68
+ </div>
69
+ </div>
70
+
71
+ <div class="dialog-other-feedback-container-h5">
72
+ <span class="dialog-session-title">
73
+ {{ TUITranslateService.t("AIDesk.其他反馈内容") }}
74
+ </span>
75
+ <textarea type="text" :placeholder="TUITranslateService.t('AIDesk.我们想知道你对此回答不满意的原因,你认为更好的回答是什么?')" maxlength="200" v-model="feedbackText" class="dialog-other-feedback-input"/>
76
+ </div>
77
+ <div class="dialog-foot-h5">
78
+ <div :class="isSubmitEnabled ? 'dialog-submit' : 'dialog-submit disabled'" @click="submit">
79
+ {{ TUITranslateService.t("AIDesk.提交") }}
80
+ </div>
81
+ </div>
82
+ </FormPopup>
83
+ </div>
84
+ </div>
85
+ </div>
86
+ </template>
87
+ <script lang="ts">
88
+ import vue from '../../../adapter-vue';
89
+ import Icon from '../../common/Icon.vue';
90
+ import { StoreName, TUIStore, TUITranslateService, TUIChatService } from '@tencentcloud/chat-uikit-engine';
91
+ import GreenCheck from '../../../assets/green_check.svg';
92
+ import DialogCloseIcon from '../../../assets/dialog-close.png';
93
+ import { isPC } from '../../../utils/env';
94
+ import Log from "../../../utils/logger";
95
+ import { Toast, TOAST_TYPE } from "../../../components/common/Toast/index-web";
96
+ import FormPopup from '../message-list/message-elements/message-desk/message-desk-elements/message-multi-form/component-mobile/form-popup.vue';
97
+ import { CUSTOM_MESSAGE_SRC } from "../../../constant";
98
+ import TUIChatEngine from '@tencentcloud/chat-uikit-engine';
99
+ const { ref, computed, onMounted, onUnmounted } = vue;
100
+
101
+ export default {
102
+ components:{
103
+ Icon,
104
+ FormPopup,
105
+ },
106
+ setup(props, { expose, emit }){
107
+ let _messageInfo = {};
108
+ const feedbackText = ref('');
109
+ const feedbackButtonList = ref([
110
+ { id:'101', content: '答非所问', isSelected: false },
111
+ { id:'102', content: '信息错误', isSelected: false },
112
+ { id:'103', content: '格式不规范', isSelected: false },
113
+ { id:'104', content: '内容不完整', isSelected: false },
114
+ { id:'105', content: '未匹配相关内容', isSelected: false },
115
+ { id:'106', content: '上下文理解错误', isSelected: false },
116
+ ]);
117
+ const feedbackButtonListFromStore = ref(false);
118
+ // 点击关闭按钮或者取消,需要默认发送 dislike 请求
119
+ const closeFeedbackModal = async () => {
120
+ emit('close');
121
+ await postFeedback(2, _messageInfo, false);
122
+ resetFeedback();
123
+ };
124
+
125
+ const resetFeedback = () => {
126
+ feedbackButtonList.value.forEach(item => {
127
+ item.isSelected = false;
128
+ });
129
+ feedbackText.value = "";
130
+ };
131
+
132
+ const onFeedbackTags = (data) => {
133
+ if (!data) {
134
+ return;
135
+ }
136
+ feedbackButtonListFromStore.value = true;
137
+ feedbackButtonList.value = data;
138
+ };
139
+
140
+ onMounted(() => {
141
+ TUIStore.watch(StoreName.CUSTOM, {
142
+ feedbackTags: onFeedbackTags
143
+ });
144
+ });
145
+
146
+ onUnmounted(() => {
147
+ TUIStore.unwatch(StoreName.CUSTOM, {
148
+ feedbackTags: onFeedbackTags
149
+ });
150
+ });
151
+
152
+ const postFeedback = async (type, messageInfo, withReasons = false) => {
153
+ Log.i(`postFeedback type:${type} messageInfo:`, messageInfo);
154
+ let feedbackDetail = {
155
+ type,
156
+ menuSelected: [],
157
+ otherContent: '',
158
+ };
159
+ // 是否需要带上反馈原因(不带上就是默认点赞或者默认点踩)
160
+ if (withReasons) {
161
+ if (feedbackText.value) {
162
+ feedbackDetail.otherContent = feedbackText.value;
163
+ }
164
+ feedbackDetail.menuSelected = feedbackButtonList.value.filter((item) => item.isSelected).map(item => ({ id: item.id, content: item.content }));
165
+ }
166
+ TUIChatService.sendCustomMessage({
167
+ to: messageInfo.groupId ? messageInfo.groupId : messageInfo.toAccount,
168
+ conversationType: messageInfo.groupId ? TUIChatEngine.TYPES.CONV_GROUP : TUIChatEngine.TYPES.CONV_C2C,
169
+ payload: {
170
+ data: JSON.stringify({
171
+ src: CUSTOM_MESSAGE_SRC.SEND_FEEDBACK,
172
+ customerServicePlugin: 0,
173
+ feedbackDetail,
174
+ messageInfo,
175
+ }),
176
+ },
177
+ });
178
+ }
179
+
180
+ const dialogButtonClick = (item) => {
181
+ item.isSelected = !item.isSelected;
182
+ };
183
+
184
+ const isSubmitEnabled = computed(() => {
185
+ const selectedList = feedbackButtonList.value.filter((item) => item.isSelected);
186
+ if (selectedList.length === 0 && feedbackText.value.trim() === '') {
187
+ return false;
188
+ }
189
+ return true;
190
+ });
191
+
192
+ const submit = async () => {
193
+ emit('close');
194
+ await postFeedback(2, _messageInfo, true);
195
+ feedbackToast();
196
+ resetFeedback();
197
+ };
198
+
199
+ const feedbackToast = () => {
200
+ Toast({
201
+ message: TUITranslateService.t('AIDesk.提交成功'),
202
+ type: TOAST_TYPE.SUCCESS,
203
+ duration: 5000,
204
+ });
205
+ }
206
+
207
+ const onLike = (messageInfo) => {
208
+ postFeedback(1, messageInfo, false);
209
+ feedbackToast();
210
+ };
211
+
212
+ const onDislike = (messageInfo) => {
213
+ _messageInfo = messageInfo;
214
+ };
215
+
216
+ expose({
217
+ onLike,
218
+ onDislike,
219
+ });
220
+
221
+ return {
222
+ isPC,
223
+ GreenCheck,
224
+ DialogCloseIcon,
225
+ feedbackButtonList,
226
+ feedbackText,
227
+ dialogButtonClick,
228
+ TUITranslateService,
229
+ closeFeedbackModal,
230
+ submit,
231
+ isSubmitEnabled,
232
+ feedbackButtonListFromStore,
233
+ };
234
+ }
235
+ }
236
+ </script>
237
+ <style lang="scss">
238
+ .feedback-dialog {
239
+ position: fixed;
240
+ top: 0;
241
+ left: 0;
242
+ right: 0;
243
+ bottom: 0;
244
+ background: rgba(13, 17, 26, 0.4);
245
+ z-index: 1000;
246
+ display: flex;
247
+ justify-content: center;
248
+ align-items: center;
249
+ &-main {
250
+ box-sizing: border-box;
251
+ width: 400px;
252
+ min-height: 442px;
253
+ background: #fff;
254
+ border-radius: 16px;
255
+ padding: 24px;
256
+ overflow: hidden;
257
+ .feedback-dialog-header {
258
+ display: flex;
259
+ justify-content: space-between;
260
+ align-items: flex-start;
261
+ gap: 10px;
262
+ .dialog-header-container {
263
+ display: flex;
264
+ gap: 8px;
265
+ align-items: center;
266
+ .dialog-header-title {
267
+ font-weight: 600;
268
+ font-size: 16px;
269
+ }
270
+ }
271
+ }
272
+ }
273
+ }
274
+ .dialog-session-title {
275
+ color: #4D586D;
276
+ font-size: 12px;
277
+ }
278
+ .dialog-select-container, .dialog-select-container-h5 {
279
+ margin-top: 20px;
280
+ .dialog-button-list {
281
+ display: grid;
282
+ grid-template-columns: repeat(2, 1fr);
283
+ justify-content: center;
284
+ align-items: center;
285
+ gap: 12px;
286
+ margin-top: 10px;
287
+ .dialog-button-row {
288
+ flex: 0 0 48%;
289
+ min-width: 0;
290
+ .dialog-button {
291
+ border-radius: 8px;
292
+ border: 1px solid #E4E8EF;
293
+ background: #F9FAFC;
294
+ padding: 4px 16px;
295
+ display: flex;
296
+ justify-content: center;
297
+ font-size: 12px;
298
+ color: #0f1014;
299
+ cursor: pointer;
300
+ text-align: center;
301
+ align-items: center;
302
+ min-height: 30px;
303
+ height: 100%;
304
+ &-selected {
305
+ border-radius: 8px;
306
+ border: 1px solid #1C66E5;
307
+ background: rgba(28, 102, 229, 0.10);
308
+ color: #0052d9;
309
+ }
310
+ }
311
+ }
312
+ }
313
+ }
314
+ .dialog-select-container-h5 {
315
+ padding: 0 20px;
316
+ margin-top: 0;
317
+ }
318
+ .dialog-other-feedback-container, .dialog-other-feedback-container-h5 {
319
+ margin: 20px 0 10px 0;
320
+ display: flex;
321
+ flex-direction: column;
322
+ gap: 10px;
323
+ .dialog-other-feedback-input {
324
+ border-radius: 12px;
325
+ border: 1px solid #E4E8EE;
326
+ background: #F9FAFC;
327
+ height: 75px;
328
+ padding: 12px;
329
+ display: flex;
330
+ align-items: flex-start;
331
+ align-self: stretch;
332
+ resize: none;
333
+ &::placeholder {
334
+ color: var(---Black-6, rgba(0, 0, 0, 0.25));
335
+ font-size: 12px;
336
+ }
337
+ }
338
+ }
339
+ .dialog-other-feedback-container-h5 {
340
+ padding: 0 20px;
341
+ }
342
+ .dialog-foot {
343
+ width: 100%;
344
+ display: flex;
345
+ margin-top: 15px;
346
+ gap: 20px;
347
+ justify-content: center;
348
+ .dialog-submit {
349
+ padding: 9px 33px;
350
+ border-radius: 20px;
351
+ background: #1C66E5;
352
+ font-weight: 500;
353
+ color: #fff;
354
+ cursor: pointer;
355
+ }
356
+ .disabled {
357
+ background: #C0E4FF;
358
+ color: #fff;
359
+ cursor: not-allowed;
360
+ }
361
+ .dialog-cancel {
362
+ padding: 9px 33px;
363
+ border-radius: 20px;
364
+ border: 1px solid #1C66E5;
365
+ font-weight: 500;
366
+ color: #1C66E5;
367
+ cursor: pointer;
368
+ }
369
+ }
370
+ .dialog-foot-h5 {
371
+ padding: 20px;
372
+ .dialog-submit {
373
+ padding: 9px 33px;
374
+ border-radius: 20px;
375
+ background: #1C66E5;
376
+ font-weight: 500;
377
+ font-size: 16px;
378
+ color: #fff;
379
+ cursor: pointer;
380
+ text-align: center;
381
+ }
382
+ .disabled {
383
+ background: #C0E4FF;
384
+ color: #fff;
385
+ cursor: not-allowed;
386
+ }
387
+ }
388
+ .dialog-title {
389
+ gap: 10px;
390
+ }
391
+ </style>
@@ -24,6 +24,10 @@
24
24
  :bottomQuickOrder="props.bottomQuickOrder"
25
25
  :showBottomQuickOrder="showBottomQuickOrder"
26
26
  @closeBottomQuickOrder="closeBottomQuickOrder"
27
+ :enableFeedback="props.enableFeedback"
28
+ :enableAINote="props.enableAINote"
29
+ @like="onLike"
30
+ @dislike="onDislike"
27
31
  />
28
32
  <MessageToolbarButton
29
33
  v-if="!isH5 || (!Boolean(quoteMessage) && !showBottomQuickOrder)"
@@ -82,6 +86,11 @@
82
86
  />
83
87
  </div>
84
88
  </div>
89
+ <FeedbackModal
90
+ ref="feedbackModalRef"
91
+ v-show="showFeedbackModal"
92
+ @close="() => { showFeedbackModal = false }"
93
+ />
85
94
  </div>
86
95
  </div>
87
96
  </template>
@@ -110,6 +119,7 @@ import { Toast, TOAST_TYPE } from '../common/Toast/index-web';
110
119
  import state from '../../utils/state.js';
111
120
  import { switchReadStatus,isNonEmptyObject } from '../../utils/utils';
112
121
  import { getCountryForTimezone } from 'countries-and-timezones';
122
+ import FeedbackModal from './feedback-modal/index.vue';
113
123
  const { ref, onMounted, onUnmounted, computed } = vue;
114
124
 
115
125
  interface IProps {
@@ -134,6 +144,8 @@ interface IProps {
134
144
  bottomQuickOrder?: QuickOrderModel;
135
145
  enableMultilingual?: number;
136
146
  langList?: Array<string>;
147
+ enableFeedback?: number;
148
+ enableAINote?: number;
137
149
  }
138
150
 
139
151
  const emits = defineEmits(['closeChat']);
@@ -151,6 +163,8 @@ const quoteMessage = ref<IMessageModel>();
151
163
  const showBottomQuickOrder = ref(false);
152
164
  const currentLanguage = ref('');
153
165
  const languageForShowList = ref<Array<string>>([]);
166
+ const feedbackModalRef = ref();
167
+ const showFeedbackModal = ref(false);
154
168
  let timezone = '';
155
169
  let countryID = '';
156
170
  const props = withDefaults(defineProps<IProps>(), {
@@ -171,6 +185,8 @@ const props = withDefaults(defineProps<IProps>(), {
171
185
  userNickName: '',
172
186
  showTyping: 0,
173
187
  enableMultilingual: 0,
188
+ enableFeedback: 0,
189
+ enableAINote: 1,
174
190
  langList: () => [],
175
191
  });
176
192
 
@@ -437,6 +453,7 @@ function changeLanguage(languageCode: string) {
437
453
  Log.l(`multilingual: change language to ${languageCode}`);
438
454
  TUITranslateService.changeLanguage(languageCode).then(() => {
439
455
  currentLanguage.value = languageCode;
456
+ state.set('currentLanguage', languageCode);
440
457
  try {
441
458
  localStorage.setItem('AIDesk_language', languageCode);
442
459
  } catch {
@@ -458,6 +475,15 @@ function activeConversation() {
458
475
  },
459
476
  });
460
477
  }
478
+
479
+ function onLike(messageInfo: Object) {
480
+ feedbackModalRef.value.onLike(messageInfo);
481
+ }
482
+
483
+ function onDislike(messageInfo: Object) {
484
+ showFeedbackModal.value = true;
485
+ feedbackModalRef.value.onDislike(messageInfo);
486
+ }
461
487
  </script>
462
488
 
463
489
  <style scoped lang="scss" src="./style/index.scss">
@@ -743,7 +743,6 @@ defineExpose({
743
743
 
744
744
  &-area {
745
745
  box-sizing: border-box;
746
- font-family: PingFangSC-Regular;
747
746
  height: 100%;
748
747
  flex: 1;
749
748
  display: flex;
@@ -171,7 +171,6 @@ function onQuoteMessageUpdated(options?: {
171
171
  overflow: hidden;
172
172
  text-overflow: ellipsis;
173
173
  white-space: nowrap;
174
- font-family: PingFangSC-Regular;
175
174
  }
176
175
  }
177
176
  .input-quote-content-h5 {
@@ -198,13 +197,11 @@ function onQuoteMessageUpdated(options?: {
198
197
  overflow: hidden;
199
198
  text-overflow: ellipsis;
200
199
  white-space: nowrap;
201
- font-family: PingFangSC-Regular;
202
200
  }
203
201
 
204
202
  .input-quote-sender-h5 {
205
203
  font-size: 10px;
206
204
  color:#00000080;
207
- font-family: PingFangSC-Regular;
208
205
  }
209
206
  }
210
207