@tencentcloud/ai-desk-customer-vue 1.4.0 → 1.5.1
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.
- package/CHANGELOG.md +17 -0
- package/assets/feedback_dialog_close.svg +3 -0
- package/assets/feedback_dislike_after.svg +3 -0
- package/assets/feedback_dislike_before.svg +10 -0
- package/assets/feedback_dislike_hover.svg +10 -0
- package/assets/feedback_like_after.svg +14 -0
- package/assets/feedback_like_before.svg +10 -0
- package/assets/feedback_like_hover.svg +10 -0
- package/assets/green_check.svg +4 -0
- package/components/CustomerServiceChat/index-web.vue +18 -0
- package/components/CustomerServiceChat/message-input/message-input-editor-web.vue +1 -0
- package/components/CustomerServiceChat/message-input/message-input-quote/index.vue +29 -20
- package/components/CustomerServiceChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.vue +35 -35
- package/components/CustomerServiceChat/message-input-toolbar/index-web.vue +1 -1
- package/components/CustomerServiceChat/message-list/index-web.vue +5 -0
- package/components/CustomerServiceChat/message-list/message-elements/feedback-button.vue +369 -0
- package/components/CustomerServiceChat/message-list/message-elements/message-bubble-web.vue +30 -11
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/marked.ts +17 -10
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-branch.vue +13 -5
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-concurrency-limit.vue +1 -1
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-desk.vue +8 -6
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-ivr-form/form-branch.vue +117 -0
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/{message-single-form → message-ivr-form}/form-input.vue +65 -111
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/{message-single-form → message-ivr-form}/index.vue +7 -2
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-branch/branch-pc.vue +5 -3
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-branch/index.vue +3 -1
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/component-mobile/input-mobile.vue +1 -0
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/component-mobile/label-mobile.vue +4 -2
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/component-pc/label-pc.vue +5 -3
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/form-mobile.vue +17 -5
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-multi-form/form-pc.vue +21 -1
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-order.vue +2 -1
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-product-card.vue +2 -1
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-rating/message-rating-number.vue +9 -13
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-rating/message-rating-star.vue +11 -18
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-robot-welcome.vue +1 -0
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-stream.vue +14 -10
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-timeout-warning.vue +29 -0
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/styles/common.scss +1 -0
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-plugin-web.vue +22 -2
- package/components/CustomerServiceChat/message-list/message-elements/message-quote/index-web.vue +6 -24
- package/components/CustomerServiceChat/message-list/message-elements/message-text.vue +0 -9
- package/components/CustomerServiceChat/message-list/message-elements/read-status/index.vue +31 -20
- package/components/CustomerServiceChat/message-list/message-elements/simple-message-list/index.vue +2 -1
- package/components/common/Toast/index-web.vue +4 -2
- package/constant.ts +11 -1
- package/locales/en/aidesk.ts +28 -16
- package/locales/fil/aidesk.ts +28 -16
- package/locales/id/aidesk.ts +28 -16
- package/locales/ja/aidesk.ts +28 -16
- package/locales/ms/aidesk.ts +28 -16
- package/locales/ru/aidesk.ts +28 -16
- package/locales/th/aidesk.ts +28 -16
- package/locales/vi/aidesk.ts +28 -16
- package/locales/zh_cn/aidesk.ts +28 -16
- package/locales/zh_tw/aidesk.ts +28 -16
- package/package.json +1 -1
- package/components/CustomerServiceChat/message-list/message-elements/message-desk/message-desk-elements/message-single-form/form-branch.vue +0 -68
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,20 @@
|
|
|
1
|
+
## 1.5.1 @2025.6.23
|
|
2
|
+
|
|
3
|
+
### Fixed
|
|
4
|
+
- 修复 vue2.6 项目接入时报错。
|
|
5
|
+
|
|
6
|
+
## 1.5.0 @2025.6.19
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
- 支持转人工后会话超时提醒。
|
|
10
|
+
- 优化消息气泡、欢迎卡片、评价消息等样式。
|
|
11
|
+
- 优化引用消息的交互体验。
|
|
12
|
+
- 优化流式消息 url 的识别提取。
|
|
13
|
+
|
|
14
|
+
### Fixed
|
|
15
|
+
- vue2 接入报错问题。
|
|
16
|
+
- 转人工成功后,消息从已读变为未读的问题。
|
|
17
|
+
|
|
1
18
|
## 1.4.0 @2025.5.27
|
|
2
19
|
|
|
3
20
|
### Features
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
<svg width="24" height="26" viewBox="0 0 24 26" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<path fill-rule="evenodd" clip-rule="evenodd" d="M12 21.6878C16.5236 21.6878 20.3 17.8597 20.3 13.0001C20.3 8.14041 16.5236 4.3123 12 4.3123C7.47641 4.3123 3.7 8.14041 3.7 13.0001C3.7 17.8597 7.47641 21.6878 12 21.6878ZM12 23.3878C17.5228 23.3878 22 18.7371 22 13.0001C22 7.26306 17.5228 2.6123 12 2.6123C6.47715 2.6123 2 7.26306 2 13.0001C2 18.7371 6.47715 23.3878 12 23.3878ZM12 14.2248L9.05435 17.2847L7.87534 16.06L10.821 13.0001L7.87459 9.93943L9.05359 8.71471L12 11.7754L14.9464 8.71471L16.1254 9.93943L13.179 13.0001L16.1247 16.06L14.9457 17.2847L12 14.2248Z" fill="#8F9AB2"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,3 @@
|
|
|
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"/>
|
|
3
|
+
</svg>
|
|
@@ -0,0 +1,10 @@
|
|
|
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>
|
|
10
|
+
</svg>
|
|
@@ -0,0 +1,10 @@
|
|
|
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>
|
|
10
|
+
</svg>
|
|
@@ -0,0 +1,14 @@
|
|
|
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>
|
|
14
|
+
</svg>
|
|
@@ -0,0 +1,10 @@
|
|
|
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>
|
|
10
|
+
</svg>
|
|
@@ -0,0 +1,10 @@
|
|
|
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>
|
|
10
|
+
</svg>
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
2
|
+
<circle cx="12" cy="12" r="12" fill="#11A885"/>
|
|
3
|
+
<path d="M10.6037 14.1523L16.665 7.7085L17.5347 8.49115L10.6371 16.4473L6.47656 11.8036L7.32312 10.996L10.6037 14.1523Z" fill="white"/>
|
|
4
|
+
</svg>
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
@closeInputToolBar="() => changeToolbarDisplayType('none')"
|
|
20
20
|
/>
|
|
21
21
|
<MessageToolbarButton
|
|
22
|
+
v-if="!(isH5 && Boolean(quoteMessage))"
|
|
22
23
|
:toolbarButtonList="props.toolbarButtonList"
|
|
23
24
|
/>
|
|
24
25
|
<MessageInputToolbar
|
|
@@ -137,6 +138,7 @@ const messageListRef = ref<InstanceType<typeof MessageList>>();
|
|
|
137
138
|
const emojiOpen = ref(false);
|
|
138
139
|
const toolShowH5 = ref(false);
|
|
139
140
|
const languages = Object.keys(TUILocales);
|
|
141
|
+
const quoteMessage = ref<IMessageModel>();
|
|
140
142
|
const props = withDefaults(defineProps<IProps>(), {
|
|
141
143
|
canCloseChat: true,
|
|
142
144
|
SDKAppID: 0,
|
|
@@ -256,6 +258,9 @@ onMounted(() => {
|
|
|
256
258
|
TUIStore.watch(StoreName.USER, {
|
|
257
259
|
kickedOut: onKickedOut
|
|
258
260
|
});
|
|
261
|
+
TUIStore.watch(StoreName.CHAT, {
|
|
262
|
+
quoteMessage: onQuoteMessageUpdated,
|
|
263
|
+
});
|
|
259
264
|
});
|
|
260
265
|
|
|
261
266
|
onUnmounted(() => {
|
|
@@ -265,6 +270,9 @@ onUnmounted(() => {
|
|
|
265
270
|
TUIStore.unwatch(StoreName.USER, {
|
|
266
271
|
kickedOut: onKickedOut
|
|
267
272
|
});
|
|
273
|
+
TUIStore.unwatch(StoreName.CHAT, {
|
|
274
|
+
quoteMessage: onQuoteMessageUpdated,
|
|
275
|
+
});
|
|
268
276
|
});
|
|
269
277
|
|
|
270
278
|
const isInputToolbarShow = computed<boolean>(() => {
|
|
@@ -369,7 +377,17 @@ function blurToolAndEmojiH5(){
|
|
|
369
377
|
emojiOpen.value = false;
|
|
370
378
|
}
|
|
371
379
|
toolShowH5.value = false;
|
|
380
|
+
}
|
|
372
381
|
|
|
382
|
+
function onQuoteMessageUpdated(options?: {
|
|
383
|
+
message: IMessageModel;
|
|
384
|
+
type: string;
|
|
385
|
+
}) {
|
|
386
|
+
if (options?.message && options?.type === 'quote') {
|
|
387
|
+
quoteMessage.value = options.message;
|
|
388
|
+
} else {
|
|
389
|
+
quoteMessage.value = undefined;
|
|
390
|
+
}
|
|
373
391
|
}
|
|
374
392
|
</script>
|
|
375
393
|
|
|
@@ -7,20 +7,24 @@
|
|
|
7
7
|
}"
|
|
8
8
|
>
|
|
9
9
|
<div :class="(!isPC) ? 'input-quote-content-h5' :'input-quote-content'">
|
|
10
|
-
<div>
|
|
10
|
+
<div v-if="isPC" class="max-one-line">
|
|
11
|
+
{{ (quoteMessage.nick || quoteMessage.from)+ ': ' + quoteContentText }}
|
|
12
|
+
</div>
|
|
13
|
+
<div v-else class="input-quote-message-h5 max-one-line">
|
|
14
|
+
<div class="input-quote-sender-h5">
|
|
15
|
+
{{ (quoteMessage.nick || quoteMessage.from) }}
|
|
16
|
+
</div>
|
|
11
17
|
<div class="max-one-line">
|
|
12
|
-
|
|
18
|
+
{{ quoteContentText }}
|
|
13
19
|
</div>
|
|
14
20
|
</div>
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
21
|
+
<Icon
|
|
22
|
+
class="input-quote-close-icon"
|
|
23
|
+
:file="closeIcon"
|
|
24
|
+
width="11px"
|
|
25
|
+
height="11px"
|
|
26
|
+
@onClick="cancelQuote"
|
|
27
|
+
/>
|
|
24
28
|
</div>
|
|
25
29
|
</div>
|
|
26
30
|
</template>
|
|
@@ -120,7 +124,7 @@ function onQuoteMessageUpdated(options?: {
|
|
|
120
124
|
|
|
121
125
|
<style lang="scss" scoped>
|
|
122
126
|
%common-container-style {
|
|
123
|
-
margin: 5px
|
|
127
|
+
margin: 5px 30px 5px 8px;
|
|
124
128
|
display: flex;
|
|
125
129
|
flex: 0 1 auto;
|
|
126
130
|
|
|
@@ -148,15 +152,22 @@ function onQuoteMessageUpdated(options?: {
|
|
|
148
152
|
.input-quote-content-h5 {
|
|
149
153
|
display: flex;
|
|
150
154
|
justify-content: space-between;
|
|
151
|
-
background-color: #
|
|
152
|
-
padding:
|
|
155
|
+
background-color: #fff;
|
|
156
|
+
padding: 8px 16px 8px 8px;
|
|
153
157
|
font-size: 12px;
|
|
154
158
|
align-items: center;
|
|
155
|
-
line-height: 16px;
|
|
156
159
|
max-width: 100%;
|
|
160
|
+
height: 60px;
|
|
157
161
|
box-sizing: border-box;
|
|
158
162
|
width:100%;
|
|
159
163
|
|
|
164
|
+
.input-quote-message-h5 {
|
|
165
|
+
height: 100%;
|
|
166
|
+
display: flex;
|
|
167
|
+
flex-direction: column;
|
|
168
|
+
gap: 8px;
|
|
169
|
+
}
|
|
170
|
+
|
|
160
171
|
.max-one-line {
|
|
161
172
|
flex: 0 1 auto;
|
|
162
173
|
overflow: hidden;
|
|
@@ -173,21 +184,19 @@ function onQuoteMessageUpdated(options?: {
|
|
|
173
184
|
}
|
|
174
185
|
|
|
175
186
|
.input-quote-close-icon {
|
|
176
|
-
|
|
187
|
+
margin-left: 8px;
|
|
177
188
|
}
|
|
178
189
|
}
|
|
179
190
|
|
|
180
191
|
.input-quote-container {
|
|
181
192
|
@extend %common-container-style;
|
|
182
|
-
|
|
183
|
-
max-width: 500px;
|
|
193
|
+
max-width: 700px;
|
|
184
194
|
}
|
|
185
195
|
|
|
186
196
|
|
|
187
197
|
.input-quote-container-h5 {
|
|
188
198
|
@extend %common-container-style;
|
|
189
199
|
width:100%;
|
|
190
|
-
|
|
191
|
-
margin: 5px 0 5px 0;
|
|
200
|
+
margin: 0px 0 5px 5px;
|
|
192
201
|
}
|
|
193
202
|
</style>
|
package/components/CustomerServiceChat/message-input-toolbar/emoji-picker/emoji-picker-dialog.vue
CHANGED
|
@@ -21,41 +21,41 @@
|
|
|
21
21
|
class="emoji"
|
|
22
22
|
:src="currentTabItem.url + BASIC_EMOJI_URL_MAPPING[childrenItem]"
|
|
23
23
|
>
|
|
24
|
-
<img
|
|
25
|
-
v-else-if="currentTabItem.type === EMOJI_TYPE.BIG"
|
|
26
|
-
class="emoji-big"
|
|
27
|
-
:src="currentTabItem.url + childrenItem + '@2x.png'"
|
|
28
|
-
|
|
29
|
-
<img
|
|
30
|
-
v-else
|
|
31
|
-
class="emoji-custom emoji-big"
|
|
32
|
-
:src="currentTabItem.url + childrenItem"
|
|
33
|
-
|
|
24
|
+
<!-- <img-->
|
|
25
|
+
<!-- v-else-if="currentTabItem.type === EMOJI_TYPE.BIG"-->
|
|
26
|
+
<!-- class="emoji-big"-->
|
|
27
|
+
<!-- :src="currentTabItem.url + childrenItem + '@2x.png'"-->
|
|
28
|
+
<!-- >-->
|
|
29
|
+
<!-- <img-->
|
|
30
|
+
<!-- v-else-->
|
|
31
|
+
<!-- class="emoji-custom emoji-big"-->
|
|
32
|
+
<!-- :src="currentTabItem.url + childrenItem"-->
|
|
33
|
+
<!-- >-->
|
|
34
34
|
</li>
|
|
35
35
|
</ul>
|
|
36
36
|
<ul class="emoji-picker-tab">
|
|
37
|
-
<li
|
|
38
|
-
v-for="(item, index) in list"
|
|
39
|
-
:key="index"
|
|
40
|
-
class="emoji-picker-tab-item"
|
|
41
|
-
@click="toggleEmojiTab(index)"
|
|
42
|
-
|
|
43
|
-
<Icon
|
|
44
|
-
v-if="item.type === EMOJI_TYPE.BASIC"
|
|
45
|
-
class="icon"
|
|
46
|
-
:file="faceIcon"
|
|
47
|
-
|
|
48
|
-
<img
|
|
49
|
-
v-else-if="item.type === EMOJI_TYPE.BIG"
|
|
50
|
-
class="icon-big"
|
|
51
|
-
:src="item.url + item.list[0] + '@2x.png'"
|
|
52
|
-
|
|
53
|
-
<img
|
|
54
|
-
v-else
|
|
55
|
-
class="icon-custom icon-big"
|
|
56
|
-
:src="item.url + item.list[0]"
|
|
57
|
-
|
|
58
|
-
</li
|
|
37
|
+
<!-- <li-->
|
|
38
|
+
<!-- v-for="(item, index) in list"-->
|
|
39
|
+
<!-- :key="index"-->
|
|
40
|
+
<!-- class="emoji-picker-tab-item"-->
|
|
41
|
+
<!-- @click="toggleEmojiTab(index)"-->
|
|
42
|
+
<!-- >-->
|
|
43
|
+
<!-- <Icon-->
|
|
44
|
+
<!-- v-if="item.type === EMOJI_TYPE.BASIC"-->
|
|
45
|
+
<!-- class="icon"-->
|
|
46
|
+
<!-- :file="faceIcon"-->
|
|
47
|
+
<!-- />-->
|
|
48
|
+
<!-- <img-->
|
|
49
|
+
<!-- v-else-if="item.type === EMOJI_TYPE.BIG"-->
|
|
50
|
+
<!-- class="icon-big"-->
|
|
51
|
+
<!-- :src="item.url + item.list[0] + '@2x.png'"-->
|
|
52
|
+
<!-- >-->
|
|
53
|
+
<!-- <img-->
|
|
54
|
+
<!-- v-else-->
|
|
55
|
+
<!-- class="icon-custom icon-big"-->
|
|
56
|
+
<!-- :src="item.url + item.list[0]"-->
|
|
57
|
+
<!-- >-->
|
|
58
|
+
<!-- </li>-->
|
|
59
59
|
<li
|
|
60
60
|
v-if="isH5"
|
|
61
61
|
class="send-btn"
|
|
@@ -116,7 +116,7 @@ const toggleEmojiTab = (index: number) => {
|
|
|
116
116
|
currentEmojiList.value = list?.value[index]?.list;
|
|
117
117
|
// web & h5 side scroll to top
|
|
118
118
|
emojiPickerListRef?.value && (emojiPickerListRef.value.scrollTop = 0);
|
|
119
|
-
|
|
119
|
+
|
|
120
120
|
};
|
|
121
121
|
|
|
122
122
|
const select = (item: any, index: number) => {
|
|
@@ -128,7 +128,7 @@ const select = (item: any, index: number) => {
|
|
|
128
128
|
case EMOJI_TYPE.BASIC:
|
|
129
129
|
options.url = currentTabItem?.value?.url + BASIC_EMOJI_URL_MAPPING[item];
|
|
130
130
|
emits('insertEmoji', options);
|
|
131
|
-
|
|
131
|
+
|
|
132
132
|
break;
|
|
133
133
|
case EMOJI_TYPE.BIG:
|
|
134
134
|
sendFaceMessage(index, currentTabItem.value);
|
|
@@ -159,7 +159,7 @@ const sendFaceMessage = (index: number, listItem: IEmojiGroup) => {
|
|
|
159
159
|
|
|
160
160
|
function sendMessage() {
|
|
161
161
|
emits('sendMessage');
|
|
162
|
-
|
|
162
|
+
|
|
163
163
|
}
|
|
164
164
|
|
|
165
165
|
function onCurrentConversationUpdate(conversation: IConversationModel) {
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
<ImageUpload imageSourceType="album" :isH5ToolShow="isH5ToolShow"/>
|
|
28
28
|
<FileUpload :isH5ToolShow="isH5ToolShow"/>
|
|
29
29
|
</template>
|
|
30
|
-
<template v-else v-for="(item, index) in props.inputToolbarList"
|
|
30
|
+
<template v-else v-for="(item, index) in props.inputToolbarList">
|
|
31
31
|
<EmojiPicker
|
|
32
32
|
v-if="isPC && item.presetId === INPUT_TOOLBAR_TYPE.EMOJI && item.isEnabled === 1"
|
|
33
33
|
ref="emojiPickerRef"
|
|
@@ -48,6 +48,7 @@
|
|
|
48
48
|
@handleToggleMessageItem="handleToggleMessageItem"
|
|
49
49
|
@handleH5LongPress="handleH5LongPress"
|
|
50
50
|
@heightChanged="onHeightChanged"
|
|
51
|
+
@messageSent="onMessageSent"
|
|
51
52
|
/>
|
|
52
53
|
<div
|
|
53
54
|
v-else
|
|
@@ -604,6 +605,10 @@ function onHeightChanged() {
|
|
|
604
605
|
scrollToLatestMessage();
|
|
605
606
|
}
|
|
606
607
|
|
|
608
|
+
function onMessageSent() {
|
|
609
|
+
scrollToLatestMessage();
|
|
610
|
+
}
|
|
611
|
+
|
|
607
612
|
// re-edit message
|
|
608
613
|
const handleEdit = (message: IMessageModel) => {
|
|
609
614
|
emits('handleEditor', message, 'reedit');
|