@tencentcloud/ai-desk-customer-vue 1.5.2 → 1.5.3

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.
@@ -1,156 +1,157 @@
1
1
  const TUIChat = {
2
- "查看内容": "Xem nội dung",
3
- "立即填写": "Điền ngay",
4
- "已提交": "Đã gửi",
5
- "不能为空": "Không được để trống",
6
- "提交": "Gửi",
7
- "撤回": "Thu hồi",
8
- "删除": "Xóa",
9
- "复制": "Sao chép",
10
- "重新发送": "Gửi lại",
11
- "转发": "Chuyển tiếp",
12
- "引用": "Trích dẫn",
13
- "打开": "Mở",
14
- "已读": "Đã đọc",
15
- "全部已读": "Đã đọc hết",
16
- "人已读": " đã đọc",
17
- "人未读": " chưa đọc",
18
- "人关闭阅读状态": " đóng trạng thái đọc",
19
- "消息详情": "Thông tin tin nhắn",
20
- "关闭阅读状态": "Đóng trạng thái đọc",
21
- "该消息不存在": "Tin nhắn không tồn tại",
22
- "无法定位到原消息": "Không thể xác định được tin nhắn gốc",
23
- "未读": "Chưa đọc",
24
- "您": "Bạn",
25
- "撤回了一条消息": "Đã thu hồi một tin nhắn",
26
- "重新编辑": "Chỉnh sửa lại",
27
- "我": "Tôi",
28
- "查看更多": "Xem thêm",
29
- "转发给": "Chuyển tiếp đến",
30
- "请输入消息": "Nhập tin nhắn",
31
- "描述": "Mô tả",
32
- "经度": "Kinh độ",
33
- "纬度": "Vĩ độ",
34
- "自定义消息": "Tin nhắn tùy chỉnh",
35
- "图片": "[hình ảnh]",
36
- "语音": "[âm thanh]",
37
- "视频": "[video]",
38
- "表情": "[biểu tượng cảm xúc]",
39
- "文件": "[tệp tin]",
40
- "自定义": "[tin nhắn tùy chỉnh]",
41
- "管理员开启全员禁言": "Quản trị viên mở chế độ im lặng cho tất cả mọi người",
42
- "您已被管理员禁言": "Bạn đã bị quản trị viên im lặng",
43
- "按Enter发送": "Nhấn Enter để gửi tin nhắn",
44
- "单击下载": "Nhấp để tải xuống",
45
- '下载':'tải về',
46
- "确认重发该消息?": "Xác nhận gửi lại tin nhắn này?",
47
- "取消": "Hủy",
48
- "确定": "Xác nhận",
49
- "对方正在输入": "Đang nhập tin...",
50
- "回到最新位置": "Quay lại vị trí mới nhất",
51
- "条新消息": " tin nhắn mới",
52
- "点此投诉": "Khiếu nại",
53
- "语音通话": "Cuộc gọi thoại",
54
- "视频通话": "Cuộc gọi video",
55
- "发起群语音": "Bắt đầu cuộc gọi thoại nhóm",
56
- "发起群视频": "Bắt đầu cuộc gọi video nhóm",
57
- "已接听": "Đã trả lời",
58
- "拒绝通话": "Từ chối cuộc gọi",
59
- "无应答": "Không trả lời",
60
- "取消通话": "Hủy cuộc gọi",
61
- "发起通话": "Bắt đầu cuộc gọi",
62
- "结束群聊": "Chỉnh sửa cuộc gọi nhóm",
63
- "通话时长": "Thời gian gọi",
64
- "欢迎使用TUICallKit": "Chào mừng đến với TUICallKit",
65
- "检测到您暂未集成TUICallKit,无法体验音视频通话功能": "Phát hiện rằng bạn chưa tích hợp TUI CallKit, vì vậy bạn không thể trải nghiệm chức năng cuộc gọi âm thanh và video.",
66
- "请点击": "Vui lòng nhấp chuột",
67
- "集成TUICallKit": " Tích hợp TUICallKit ",
68
- "开通腾讯实时音视频服务": "Tích hợp Tencent Real-Time Communication",
69
- "进行体验": "để trải nghiệm.",
70
- "您当前购买使用的套餐包暂未开通此功能": "Gói dịch vụ mà bạn đang sử dụng không hỗ trợ tính năng này.",
71
- "系统消息": "Bot",
72
- "转人工服务": "Chuyển sang dịch vụ nhân tạo",
73
- '点击处理': 'Nhấp để xử lý',
74
- '发送失败': 'Gửi thất bại',
75
- '复制成功': 'Sao chép thành công',
76
- '回复': 'Trả lời',
77
- '回复详情': 'Chi tiết trả lời',
78
- '拒绝': 'Từ chối',
79
- '聊天记录': 'Lịch sử trò chuyện',
80
- '内容包含敏感词汇': 'Nội dung chứa từ ngữ nhạy cảm',
81
- '您当前购买使用的套餐包暂未开通群消息已读回执功能': 'Gói dịch vụ bạn đang sử dụng hiện chưa mở chức năng xác nhận đã đọc tin nhắn nhóm',
82
- '您当前购买使用的套餐包暂未开通在线用户列表功能': 'Gói dịch vụ bạn đang sử dụng hiện chưa mở chức năng danh sách người dùng trực tuyến',
83
- '您有': 'Bạn có',
84
- '涉及敏感内容': 'Liên quan đến nội dung nhạy cảm',
85
- '申请加入': 'Đăng ký tham gia',
86
- '条回复': 'phản hồi',
87
- '条入群申请': 'đơn xin tham gia nhóm',
88
- '同意': 'Đồng ý',
89
- '图片消息失败,无效的图片格式': 'Gửi tin nhắn hình ảnh thất bại, định dạng hình ảnh không hợp lệ',
90
- '位置': 'Vị trí',
91
- '文件不存在,请检查文件路径是否正确': 'Tệp không tồn tại, vui lòng kiểm tra đường dẫn tệp có đúng không',
92
- '文件大小超出了限制,如果上传文件,最大限制是100MB': 'Kích thước tệp vượt quá giới hạn, nếu tải lên tệp, giới hạn tối đa là 100MB',
93
- '文件消息失败,禁止发送违规封禁的文件': 'Gửi tin nhắn tệp thất bại, không được phép gửi tệp vi phạm',
94
- '无法查看': 'Không thể xem',
95
- '无法收听': 'Không thể nghe',
96
- '正在加载': 'Đang tải',
97
- '加载结束': 'Tải xong',
98
- '消息': 'Tin nhắn',
99
- '消息或者资料中文本存在敏感内容,发送失败': 'Tin nhắn hoặc nội dung văn bản chứa nội dung nhạy cảm, gửi thất bại',
100
- '消息长度超出限制,消息长度不要超过12K': 'Độ dài tin nhắn vượt quá giới hạn, độ dài tin nhắn không vượt quá 12K',
101
- '消息中图片存在敏感内容,发送失败': 'Tin nhắn chứa hình ảnh có nội dung nhạy cảm, gửi thất bại',
102
- '选择提醒的人': 'Chọn người để thông báo',
103
- '已过撤回时限': 'Quá thời hạn rút lại',
104
- '已拒绝': 'Đã từ chối',
105
- '已同意': 'Đã đồng ý',
106
- '引用失败': 'Trích dẫn thất bại',
107
- '翻译': 'Dịch',
108
- '转文字': 'Chuyển thành văn bản',
109
- '隐藏': 'Ẩn',
110
- '空': 'Trống',
111
- '文本包含本地审核拦截词': 'Văn bản chứa từ cấm kiểm duyệt địa phương',
112
- '按住说话': 'Nhấn và nói',
113
- '抬起发送': 'Nhấc lên để gửi',
114
- '抬起取消': 'Nhấc lên để hủy',
115
- '正在录音': 'Đang ghi âm',
116
- '继续上滑可取消': 'Tiếp tục vuốt lên để hủy',
117
- '松开手指 取消发送': 'Nhả tay để hủy gửi',
118
- '此机型暂不支持复制功能': 'Máy này tạm thời không hỗ trợ chức năng sao chép',
119
- '请开通翻译功能': 'Vui lòng bật chức năng dịch',
120
- '请开通语音转文字功能': 'Vui lòng bật chức năng chuyển đổi giọng nói thành văn bản',
121
- '翻译中': 'Đang dịch',
122
- '转换中': 'Đang chuyển đổi',
123
- '由IM提供翻译支持': 'Được hỗ trợ dịch bởi IM',
124
- '所有人': 'Tất cả mọi người',
125
- '已达到表情回应上限数量': 'Đã đạt đến số lượng giới hạn phản hồi biểu cảm',
126
- '等': 'và nhiều hơn nữa',
127
- '人': 'người',
128
- '返回': 'Quay lại',
129
- '关闭': 'Đóng',
130
- '多选': 'Chọn nhiều',
131
- '合并转发': 'Chuyển tiếp kết hợp',
132
- '逐条转发': 'Chuyển tiếp từng mục',
133
- '未选择消息': 'Chưa chọn tin nhắn',
134
- '草稿': 'Bản nháp',
135
- '文本': 'Văn bản',
136
- '音频': 'Âm thanh',
137
- '地理位置': 'Vị trí địa lý',
138
- '动画表情': 'Biểu cảm động',
139
- '群提示': 'Nhắc nhở nhóm',
140
- '群提示消息': 'Tin nhắn nhắc nhở nhóm',
141
- '机器人自定义消息': 'Tin nhắn tùy chỉnh của robot',
142
- '引用内容已撤回': 'Nội dung trích dẫn đã bị thu hồi',
143
- '群聊的聊天记录': 'Lịch sử trò chuyện nhóm',
144
- '和': 'và',
145
- '的聊天记录': 'của lịch sử trò chuyện',
146
- '请升级IMSDK到v2.10.1或更高版本查看此消息': 'Vui lòng nâng cấp IMSDK lên phiên bản v2.10.1 hoặc cao hơn để xem tin nhắn này',
147
- '该群聊已被解散': 'Nhóm trò chuyện đã bị giải tán',
148
- '您已被管理员移出群聊': 'Bạn đã bị loại khỏi nhóm bởi quản trị viên',
149
- '您已退出该群聊': 'Bạn đã rời khỏi nhóm',
150
- '您已被禁止聊天': 'Bạn đã bị cấm trò chuyện',
151
- '按Enter发送,Ctrl+Enter换行': 'Nhấn Enter để gửi, Ctrl+Enter để xuống dòng',
152
- '账号被强制下线': 'Tài khoản bị buộc đăng xuất',
153
- '登录失败': 'Đăng nhập thất bại',
2
+ "查看内容": "Xem nội dung",
3
+ "立即填写": "Điền ngay",
4
+ "已提交": "Đã gửi",
5
+ "不能为空": "Không được để trống",
6
+ "提交": "Gửi",
7
+ "撤回": "Thu hồi",
8
+ "删除": "Xóa",
9
+ "复制": "Sao chép",
10
+ "重新发送": "Gửi lại",
11
+ "转发": "Chuyển tiếp",
12
+ "引用": "Trích dẫn",
13
+ "打开": "Mở",
14
+ "已读": "Đã đọc",
15
+ "全部已读": "Đã đọc hết",
16
+ "人已读": " đã đọc",
17
+ "人未读": " chưa đọc",
18
+ "人关闭阅读状态": " đóng trạng thái đọc",
19
+ "消息详情": "Thông tin tin nhắn",
20
+ "关闭阅读状态": "Đóng trạng thái đọc",
21
+ "该消息不存在": "Tin nhắn không tồn tại",
22
+ "无法定位到原消息": "Không thể xác định được tin nhắn gốc",
23
+ "未读": "Chưa đọc",
24
+ "您": "Bạn",
25
+ "撤回了一条消息": "Đã thu hồi một tin nhắn",
26
+ "重新编辑": "Chỉnh sửa lại",
27
+ "我": "Tôi",
28
+ "查看更多": "Xem thêm",
29
+ "转发给": "Chuyển tiếp đến",
30
+ "请输入消息": "Nhập tin nhắn",
31
+ "描述": "Mô tả",
32
+ "经度": "Kinh độ",
33
+ "纬度": "Vĩ độ",
34
+ "自定义消息": "Tin nhắn tùy chỉnh",
35
+ "图片": "[hình ảnh]",
36
+ "语音": "[âm thanh]",
37
+ "视频": "[video]",
38
+ "表情": "[biểu tượng cảm xúc]",
39
+ "文件": "[tệp tin]",
40
+ "自定义": "[tin nhắn tùy chỉnh]",
41
+ "管理员开启全员禁言": "Quản trị viên mở chế độ im lặng cho tất cả mọi người",
42
+ "您已被管理员禁言": "Bạn đã bị quản trị viên im lặng",
43
+ "按Enter发送": "Nhấn Enter để gửi tin nhắn",
44
+ "单击下载": "Nhấp để tải xuống",
45
+ '下载':'tải về',
46
+ "确认重发该消息?": "Xác nhận gửi lại tin nhắn này?",
47
+ "取消": "Hủy",
48
+ "确定": "Xác nhận",
49
+ "对方正在输入": "Đang nhập tin...",
50
+ "回到最新位置": "Quay lại vị trí mới nhất",
51
+ "条新消息": " tin nhắn mới",
52
+ "点此投诉": "Khiếu nại",
53
+ "语音通话": "Cuộc gọi thoại",
54
+ "视频通话": "Cuộc gọi video",
55
+ "发起群语音": "Bắt đầu cuộc gọi thoại nhóm",
56
+ "发起群视频": "Bắt đầu cuộc gọi video nhóm",
57
+ "已接听": "Đã trả lời",
58
+ "拒绝通话": "Từ chối cuộc gọi",
59
+ "无应答": "Không trả lời",
60
+ "取消通话": "Hủy cuộc gọi",
61
+ "发起通话": "Bắt đầu cuộc gọi",
62
+ "结束群聊": "Chỉnh sửa cuộc gọi nhóm",
63
+ "通话时长": "Thời gian gọi",
64
+ "欢迎使用TUICallKit": "Chào mừng đến với TUICallKit",
65
+ "检测到您暂未集成TUICallKit,无法体验音视频通话功能": "Phát hiện rằng bạn chưa tích hợp TUI CallKit, vì vậy bạn không thể trải nghiệm chức năng cuộc gọi âm thanh và video.",
66
+ "请点击": "Vui lòng nhấp chuột",
67
+ "集成TUICallKit": " Tích hợp TUICallKit ",
68
+ "开通腾讯实时音视频服务": "Tích hợp Tencent Real-Time Communication",
69
+ "进行体验": "để trải nghiệm.",
70
+ "您当前购买使用的套餐包暂未开通此功能": "Gói dịch vụ mà bạn đang sử dụng không hỗ trợ tính năng này.",
71
+ "系统消息": "Bot",
72
+ "转人工服务": "Chuyển sang dịch vụ nhân tạo",
73
+ '点击处理': 'Nhấp để xử lý',
74
+ '发送失败': 'Gửi thất bại',
75
+ '复制成功': 'Sao chép thành công',
76
+ '回复': 'Trả lời',
77
+ '回复详情': 'Chi tiết trả lời',
78
+ '拒绝': 'Từ chối',
79
+ '聊天记录': 'Lịch sử trò chuyện',
80
+ '内容包含敏感词汇': 'Nội dung chứa từ ngữ nhạy cảm',
81
+ '您当前购买使用的套餐包暂未开通群消息已读回执功能': 'Gói dịch vụ bạn đang sử dụng hiện chưa mở chức năng xác nhận đã đọc tin nhắn nhóm',
82
+ '您当前购买使用的套餐包暂未开通在线用户列表功能': 'Gói dịch vụ bạn đang sử dụng hiện chưa mở chức năng danh sách người dùng trực tuyến',
83
+ '您有': 'Bạn có',
84
+ '涉及敏感内容': 'Liên quan đến nội dung nhạy cảm',
85
+ '申请加入': 'Đăng ký tham gia',
86
+ '条回复': 'phản hồi',
87
+ '条入群申请': 'đơn xin tham gia nhóm',
88
+ '同意': 'Đồng ý',
89
+ '图片消息失败,无效的图片格式': 'Gửi tin nhắn hình ảnh thất bại, định dạng hình ảnh không hợp lệ',
90
+ '位置': 'Vị trí',
91
+ '文件不存在,请检查文件路径是否正确': 'Tệp không tồn tại, vui lòng kiểm tra đường dẫn tệp có đúng không',
92
+ '文件大小超出了限制,如果上传文件,最大限制是100MB': 'Kích thước tệp vượt quá giới hạn, nếu tải lên tệp, giới hạn tối đa là 100MB',
93
+ '文件消息失败,禁止发送违规封禁的文件': 'Gửi tin nhắn tệp thất bại, không được phép gửi tệp vi phạm',
94
+ '无法查看': 'Không thể xem',
95
+ '无法收听': 'Không thể nghe',
96
+ '正在加载': 'Đang tải',
97
+ '加载结束': 'Tải xong',
98
+ '消息': 'Tin nhắn',
99
+ '消息或者资料中文本存在敏感内容,发送失败': 'Tin nhắn hoặc nội dung văn bản chứa nội dung nhạy cảm, gửi thất bại',
100
+ '消息长度超出限制,消息长度不要超过12K': 'Độ dài tin nhắn vượt quá giới hạn, độ dài tin nhắn không vượt quá 12K',
101
+ '消息中图片存在敏感内容,发送失败': 'Tin nhắn chứa hình ảnh có nội dung nhạy cảm, gửi thất bại',
102
+ '选择提醒的人': 'Chọn người để thông báo',
103
+ '已过撤回时限': 'Quá thời hạn rút lại',
104
+ '已拒绝': 'Đã từ chối',
105
+ '已同意': 'Đã đồng ý',
106
+ '引用失败': 'Trích dẫn thất bại',
107
+ '翻译': 'Dịch',
108
+ '转文字': 'Chuyển thành văn bản',
109
+ '隐藏': 'Ẩn',
110
+ '空': 'Trống',
111
+ '文本包含本地审核拦截词': 'Văn bản chứa từ cấm kiểm duyệt địa phương',
112
+ '按住说话': 'Nhấn và nói',
113
+ '抬起发送': 'Nhấc lên để gửi',
114
+ '抬起取消': 'Nhấc lên để hủy',
115
+ '正在录音': 'Đang ghi âm',
116
+ '继续上滑可取消': 'Tiếp tục vuốt lên để hủy',
117
+ '松开手指 取消发送': 'Nhả tay để hủy gửi',
118
+ '此机型暂不支持复制功能': 'Máy này tạm thời không hỗ trợ chức năng sao chép',
119
+ '请开通翻译功能': 'Vui lòng bật chức năng dịch',
120
+ '请开通语音转文字功能': 'Vui lòng bật chức năng chuyển đổi giọng nói thành văn bản',
121
+ '翻译中': 'Đang dịch',
122
+ '转换中': 'Đang chuyển đổi',
123
+ '由IM提供翻译支持': 'Được hỗ trợ dịch bởi IM',
124
+ '所有人': 'Tất cả mọi người',
125
+ '已达到表情回应上限数量': 'Đã đạt đến số lượng giới hạn phản hồi biểu cảm',
126
+ '等': 'và nhiều hơn nữa',
127
+ '人': 'người',
128
+ '返回': 'Quay lại',
129
+ '关闭': 'Đóng',
130
+ '多选': 'Chọn nhiều',
131
+ '合并转发': 'Chuyển tiếp kết hợp',
132
+ '逐条转发': 'Chuyển tiếp từng mục',
133
+ '未选择消息': 'Chưa chọn tin nhắn',
134
+ '草稿': 'Bản nháp',
135
+ '文本': 'Văn bản',
136
+ '音频': 'Âm thanh',
137
+ '地理位置': 'Vị trí địa lý',
138
+ '动画表情': 'Biểu cảm động',
139
+ '群提示': 'Nhắc nhở nhóm',
140
+ '群提示消息': 'Tin nhắn nhắc nhở nhóm',
141
+ '机器人自定义消息': 'Tin nhắn tùy chỉnh của robot',
142
+ '引用内容已撤回': 'Nội dung trích dẫn đã bị thu hồi',
143
+ '群聊的聊天记录': 'Lịch sử trò chuyện nhóm',
144
+ '和': 'và',
145
+ '的聊天记录': 'của lịch sử trò chuyện',
146
+ '请升级IMSDK到v2.10.1或更高版本查看此消息': 'Vui lòng nâng cấp IMSDK lên phiên bản v2.10.1 hoặc cao hơn để xem tin nhắn này',
147
+ '该群聊已被解散': 'Nhóm trò chuyện đã bị giải tán',
148
+ '您已被管理员移出群聊': 'Bạn đã bị loại khỏi nhóm bởi quản trị viên',
149
+ '您已退出该群聊': 'Bạn đã rời khỏi nhóm',
150
+ '您已被禁止聊天': 'Bạn đã bị cấm trò chuyện',
151
+ '按Enter发送,Ctrl+Enter换行': 'Nhấn Enter để gửi, Ctrl+Enter để xuống dòng',
152
+ '账号被强制下线': 'Tài khoản bị buộc đăng xuất',
153
+ '登录失败': 'Đăng nhập thất bại',
154
+ '链接':'[Liên kết]',
154
155
  };
155
156
 
156
157
  export default TUIChat;
@@ -153,6 +153,7 @@ const TUIChat = {
153
153
  '您已被禁止聊天': '您已被禁止聊天',
154
154
  '账号被强制下线': '账号被强制下线',
155
155
  '登录失败': '登录失败',
156
+ '链接':'[链接]',
156
157
  };
157
158
 
158
159
  export default TUIChat;
@@ -153,6 +153,7 @@ const TUIChat = {
153
153
  '您已被禁止聊天': '您已被禁止聊天',
154
154
  '账号被强制下线': '帳號被強制下線',
155
155
  '登录失败': '登入失敗',
156
+ '链接':'[連結]',
156
157
  };
157
158
 
158
159
  export default TUIChat;
package/package.json CHANGED
@@ -1,16 +1,14 @@
1
1
  {
2
2
  "name": "@tencentcloud/ai-desk-customer-vue",
3
- "version": "1.5.2",
4
- "description": "Vue UIKit for AI Desk",
3
+ "version": "1.5.3",
4
+ "description": "Vue2/Vue3 UIKit for AI Desk",
5
5
  "main": "index",
6
6
  "keywords": [
7
- "customer service",
8
- "ai",
7
+ "ai customer service",
8
+ "ai agent",
9
9
  "chatbot",
10
10
  "vue",
11
11
  "tencentcloud",
12
- "智能客服",
13
- "智能机器人",
14
12
  "deepseek"
15
13
  ],
16
14
  "scripts": {
package/server.ts CHANGED
@@ -20,6 +20,7 @@ import { Toast, TOAST_TYPE } from "./components/common/Toast/index-web";
20
20
  import { switchReadStatus } from "./utils/utils";
21
21
  import state from "./utils/state";
22
22
  import { USER_DEFAULT_AVATAR } from "./constant";
23
+ import { vueVersion } from "./adapter-vue-web";
23
24
 
24
25
  interface IInitWithProfile {
25
26
  SDKAppID: number,
@@ -27,6 +28,7 @@ interface IInitWithProfile {
27
28
  userSig: string,
28
29
  nickName?: string,
29
30
  avatar?: string,
31
+ customerServiceID?: string,
30
32
  }
31
33
 
32
34
  interface IProfile {
@@ -37,13 +39,15 @@ interface IProfile {
37
39
  export default class TUICustomerServer {
38
40
  private isLoggedIn: boolean;
39
41
  static instance: TUICustomerServer;
40
- private customerServiceAccounts: any[];
42
+ private customerServiceIDList: any[];
43
+ private currentCustomerServiceID: string;
41
44
  private loggedInUserID: string;
42
45
  private myProfile: IProfile;
43
46
  constructor() {
44
47
  TUICore.registerService(TUIConstants.TUICustomerServicePlugin.SERVICE.NAME, this);
45
48
  TUICore.registerExtension(TUIConstants.TUIContact.EXTENSION.CONTACT_LIST.EXT_ID, this);
46
- this.customerServiceAccounts = ['@customer_service_account'];
49
+ this.customerServiceIDList = ['@customer_service_account'];
50
+ this.currentCustomerServiceID = this.customerServiceIDList[0];
47
51
  this.isLoggedIn = false;
48
52
  this.loggedInUserID = '';
49
53
  this.myProfile = { avatar: USER_DEFAULT_AVATAR };
@@ -67,7 +71,7 @@ export default class TUICustomerServer {
67
71
  Log.i(`login success. userID:${userID}`);
68
72
  this.isLoggedIn = true;
69
73
  this.loggedInUserID = userID;
70
- TUIConversationService.switchConversation('C2C@customer_service_account');
74
+ TUIConversationService.switchConversation(`C2C${this.currentCustomerServiceID}`);
71
75
  switchReadStatus(state.get('showReadStatus'));
72
76
  TUIChatEngine.chat.callExperimentalAPI('isFeatureEnabledForStat', Math.pow(2, 42));
73
77
  })
@@ -82,9 +86,11 @@ export default class TUICustomerServer {
82
86
  }
83
87
 
84
88
  public init(SDKAppID:number, userID:string, userSig:string) {
85
- Log.l(`TUICustomerServer.init version:${version} SDKAppID:${SDKAppID} userID:${userID} isLoggedIn:${this.isLoggedIn} loggedInUserID:${this.loggedInUserID}`);
89
+ Log.l(`TUICustomerServer.init vueVersion:${vueVersion} version:${version} SDKAppID:${SDKAppID} userID:${userID}` +
90
+ ` isLoggedIn:${this.isLoggedIn} loggedInUserID:${this.loggedInUserID} currentCustomerServiceID:${this.currentCustomerServiceID}`);
86
91
  if (this.isLoggedIn) {
87
92
  if (this.loggedInUserID === userID) {
93
+ TUIConversationService.switchConversation(`C2C${this.currentCustomerServiceID}`);
88
94
  return;
89
95
  }
90
96
  this.unInit().finally(() => {
@@ -97,7 +103,7 @@ export default class TUICustomerServer {
97
103
  }
98
104
 
99
105
  public initWithProfile(options: IInitWithProfile) {
100
- const { SDKAppID, userID, userSig, nickName, avatar } = options;
106
+ const { SDKAppID, userID, userSig, nickName, avatar, customerServiceID } = options;
101
107
  Log.l(`TUICustomerServer.initWithProfile version:${version}`);
102
108
  if (nickName) {
103
109
  // chat 个人资料的昵称是 nick
@@ -106,6 +112,9 @@ export default class TUICustomerServer {
106
112
  if (avatar) {
107
113
  this.myProfile.avatar = avatar;
108
114
  }
115
+ if (customerServiceID) {
116
+ this.currentCustomerServiceID = customerServiceID;
117
+ }
109
118
  this.init(SDKAppID, userID, userSig);
110
119
  }
111
120
 
@@ -134,7 +143,7 @@ export default class TUICustomerServer {
134
143
  // Determine if the current session is a customer service session
135
144
  public isCustomerConversation(conversationID: string) {
136
145
  const userID = (conversationID && conversationID.slice(3)) || '';
137
- return this.customerServiceAccounts.indexOf(userID) > -1;
146
+ return this.customerServiceIDList.indexOf(userID) > -1;
138
147
  }
139
148
 
140
149
  // Determine if the current message is a customer service message
@@ -157,13 +166,39 @@ export default class TUICustomerServer {
157
166
  text: '智能客服',
158
167
  data: {
159
168
  name: 'customer',
160
- accountList: this.customerServiceAccounts,
169
+ accountList: this.customerServiceIDList,
161
170
  },
162
171
  },
163
172
  ];
164
173
  }
165
174
  }
166
175
 
176
+ /**
177
+ * Set up multiple customer service ID
178
+ * @param list
179
+ */
180
+ public setCustomerServiceIDList(list: Array<string>) {
181
+ if (!Array.isArray(list) || list.length === 0) {
182
+ return;
183
+ }
184
+ this.customerServiceIDList = list;
185
+ this.currentCustomerServiceID = list[0];
186
+ Log.i(`TUICustomerServer.setCustomerServiceIDList`, this.customerServiceIDList);
187
+ }
188
+
189
+ /**
190
+ * Clear conversation unread count
191
+ * @param conversationID
192
+ */
193
+ public clearConversationUnreadCount(conversationID?: string) {
194
+ Log.l(`TUICustomerServer.clearConversationUnreadCount conversationID:${conversationID}`);
195
+ if (conversationID) {
196
+ TUIConversationService.setMessageRead(conversationID);
197
+ } else {
198
+ TUIConversationService.setMessageRead(`C2C${this.currentCustomerServiceID}`);
199
+ }
200
+ }
201
+
167
202
  public onCall(method: string, params: any) {
168
203
  Log.l(`TUICustomerServer.onCall method:${method} params:`, params);
169
204
  if (method === TUIConstants.TUICustomerServicePlugin.SERVICE.METHOD.ACTIVE_CONVERSATION) {
package/utils/utils.ts CHANGED
@@ -7,6 +7,9 @@ import TUIChatEngine, {
7
7
  IConversationModel,
8
8
  } from '@tencentcloud/chat-uikit-engine';
9
9
  import Log from './logger';
10
+ import { isCustomerServiceMessage, JSONToObject } from './index';
11
+ import { CUSTOM_MESSAGE_SRC } from '../constant';
12
+ import { Marked, parse } from 'marked';
10
13
 
11
14
  export function deepCopy(data: any, hash = new WeakMap()) {
12
15
  if (typeof data !== 'object' || data === null || data === undefined) {
@@ -213,3 +216,53 @@ export function isNonEmptyObject(obj: any): boolean {
213
216
  }
214
217
  return false;
215
218
  }
219
+
220
+ export function getQuoteContentForDesk(message: IMessageModel): string {
221
+ let result = TUITranslateService.t('TUIChat.自定义');
222
+ if (isCustomerServiceMessage(message)) {
223
+ const payload = JSONToObject(message.payload.data);
224
+ const src = payload.src;
225
+ if (src === CUSTOM_MESSAGE_SRC.BRANCH || src === CUSTOM_MESSAGE_SRC.BRANCH_NUMBER) {
226
+ result = payload.content.header;
227
+ } else if (src === CUSTOM_MESSAGE_SRC.RICH_TEXT) {
228
+ result = parseQuoteMarkdown(payload.content);
229
+ } else if (src === CUSTOM_MESSAGE_SRC.STREAM_TEXT) {
230
+ const chunks = Array.isArray(payload.chunks) ? payload.chunks.join('') : payload.chunks;
231
+ result = parseQuoteMarkdown(chunks);
232
+ } else if (src === CUSTOM_MESSAGE_SRC.MULTI_BRANCH) {
233
+ result = payload.content.header;
234
+ } else if (src === CUSTOM_MESSAGE_SRC.MULTI_FORM) {
235
+ result = payload.content.tip;
236
+ } else if (src === CUSTOM_MESSAGE_SRC.ROBOT_MSG) {
237
+ result = payload.content.title;
238
+ }
239
+ }
240
+
241
+ return result;
242
+ }
243
+
244
+ const quoteMarked = new Marked(
245
+ {mangle: false, headerIds: false},
246
+ {
247
+ renderer: {
248
+ image(this: any, href: string | null, title: string | null, text: string) {
249
+ return TUITranslateService.t('TUIChat.图片');
250
+ },
251
+ link(this: any, href: string | null, title: string | null, text: string) {
252
+ if (href) {
253
+ return TUITranslateService.t('TUIChat.链接');
254
+ }
255
+ return text;
256
+ },
257
+ },
258
+ },
259
+ );
260
+
261
+ function parseQuoteMarkdown(content: string): string {
262
+ let result = quoteMarked.parse(content);
263
+ result = typeof result === 'string' ? result : '';
264
+ result = result.replace(/\n+/g, ' ').trim()
265
+ .replace(/\*\*|\*|_|`|#/g, '')
266
+ .replace(/<[^>]+>/g, '');
267
+ return result;
268
+ }