@aochuang/client-sdk 1.0.278

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 (366) hide show
  1. package/README.md +93 -0
  2. package/common/avatar/avatar.vue +86 -0
  3. package/common/avatar/index.js +3 -0
  4. package/common/badge/badge.vue +105 -0
  5. package/common/badge/index.js +3 -0
  6. package/common/context-menu/context-menu-box.vue +61 -0
  7. package/common/context-menu/context-menu-group.vue +162 -0
  8. package/common/context-menu/context-menu-item.vue +179 -0
  9. package/common/context-menu/context-menu.vue +201 -0
  10. package/common/context-menu/index.js +3 -0
  11. package/common/context-menu/utils.js +138 -0
  12. package/common/friend-avatar/default.svg +1 -0
  13. package/common/friend-avatar/friend-avatar.vue +29 -0
  14. package/common/friend-avatar/index.js +3 -0
  15. package/common/image/index.js +3 -0
  16. package/common/index.js +17 -0
  17. package/common/room-avatar/default.svg +6 -0
  18. package/common/room-avatar/index.js +3 -0
  19. package/common/room-avatar/room-avatar.vue +29 -0
  20. package/common/scroll-load-more/index.js +3 -0
  21. package/common/scroll-load-more/scroll-load-more.vue +195 -0
  22. package/common/user-avatar/default.svg +1 -0
  23. package/common/user-avatar/index.js +3 -0
  24. package/common/user-avatar/user-avatar.vue +29 -0
  25. package/components/account-select/account-select-skeleton.vue +56 -0
  26. package/components/account-select/account-select.vue +205 -0
  27. package/components/account-select/all.svg +1 -0
  28. package/components/account-select/index.js +3 -0
  29. package/components/chat-editor/MENTION_TOKEN_SUMMARY.md +74 -0
  30. package/components/chat-editor/chat-editor-button/chat-editor-button.vue +78 -0
  31. package/components/chat-editor/chat-editor-suggestions/chat-editor-suggestions.vue +329 -0
  32. package/components/chat-editor/chat-editor-toolbar/chat-editor-toolbar-item.vue +28 -0
  33. package/components/chat-editor/chat-editor-toolbar/chat-editor-toolbar.vue +17 -0
  34. package/components/chat-editor/chat-editor.vue +933 -0
  35. package/components/chat-editor/index.js +12 -0
  36. package/components/chat-editor/utils.js +189 -0
  37. package/components/chat-friend-profile/chat-friend-profile.vue +118 -0
  38. package/components/chat-friend-profile/index.js +3 -0
  39. package/components/chat-layout/chat-layout.vue +71 -0
  40. package/components/chat-layout/index.js +3 -0
  41. package/components/chat-panel/chat-panel-box.vue +350 -0
  42. package/components/chat-panel/chat-panel-chat.vue +121 -0
  43. package/components/chat-panel/chat-panel-chats.vue +674 -0
  44. package/components/chat-panel/chat-panel-empty.vue +32 -0
  45. package/components/chat-panel/chat-panel-increment.vue +80 -0
  46. package/components/chat-panel/chat-panel-inner-msg.vue +25 -0
  47. package/components/chat-panel/chat-panel-loading.vue +29 -0
  48. package/components/chat-panel/chat-panel-nearest.vue +136 -0
  49. package/components/chat-panel/chat-panel.vue +292 -0
  50. package/components/chat-panel/index.js +3 -0
  51. package/components/chat-panel/util.js +83 -0
  52. package/components/chat-room-profile/chat-room-profile.vue +103 -0
  53. package/components/chat-room-profile/index.js +3 -0
  54. package/components/contacts-friend-select/contacts-friend-select-skeleton.vue +41 -0
  55. package/components/contacts-friend-select/contacts-friend-select.vue +204 -0
  56. package/components/contacts-friend-select/index.js +3 -0
  57. package/components/contacts-group-select/contacts-group-select-item.vue +98 -0
  58. package/components/contacts-group-select/contacts-group-select-skeleton.vue +81 -0
  59. package/components/contacts-group-select/contacts-group-select.vue +396 -0
  60. package/components/contacts-group-select/index.js +3 -0
  61. package/components/contacts-room-select/contacts-room-select-skeleton.vue +41 -0
  62. package/components/contacts-room-select/contacts-room-select.vue +208 -0
  63. package/components/contacts-room-select/index.js +3 -0
  64. package/components/index.js +43 -0
  65. package/components/layout/index.js +3 -0
  66. package/components/layout/layout.vue +70 -0
  67. package/components/session-select/index.js +11 -0
  68. package/components/session-select/session-select-item-skeleton.vue +59 -0
  69. package/components/session-select/session-select-item.vue +190 -0
  70. package/components/session-select/session-select.vue +386 -0
  71. package/components/wechat-chat-control/calling/calling.vue +227 -0
  72. package/components/wechat-chat-control/calling/phone-fill.svg +1 -0
  73. package/components/wechat-chat-control/calling/vidicon-fill.svg +1 -0
  74. package/components/wechat-chat-control/channel-live/channel-live.vue +198 -0
  75. package/components/wechat-chat-control/channel-live/quote-icon.svg +1 -0
  76. package/components/wechat-chat-control/channel-video/channel-video.vue +180 -0
  77. package/components/wechat-chat-control/channel-video/quote-icon.svg +1 -0
  78. package/components/wechat-chat-control/channel-video-card/channel-video-card.vue +139 -0
  79. package/components/wechat-chat-control/channel-video-card/quote-icon.svg +1 -0
  80. package/components/wechat-chat-control/company-card/company-card.vue +136 -0
  81. package/components/wechat-chat-control/company-card/quote-icon.svg +1 -0
  82. package/components/wechat-chat-control/custom-expression/custom-expression.vue +45 -0
  83. package/components/wechat-chat-control/empty/empty.vue +27 -0
  84. package/components/wechat-chat-control/file-url/file-url.vue +307 -0
  85. package/components/wechat-chat-control/file-url/icons/file-excel-line.svg +1 -0
  86. package/components/wechat-chat-control/file-url/icons/file-info-line.svg +1 -0
  87. package/components/wechat-chat-control/file-url/icons/file-music-line.svg +1 -0
  88. package/components/wechat-chat-control/file-url/icons/file-pdf-line.svg +1 -0
  89. package/components/wechat-chat-control/file-url/icons/file-ppt-line.svg +1 -0
  90. package/components/wechat-chat-control/file-url/icons/file-settings-line.svg +1 -0
  91. package/components/wechat-chat-control/file-url/icons/file-text-line.svg +1 -0
  92. package/components/wechat-chat-control/file-url/icons/file-unknow-line.svg +1 -0
  93. package/components/wechat-chat-control/file-url/icons/file-word-line.svg +1 -0
  94. package/components/wechat-chat-control/file-url/icons/file-zip-line.svg +1 -0
  95. package/components/wechat-chat-control/file-url/icons/index.js +24 -0
  96. package/components/wechat-chat-control/image/image.vue +344 -0
  97. package/components/wechat-chat-control/image/index.js +1 -0
  98. package/components/wechat-chat-control/image/util.js +29 -0
  99. package/components/wechat-chat-control/index.js +104 -0
  100. package/components/wechat-chat-control/jx-sys-text/jx-sys-text.vue +28 -0
  101. package/components/wechat-chat-control/location/location.vue +179 -0
  102. package/components/wechat-chat-control/location/offline-bg.png +0 -0
  103. package/components/wechat-chat-control/member-change/member-change.vue +37 -0
  104. package/components/wechat-chat-control/music/icons/163.png +0 -0
  105. package/components/wechat-chat-control/music/icons/163.svg +12 -0
  106. package/components/wechat-chat-control/music/icons/default.png +0 -0
  107. package/components/wechat-chat-control/music/icons/default.svg +1 -0
  108. package/components/wechat-chat-control/music/icons/kuwo.png +0 -0
  109. package/components/wechat-chat-control/music/icons/qq.png +0 -0
  110. package/components/wechat-chat-control/music/icons/qq.svg +1 -0
  111. package/components/wechat-chat-control/music/music.vue +156 -0
  112. package/components/wechat-chat-control/music/utils.js +30 -0
  113. package/components/wechat-chat-control/quote-message/quote-message.vue +257 -0
  114. package/components/wechat-chat-control/real-time-position/icon.svg +1 -0
  115. package/components/wechat-chat-control/real-time-position/real-time-position.vue +57 -0
  116. package/components/wechat-chat-control/red-envelopes/quote-icon.svg +1 -0
  117. package/components/wechat-chat-control/red-envelopes/red-envelope.svg +1 -0
  118. package/components/wechat-chat-control/red-envelopes/red-envelopes.vue +168 -0
  119. package/components/wechat-chat-control/revoke-me-message/revoke-me-message.vue +41 -0
  120. package/components/wechat-chat-control/revoke-other-message/revoke-other-message.vue +41 -0
  121. package/components/wechat-chat-control/revoke-you-message/revoke-you-message.vue +41 -0
  122. package/components/wechat-chat-control/room-calling/phone-fill.svg +1 -0
  123. package/components/wechat-chat-control/room-calling/room-calling.vue +52 -0
  124. package/components/wechat-chat-control/room-calling/vidicon-fill.svg +1 -0
  125. package/components/wechat-chat-control/share-card/quote-icon.svg +1 -0
  126. package/components/wechat-chat-control/share-card/share-card.vue +140 -0
  127. package/components/wechat-chat-control/system/system.vue +122 -0
  128. package/components/wechat-chat-control/system-batch-message/system-batch-message.vue +28 -0
  129. package/components/wechat-chat-control/system-money/system-money.vue +39 -0
  130. package/components/wechat-chat-control/text/icons/icon.svg +6 -0
  131. package/components/wechat-chat-control/text/text.vue +164 -0
  132. package/components/wechat-chat-control/text-with-at/text-with-at.vue +88 -0
  133. package/components/wechat-chat-control/transfer/collection.svg +1 -0
  134. package/components/wechat-chat-control/transfer/quote-icon.svg +1 -0
  135. package/components/wechat-chat-control/transfer/red-transfer.svg +1 -0
  136. package/components/wechat-chat-control/transfer/refund.svg +1 -0
  137. package/components/wechat-chat-control/transfer/transfer.svg +1 -0
  138. package/components/wechat-chat-control/transfer/transfer.vue +263 -0
  139. package/components/wechat-chat-control/unknow/unknow.vue +21 -0
  140. package/components/wechat-chat-control/url/icons/link.svg +1 -0
  141. package/components/wechat-chat-control/url/icons/video.svg +6 -0
  142. package/components/wechat-chat-control/url/miniprogram.svg +1 -0
  143. package/components/wechat-chat-control/url/url-file.vue +47 -0
  144. package/components/wechat-chat-control/url/url-link.vue +169 -0
  145. package/components/wechat-chat-control/url/url-merge.vue +164 -0
  146. package/components/wechat-chat-control/url/url-miniprogram.vue +259 -0
  147. package/components/wechat-chat-control/url/url.vue +116 -0
  148. package/components/wechat-chat-control/util.js +234 -0
  149. package/components/wechat-chat-control/video/icons/video.svg +1 -0
  150. package/components/wechat-chat-control/video/video.vue +304 -0
  151. package/components/wechat-chat-control/voice/icons/voice.svg +1 -0
  152. package/components/wechat-chat-control/voice/voice.vue +464 -0
  153. package/components/wechat-chat-control/wechat-chat-control-config-item.vue +24 -0
  154. package/components/wechat-chat-control/wechat-chat-control-config-msg.vue +21 -0
  155. package/components/wechat-chat-control/wechat-chat-control-config.vue +57 -0
  156. package/components/wechat-chat-panel/chat-panel-chat-status/chat-panel-chat-status.vue +69 -0
  157. package/components/wechat-chat-panel/chat-panel-item.vue +695 -0
  158. package/components/wechat-chat-panel/chat-panel.vue +257 -0
  159. package/components/wechat-chat-panel/index.js +3 -0
  160. package/components/wework-chat-control/calling/calling.vue +223 -0
  161. package/components/wework-chat-control/calling/phone-fill.svg +1 -0
  162. package/components/wework-chat-control/calling/vidicon-fill.svg +1 -0
  163. package/components/wework-chat-control/channel-live/channel-live.vue +198 -0
  164. package/components/wework-chat-control/channel-live/quote-icon.svg +1 -0
  165. package/components/wework-chat-control/channel-video/channel-video.vue +180 -0
  166. package/components/wework-chat-control/channel-video/quote-icon.svg +1 -0
  167. package/components/wework-chat-control/company-card/company-card.vue +136 -0
  168. package/components/wework-chat-control/company-card/quote-icon.svg +1 -0
  169. package/components/wework-chat-control/custom-expression/custom-expression.vue +34 -0
  170. package/components/wework-chat-control/empty/empty.vue +27 -0
  171. package/components/wework-chat-control/expression/expression.vue +53 -0
  172. package/components/wework-chat-control/file-url/file-url.vue +247 -0
  173. package/components/wework-chat-control/file-url/icons/file-excel-line.svg +1 -0
  174. package/components/wework-chat-control/file-url/icons/file-info-line.svg +1 -0
  175. package/components/wework-chat-control/file-url/icons/file-music-line.svg +1 -0
  176. package/components/wework-chat-control/file-url/icons/file-pdf-line.svg +1 -0
  177. package/components/wework-chat-control/file-url/icons/file-ppt-line.svg +1 -0
  178. package/components/wework-chat-control/file-url/icons/file-settings-line.svg +1 -0
  179. package/components/wework-chat-control/file-url/icons/file-text-line.svg +1 -0
  180. package/components/wework-chat-control/file-url/icons/file-unknow-line.svg +1 -0
  181. package/components/wework-chat-control/file-url/icons/file-word-line.svg +1 -0
  182. package/components/wework-chat-control/file-url/icons/file-zip-line.svg +1 -0
  183. package/components/wework-chat-control/file-url/icons/index.js +24 -0
  184. package/components/wework-chat-control/image/image.vue +296 -0
  185. package/components/wework-chat-control/image/index.js +1 -0
  186. package/components/wework-chat-control/image/util.js +21 -0
  187. package/components/wework-chat-control/index.js +105 -0
  188. package/components/wework-chat-control/jx-sys-text/jx-sys-text.vue +28 -0
  189. package/components/wework-chat-control/link/link.vue +100 -0
  190. package/components/wework-chat-control/location/location.vue +181 -0
  191. package/components/wework-chat-control/location/offline-bg.png +0 -0
  192. package/components/wework-chat-control/red-envelopes/quote-icon.svg +1 -0
  193. package/components/wework-chat-control/red-envelopes/red-envelope.svg +1 -0
  194. package/components/wework-chat-control/red-envelopes/red-envelopes.vue +168 -0
  195. package/components/wework-chat-control/share-card/quote-icon.svg +1 -0
  196. package/components/wework-chat-control/share-card/share-card.vue +140 -0
  197. package/components/wework-chat-control/text/icons/icon.svg +6 -0
  198. package/components/wework-chat-control/text/text.vue +157 -0
  199. package/components/wework-chat-control/unknow/unknow.vue +21 -0
  200. package/components/wework-chat-control/url/icons/link.svg +1 -0
  201. package/components/wework-chat-control/url/icons/video.svg +6 -0
  202. package/components/wework-chat-control/url/miniprogram.svg +1 -0
  203. package/components/wework-chat-control/url/url-file.vue +37 -0
  204. package/components/wework-chat-control/url/url-link.vue +169 -0
  205. package/components/wework-chat-control/url/url-merge.vue +164 -0
  206. package/components/wework-chat-control/url/url-miniprogram.vue +248 -0
  207. package/components/wework-chat-control/url/url.vue +103 -0
  208. package/components/wework-chat-control/util.js +223 -0
  209. package/components/wework-chat-control/video/icons/video.svg +1 -0
  210. package/components/wework-chat-control/video/video.vue +304 -0
  211. package/components/wework-chat-control/voice/icons/voice.svg +1 -0
  212. package/components/wework-chat-control/voice/voice.vue +464 -0
  213. package/components/wework-chat-panel/chat-panel-controls/company-card/company-card.vue +35 -0
  214. package/components/wework-chat-panel/chat-panel-controls/expression/expression.vue +36 -0
  215. package/components/wework-chat-panel/chat-panel-controls/file-url/file-url.vue +35 -0
  216. package/components/wework-chat-panel/chat-panel-controls/image/image.vue +36 -0
  217. package/components/wework-chat-panel/chat-panel-controls/index.js +35 -0
  218. package/components/wework-chat-panel/chat-panel-controls/jx-sys-text/jx-sys-text.vue +28 -0
  219. package/components/wework-chat-panel/chat-panel-controls/link/link.vue +35 -0
  220. package/components/wework-chat-panel/chat-panel-controls/location/location.vue +35 -0
  221. package/components/wework-chat-panel/chat-panel-controls/text/text.vue +43 -0
  222. package/components/wework-chat-panel/chat-panel-controls/unkonw/unkonw.vue +39 -0
  223. package/components/wework-chat-panel/chat-panel-controls/video/video.vue +37 -0
  224. package/components/wework-chat-panel/chat-panel-controls/voice/voice.vue +35 -0
  225. package/components/wework-chat-panel/chat-panel-item.vue +650 -0
  226. package/components/wework-chat-panel/chat-panel.vue +163 -0
  227. package/components/wework-chat-panel/index.js +3 -0
  228. package/package.json +23 -0
  229. package/services/client-chat/client-chat-wechat/client-chat-account.js +426 -0
  230. package/services/client-chat/client-chat-wechat/client-chat-concats.js +1029 -0
  231. package/services/client-chat/client-chat-wechat/client-chat-draft.js +92 -0
  232. package/services/client-chat/client-chat-wechat/client-chat-message.js +588 -0
  233. package/services/client-chat/client-chat-wechat/client-chat-session-manage.js +67 -0
  234. package/services/client-chat/client-chat-wechat/client-chat-session.js +1048 -0
  235. package/services/client-chat/client-chat-wechat/client-chat-socket.js +215 -0
  236. package/services/client-chat/client-chat-wechat/client-chat.js +1065 -0
  237. package/services/client-chat/client-chat-wechat/index.js +3 -0
  238. package/services/client-chat/client-chat-wechat/utils.js +82 -0
  239. package/services/client-chat/client-chat-wework/client-chat-account.js +310 -0
  240. package/services/client-chat/client-chat-wework/client-chat-concats.js +772 -0
  241. package/services/client-chat/client-chat-wework/client-chat-message.js +278 -0
  242. package/services/client-chat/client-chat-wework/client-chat-session.js +929 -0
  243. package/services/client-chat/client-chat-wework/client-chat-socket.js +64 -0
  244. package/services/client-chat/client-chat-wework/client-chat.js +330 -0
  245. package/services/client-chat/client-chat-wework/index.js +3 -0
  246. package/services/client-chat/client-chat-wework/utils.js +82 -0
  247. package/services/index.js +10 -0
  248. package/services/socket/index.js +5 -0
  249. package/services/socket/socket.js +797 -0
  250. package/services/socket/utils.js +7 -0
  251. package/uni-common/account-portray/account-portray.vue +51 -0
  252. package/uni-common/account-select/account-select-item.vue +172 -0
  253. package/uni-common/account-select/account-select.vue +252 -0
  254. package/uni-common/all-friend-avatar/all-friend-avatar.vue +49 -0
  255. package/uni-common/friend-avatar/default.svg +1 -0
  256. package/uni-common/friend-avatar/friend-avatar.vue +27 -0
  257. package/uni-common/friend-avatar/index.js +3 -0
  258. package/uni-common/friend-loader/friend-loader.vue +53 -0
  259. package/uni-common/friend-portray/friend-portray.vue +56 -0
  260. package/uni-common/group-avatar/default.svg +1 -0
  261. package/uni-common/group-avatar/group-avatar.vue +18 -0
  262. package/uni-common/group-avatar/index.js +3 -0
  263. package/uni-common/room-avatar/default.svg +6 -0
  264. package/uni-common/room-avatar/index.js +3 -0
  265. package/uni-common/room-avatar/room-avatar.vue +27 -0
  266. package/uni-common/room-loader/room-loader.vue +53 -0
  267. package/uni-common/room-portray/room-portray.vue +56 -0
  268. package/uni-components/chat-control/calling/calling.vue +91 -0
  269. package/uni-components/chat-control/calling/phone-fill.svg +1 -0
  270. package/uni-components/chat-control/calling/vidicon-fill.svg +1 -0
  271. package/uni-components/chat-control/channel-video/channel-video.vue +89 -0
  272. package/uni-components/chat-control/channel-video-card/channel-video-card.vue +105 -0
  273. package/uni-components/chat-control/channel-video-live/channel-video-live.vue +92 -0
  274. package/uni-components/chat-control/chat-control-config-item/chat-control-config-item.vue +20 -0
  275. package/uni-components/chat-control/chat-control-config-item/index.js +3 -0
  276. package/uni-components/chat-control/chat-control-config-msg/chat-control-config-msg-app.vue +25 -0
  277. package/uni-components/chat-control/chat-control-config-msg/chat-control-config-msg-h5.vue +21 -0
  278. package/uni-components/chat-control/chat-control-config.vue +59 -0
  279. package/uni-components/chat-control/chat-control.vue +218 -0
  280. package/uni-components/chat-control/company-card/company-card.vue +123 -0
  281. package/uni-components/chat-control/const.js +28 -0
  282. package/uni-components/chat-control/expression/expression.vue +41 -0
  283. package/uni-components/chat-control/image/image.vue +68 -0
  284. package/uni-components/chat-control/index.js +89 -0
  285. package/uni-components/chat-control/location/location.vue +110 -0
  286. package/uni-components/chat-control/member-change/member-change.vue +32 -0
  287. package/uni-components/chat-control/quote-message/quote-message.vue +216 -0
  288. package/uni-components/chat-control/real-time-position/real-time-position.vue +62 -0
  289. package/uni-components/chat-control/redpacket/red-envelope.svg +1 -0
  290. package/uni-components/chat-control/redpacket/redpacket.vue +75 -0
  291. package/uni-components/chat-control/share-card/share-card.vue +101 -0
  292. package/uni-components/chat-control/system/system.vue +69 -0
  293. package/uni-components/chat-control/system-batch-message/system-batch-message.vue +30 -0
  294. package/uni-components/chat-control/system-text/system-text.vue +32 -0
  295. package/uni-components/chat-control/text/text.vue +67 -0
  296. package/uni-components/chat-control/text-with-at/text-with-at.vue +51 -0
  297. package/uni-components/chat-control/transfer/red-transfer.svg +1 -0
  298. package/uni-components/chat-control/transfer/transfer.vue +80 -0
  299. package/uni-components/chat-control/unkonw/unkonw.vue +37 -0
  300. package/uni-components/chat-control/url/icons/file-excel-line.svg +1 -0
  301. package/uni-components/chat-control/url/icons/file-info-line.svg +1 -0
  302. package/uni-components/chat-control/url/icons/file-music-line.svg +1 -0
  303. package/uni-components/chat-control/url/icons/file-pdf-line.svg +1 -0
  304. package/uni-components/chat-control/url/icons/file-ppt-line.svg +1 -0
  305. package/uni-components/chat-control/url/icons/file-settings-line.svg +1 -0
  306. package/uni-components/chat-control/url/icons/file-text-line.svg +1 -0
  307. package/uni-components/chat-control/url/icons/file-unknow-line.svg +1 -0
  308. package/uni-components/chat-control/url/icons/file-word-line.svg +1 -0
  309. package/uni-components/chat-control/url/icons/file-zip-line.svg +1 -0
  310. package/uni-components/chat-control/url/icons/index.js +24 -0
  311. package/uni-components/chat-control/url/miniprogram.svg +1 -0
  312. package/uni-components/chat-control/url/url-miniprogram.vue +116 -0
  313. package/uni-components/chat-control/url/url.vue +306 -0
  314. package/uni-components/chat-control/url-new/icons/file-excel-line.svg +1 -0
  315. package/uni-components/chat-control/url-new/icons/file-info-line.svg +1 -0
  316. package/uni-components/chat-control/url-new/icons/file-music-line.svg +1 -0
  317. package/uni-components/chat-control/url-new/icons/file-pdf-line.svg +1 -0
  318. package/uni-components/chat-control/url-new/icons/file-ppt-line.svg +1 -0
  319. package/uni-components/chat-control/url-new/icons/file-settings-line.svg +1 -0
  320. package/uni-components/chat-control/url-new/icons/file-text-line.svg +1 -0
  321. package/uni-components/chat-control/url-new/icons/file-unknow-line.svg +1 -0
  322. package/uni-components/chat-control/url-new/icons/file-word-line.svg +1 -0
  323. package/uni-components/chat-control/url-new/icons/file-zip-line.svg +1 -0
  324. package/uni-components/chat-control/url-new/icons/index.js +24 -0
  325. package/uni-components/chat-control/url-new/url-new.vue +110 -0
  326. package/uni-components/chat-control/utils.js +12 -0
  327. package/uni-components/chat-control/video/video.vue +156 -0
  328. package/uni-components/chat-control/voice/voice.vue +166 -0
  329. package/uni-components/chat-editor/chat-editor-chartlet/chat-editor-chartlet-collect.vue +84 -0
  330. package/uni-components/chat-editor/chat-editor-chartlet/chat-editor-chartlet-system.vue +28 -0
  331. package/uni-components/chat-editor/chat-editor-chartlet/chat-editor-chartlet.vue +85 -0
  332. package/uni-components/chat-editor/chat-editor-func/chat-editor-func.vue +157 -0
  333. package/uni-components/chat-editor/chat-editor-func-at/chat-editor-func-at-panel.vue +158 -0
  334. package/uni-components/chat-editor/chat-editor-func-at/chat-editor-func-at.vue +61 -0
  335. package/uni-components/chat-editor/chat-editor-func-button/chat-editor-func-button.vue +58 -0
  336. package/uni-components/chat-editor/chat-editor-func-file/chat-editor-func-file.vue +54 -0
  337. package/uni-components/chat-editor/chat-editor-func-image/chat-editor-func-image.vue +42 -0
  338. package/uni-components/chat-editor/chat-editor-func-video/chat-editor-func-video.vue +42 -0
  339. package/uni-components/chat-editor/chat-editor-func-voice/chat-editor-func-voice.vue +25 -0
  340. package/uni-components/chat-editor/chat-editor-message-send/chat-editor-message-send.vue +158 -0
  341. package/uni-components/chat-editor/chat-editor-quote/chat-editor-quote.vue +75 -0
  342. package/uni-components/chat-editor/chat-editor.vue +257 -0
  343. package/uni-components/chat-editor/index.js +10 -0
  344. package/uni-components/chat-editor/util.js +65 -0
  345. package/uni-components/chat-panel/chat-panel-chats-box.vue +238 -0
  346. package/uni-components/chat-panel/chat-panel-chats-forward/chat-panel-chats-forward.vue +273 -0
  347. package/uni-components/chat-panel/chat-panel-chats-item.vue +578 -0
  348. package/uni-components/chat-panel/chat-panel-chats-status/chat-panel-chats-status.vue +71 -0
  349. package/uni-components/chat-panel/chat-panel-chats.vue +368 -0
  350. package/uni-components/chat-panel/chat-panel.vue +227 -0
  351. package/uni-components/contacts-group-select/contacts-group-select-item.vue +85 -0
  352. package/uni-components/contacts-group-select/contacts-group-select-panel.vue +119 -0
  353. package/uni-components/contacts-group-select/contacts-group-select.vue +150 -0
  354. package/utils/color.js +178 -0
  355. package/utils/data.js +11 -0
  356. package/utils/date.js +107 -0
  357. package/utils/event.js +3 -0
  358. package/utils/file.js +26 -0
  359. package/utils/index.js +5 -0
  360. package/utils/json.js +40 -0
  361. package/utils/log.js +243 -0
  362. package/utils/queue.js +97 -0
  363. package/utils/regexp.js +9 -0
  364. package/utils/string.js +66 -0
  365. package/utils/url.js +48 -0
  366. package/utils/util.js +130 -0
@@ -0,0 +1,64 @@
1
+ export default class ClietChatSocket {
2
+ get connectStatus () {
3
+ return this.socket.connectStatus
4
+ }
5
+
6
+ get connectIpChange () {
7
+ return this.socket.connectIpChange
8
+ }
9
+
10
+ constructor (options) {
11
+ options = Object.assign({
12
+ socket: null,
13
+ // 执行回调事件前的方法
14
+ beforeFireCallback: null,
15
+ onCmdQwNewMessage: null,
16
+ onCmdSendMessageResult: null,
17
+ onCmdFriendInfoChanged: null,
18
+ onCmdDownloadVideoResult: null,
19
+ onCmdChatroomInfoChanged: null,
20
+ onCmdChatroomInfoChangedBatch: null,
21
+ onHeartbeatCheck: null
22
+ }, options)
23
+ if (!options.socket) {
24
+ throw new Error('socket实例不能为空')
25
+ }
26
+ this.socket = options.socket
27
+ this.socket.event.on('onCmdQwNewMessage', options.onCmdQwNewMessage)
28
+ this.socket.event.on('onHeartbeatCheck', ({ mergeParams }) => {
29
+ options.onHeartbeatCheck && options.onHeartbeatCheck({
30
+ mergeParams
31
+ })
32
+ })
33
+ // 执行消息前回调
34
+ this.beforeFireCallback = options.beforeFireCallback
35
+ }
36
+ /**
37
+ * 发送聊天消息
38
+ */
39
+ sendChatMessage (options) {
40
+ const message = Object.assign({
41
+ content: null,
42
+ msgType: null,
43
+ msgSubType: null,
44
+ qwAccountId: null
45
+ // contactId: null,
46
+ // roomId: null
47
+ }, options, {
48
+ cmdType: 'CmdQwSendMessage'
49
+ })
50
+ return this.socket.sendMessage(message)
51
+ }
52
+
53
+ connect () {
54
+ return this.socket.connect()
55
+ }
56
+
57
+ disconnect () {
58
+ this.socket.disconnect()
59
+ }
60
+
61
+ setUrl (url) {
62
+ this.socket.setUrl(url)
63
+ }
64
+ }
@@ -0,0 +1,330 @@
1
+ import Vue from 'vue'
2
+ import ClientChatSession from './client-chat-session.js'
3
+ import ClientChatMessage from './client-chat-message.js'
4
+ import ClientChatContacts from './client-chat-concats.js'
5
+ import ClientChatAccount from './client-chat-account.js'
6
+ import ClientChatSocket from './client-chat-socket.js'
7
+ import { createSessionId } from './utils.js'
8
+ import { createPollRequest } from '../../../utils/util.js'
9
+ import Event from '../../../utils/event.js'
10
+
11
+ const CONNECT_STATUS = {
12
+ Normal: 'normal',
13
+ Loading: 'loading',
14
+ Complete: 'complete'
15
+ }
16
+ class ClientChat {
17
+ data = Vue.observable({
18
+ connectStatus: CONNECT_STATUS.Normal
19
+ })
20
+
21
+ get connecting () {
22
+ return this.data.connectStatus === CONNECT_STATUS.Loading
23
+ }
24
+
25
+ _sessionPollRequestMap = {}
26
+
27
+ constructor (options) {
28
+ options = Object.assign({
29
+ client: null,
30
+ socket: null, // socket实例
31
+ getLoginUserIdMethod: null,
32
+ getLoginUserTokenMethod: null,
33
+ loadAccountDataMethod: null,
34
+ loadSessionDataMethod: null,
35
+ updateSessionReadMethod: null,
36
+ getSessionMethod: null,
37
+ deleteSessionMethod: null,
38
+ getAccountUnreadMessageNumMethod: null,
39
+ updateAccountMessageReadMethod: null,
40
+ deleteAccountSessionMethod: null,
41
+ loadContactsRoomGroupDataMethod: null,
42
+ loadContactsFriendGroupDataMethod: null,
43
+ loadContactsFriendDataMethod: null,
44
+ loadContactsRoomDataMethod: null,
45
+ loadContactsRoomMemberDataMethod: null,
46
+ getContactsFriendGroupCountMethod: null,
47
+ getContactsRoomGroupCountMethod: null,
48
+ getContactsFriendMethod: null,
49
+ getContactsRoomMethod: null,
50
+ loadFriendMessageDataMethod: null,
51
+ loadRoomMessageDataMethod: null,
52
+ onOverwriteFriendInfoChange: null // 为了兼容1.0拉取会话逻辑加的,1.0暂时不支持根据taskId拉取
53
+ }, options)
54
+ if (!options.loadFriendMessageDataMethod) {
55
+ throw new Error('loadFriendMessageDataMethod不能为空')
56
+ }
57
+ if (!options.loadRoomMessageDataMethod) {
58
+ throw new Error('loadRoomMessageDataMethod不能为空')
59
+ }
60
+ this.onOverwriteFriendInfoChange = options.onOverwriteFriendInfoChange
61
+ this.event = new Event({
62
+ checkOnMethod: (name) => {
63
+ if (name === 'ready') {
64
+ if (this.data.connectStatus === CONNECT_STATUS.Complete) {
65
+ this.event.emit('ready')
66
+ }
67
+ }
68
+ }
69
+ })
70
+ this.session = new ClientChatSession({
71
+ groupField: 'qwAccountId',
72
+ sortField: 'lastMsgTime',
73
+ updateSessionReadMethod: options.updateSessionReadMethod,
74
+ getSessionMethod: options.getSessionMethod,
75
+ loadSessionDataMethod: options.loadSessionDataMethod,
76
+ deleteSessionMethod: options.deleteSessionMethod,
77
+ onSessionReadChange: ({ session, oldUnreadMsgCount }) => {
78
+ this.account.updateAccountUnreadMessageNum(session.qwAccountId, ({ unreadMesasgeNum }) => {
79
+ return Math.max(0, unreadMesasgeNum - oldUnreadMsgCount)
80
+ })
81
+ }
82
+ })
83
+ this.friendMessage = new ClientChatMessage({
84
+ groupField: 'contactId',
85
+ sortField: 'sendTime',
86
+ clientChat: this,
87
+ onAddMessageSuccess: ({ data }) => {
88
+ let sessionId = createSessionId(data.corpId, data.qwAccountId, data.contactId)
89
+ // 更新会话
90
+ if (!sessionId) {
91
+ return
92
+ }
93
+ const localSession = this.session.getSessionByLocal(sessionId)
94
+ if (!localSession) {
95
+ if (this._sessionPollRequestMap[sessionId]) {
96
+ this._sessionPollRequestMap[sessionId].stop()
97
+ }
98
+ this._sessionPollRequestMap[sessionId] = createPollRequest(({ done, fail }) => {
99
+ return this.session.getSession(sessionId).then(done)
100
+ })
101
+ this._sessionPollRequestMap[sessionId].start().then((rs) => {
102
+ // 更新账号未读消息数量
103
+ this.account.updateAccountUnreadMessageNum(rs.data.qwAccountId, ({ unreadMesasgeNum }) => {
104
+ return unreadMesasgeNum += (rs.data.unreadMsgCount || 0)
105
+ })
106
+ }).finally(() => {
107
+ delete this._sessionPollRequestMap[sessionId]
108
+ })
109
+ } else {
110
+ this.session.updateSession(sessionId, ({ session }) => {
111
+ let unreadMsgCount = session.unreadMsgCount
112
+ if (!data.isSend) {
113
+ unreadMsgCount = unreadMsgCount + 1
114
+ }
115
+ // 如果是当前会话,那么未读消息需要设置为0
116
+ if (this.session.currentSession && this.session.currentSession.id === sessionId) {
117
+ unreadMsgCount = 0
118
+ // 标记已读,并且设置未读数量为0
119
+ this.session.setSessionRead(sessionId)
120
+ } else {
121
+ // 更新账号未读消息数量
122
+ this.account.updateAccountUnreadMessageNum(session.qwAccountId, ({ unreadMesasgeNum }) => {
123
+ return unreadMesasgeNum += 1
124
+ })
125
+ }
126
+ const nextSessin = {
127
+ lastMsgContent: data.content,
128
+ lastMsgType: data.msgType,
129
+ lastMsgTime: data.sendTime,
130
+ lastMsgId: data.id,
131
+ lastUpdateTime: data.updateDate,
132
+ unreadMsgCount
133
+ }
134
+ return nextSessin
135
+ })
136
+ }
137
+ },
138
+ queryMethod: (params) => {
139
+ return options.loadFriendMessageDataMethod(params)
140
+ }
141
+ })
142
+ this.friendMessageFilter = new ClientChatMessage({
143
+ groupField: 'contactId',
144
+ sortField: 'sendTime',
145
+ clientChat: this,
146
+ // checkMessageSendResultMethod: options.checkMessageSendResultMethod,
147
+ // loadLossMessageDataMethod: options.loadLossFriendMessageDataMethod,
148
+ queryMethod: (params) => {
149
+ return options.loadFriendMessageDataMethod(params)
150
+ }
151
+ })
152
+ this.roomMessage = new ClientChatMessage({
153
+ groupField: 'roomId',
154
+ sortField: 'sendTime',
155
+ clientChat: this,
156
+ onAddMessageSuccess: ({ data }) => {
157
+ let sessionId = createSessionId(data.corpId, data.qwAccountId, data.roomId)
158
+ // 更新会话
159
+ if (!sessionId) {
160
+ return
161
+ }
162
+ // 更新会话未读消息数量
163
+ const localSession = this.session.getSessionByLocal(sessionId)
164
+ if (!localSession) {
165
+ if (this._sessionPollRequestMap[sessionId]) {
166
+ this._sessionPollRequestMap[sessionId].stop()
167
+ }
168
+ this._sessionPollRequestMap[sessionId] = createPollRequest(({ done, fail }) => {
169
+ return this.session.getSession(sessionId).then(done)
170
+ })
171
+ this._sessionPollRequestMap[sessionId].start().then((rs) => {
172
+ // 更新账号未读消息数量
173
+ this.account.updateAccountUnreadMessageNum(rs.data.qwAccountId, ({ unreadMesasgeNum }) => {
174
+ return unreadMesasgeNum += (rs.data.unreadMsgCount || 0)
175
+ })
176
+ }).finally(() => {
177
+ delete this._sessionPollRequestMap[sessionId]
178
+ })
179
+ } else {
180
+ this.session.updateSession(sessionId, ({ session }) => {
181
+ let unreadMsgCount = session.unreadMsgCount
182
+ if (!data.isSend) {
183
+ unreadMsgCount = unreadMsgCount + 1
184
+ }
185
+ // 如果是当前会话,那么未读消息需要设置为0
186
+ if (this.session.currentSession && this.session.currentSession.id === sessionId) {
187
+ unreadMsgCount = 0
188
+ // 标记已读,并且设置未读数量为0
189
+ this.session.setSessionRead(sessionId)
190
+ } else {
191
+ // 更新账号未读消息数量
192
+ this.account.updateAccountUnreadMessageNum(session.qwAccountId, ({ unreadMesasgeNum }) => {
193
+ return unreadMesasgeNum += 1
194
+ })
195
+ }
196
+ const nextSessin = {
197
+ lastMsgContent: data.content,
198
+ lastMsgType: data.msgType,
199
+ lastMsgTime: data.sendTime,
200
+ lastMsgId: data.id,
201
+ lastUpdateTime: data.updateDate,
202
+ unreadMsgCount
203
+ }
204
+ return nextSessin
205
+ })
206
+ }
207
+ },
208
+ queryMethod: (params) => {
209
+ return options.loadRoomMessageDataMethod(params)
210
+ }
211
+ })
212
+ this.roomMessageFilter = new ClientChatMessage({
213
+ groupField: 'roomId',
214
+ sortField: 'sendTime',
215
+ clientChat: this,
216
+ // checkMessageSendResultMethod: options.checkMessageSendResultMethod,
217
+ // loadLossMessageDataMethod: options.loadLossRoomMessageDataMethod,
218
+ queryMethod: (params) => {
219
+ return options.loadRoomMessageDataMethod(params)
220
+ }
221
+ })
222
+ this.contacts = new ClientChatContacts({
223
+ loadContactsRoomGroupDataMethod: options.loadContactsRoomGroupDataMethod,
224
+ loadContactsFriendGroupDataMethod: options.loadContactsFriendGroupDataMethod,
225
+ loadContactsFriendDataMethod: options.loadContactsFriendDataMethod,
226
+ loadContactsRoomDataMethod: options.loadContactsRoomDataMethod,
227
+ loadContactsRoomMemberDataMethod: options.loadContactsRoomMemberDataMethod,
228
+ getContactsFriendMethod: options.getContactsFriendMethod,
229
+ getContactsRoomMethod: options.getContactsRoomMethod,
230
+ getContactsFriendGroupCountMethod: options.getContactsFriendGroupCountMethod,
231
+ getContactsRoomGroupCountMethod: options.getContactsRoomGroupCountMethod,
232
+ onRoomRemoved: ({ room }) => {
233
+ }
234
+ })
235
+ this.account = new ClientChatAccount({
236
+ loadAccountDataMethod: options.loadAccountDataMethod,
237
+ getAccountUnreadMessageNumMethod: options.getAccountUnreadMessageNumMethod,
238
+ updateAccountMessageReadMethod: options.updateAccountMessageReadMethod,
239
+ onAccountAdded: ({ account }) => {
240
+ return this.account.refreshAccountUnreadMessageNum({
241
+ qwAccountId: account.id,
242
+ corpId: account.corpId
243
+ })
244
+ },
245
+ onCurrentAccountChange: ({ currentAccount }) => {
246
+ this.contacts.refreshAllFriendGroupCount({
247
+ qwAccountId: currentAccount ? currentAccount.id : null
248
+ })
249
+ this.contacts.refreshAllRoomGroupCount({
250
+ qwAccountId: currentAccount ? currentAccount.id : null
251
+ })
252
+ },
253
+ onUnreadMessageNumChange: ({ accountId, unreadMessageNum }) => {
254
+ },
255
+ onDeleteAccountSession: ({ accountId }) => {
256
+ }
257
+ })
258
+ this.socket = new ClientChatSocket({
259
+ socket: options.socket,
260
+ // 接受新消息
261
+ onCmdQwNewMessage: ({ data }) => {
262
+ // 插入消息
263
+ if (data.contactMessage) {
264
+ this.friendMessage.addMessage(data.contactMessage)
265
+ } else if (data.roomMessage) {
266
+ this.roomMessage.addMessage(data.roomMessage)
267
+ }
268
+ },
269
+ // 会话失效
270
+ onCmdCmdKickOut: () => {
271
+ // 一般可能同一个账号在其他设备登录,这种情况需要重新登录
272
+ this.event.emit('kickout')
273
+ },
274
+ onHeartbeatCheck: ({ mergeParams }) => {
275
+ const ids = this.account.getAccountData().map(v => v.id)
276
+ mergeParams({
277
+ qwAccountIds: ids
278
+ })
279
+ },
280
+ onHeartbeatSuccess: ({ data }) => {
281
+ if (!data.wq) {
282
+ return
283
+ }
284
+ const onlineMap = data.wq || {}
285
+ Object.keys(onlineMap).forEach(k => {
286
+ this.account.updateAccount(k, {
287
+ alive: onlineMap[k]
288
+ })
289
+ })
290
+ }
291
+ })
292
+ }
293
+
294
+ connect () {
295
+ if (this.data.connectStatus === CONNECT_STATUS.Complete) {
296
+ return Promise.resolve()
297
+ }
298
+ if (this.data.connectStatus === CONNECT_STATUS.Loading) {
299
+ return this.connectPromise
300
+ }
301
+ this.data.connectStatus = CONNECT_STATUS.Loading
302
+ this.connectPromise = Promise.all([
303
+ this.socket.connect()
304
+ ]).then(() => {
305
+ this.data.connectStatus = CONNECT_STATUS.Complete
306
+ this.event.emit('ready')
307
+ })
308
+ return this.connectPromise
309
+ }
310
+
311
+ disconnect () {
312
+ this.data.connectStatus = CONNECT_STATUS.Normal
313
+ if (this._sessionPollRequestMap) {
314
+ Object.keys(this._sessionPollRequestMap).forEach(key => {
315
+ this._sessionPollRequestMap[key].stop()
316
+ })
317
+ this._sessionPollRequestMap = {}
318
+ }
319
+ this.contacts.reset()
320
+ this.account.reset()
321
+ this.friendMessage.reset()
322
+ this.friendMessageFilter.reset()
323
+ this.roomMessageFilter.reset()
324
+ this.roomMessage.reset()
325
+ this.socket.disconnect()
326
+ this.event.off('ready')
327
+ }
328
+ }
329
+
330
+ export default ClientChat
@@ -0,0 +1,3 @@
1
+ import ClientChat from './client-chat'
2
+
3
+ export default ClientChat
@@ -0,0 +1,82 @@
1
+ import shajs from 'sha.js'
2
+
3
+ export function isUni () {
4
+ try {
5
+ return !!uni
6
+ } catch (e) {
7
+ return false
8
+ }
9
+ }
10
+
11
+ /**
12
+ * 生成会话id
13
+ * @param accountId - 客服id
14
+ * @param targetId - wechatFriendId | wechatChatroomId
15
+ */
16
+ export function createSessionId (corpId, accountId, targetId) {
17
+ if (!corpId || !accountId || !targetId) {
18
+ return
19
+ }
20
+ return shajs('sha1').update(`${corpId}${accountId}${targetId}`).digest('hex')
21
+ }
22
+
23
+ /**
24
+ * 根据消息创建会话
25
+ * 有两种情况,一种是从客户发过来的消息,另一种是客服发送的消息
26
+ * 会话的数据结构
27
+ * {
28
+ * "conversationId": "3d5398c24f1ae633047202fe17276571ef5e537e",
29
+ * "lastMsgContent": "wxid_ofo60wv6hxeg22:\n群收款消息",
30
+ * "lastMsgId": "8a3bf26d3abc52976c099f67a6d509864c87f632",
31
+ * "lastMsgTime": 1723456430000,
32
+ * "lastMsgType": 1,
33
+ * "lastUpdateTime": 1723456614979,
34
+ * "mute": false, // 没用到
35
+ * "stickyOnTop": false, // 置顶
36
+ * "targetId": "659bb02ebe1ffca423f5dede29b61145b705fbad",
37
+ * "type": 1, // 没用到
38
+ * "unreadMsgCount": 3,
39
+ * "wechatAccountId": "2a39a725814acf07502299ab2285fff8d44377f5"
40
+ * }
41
+ * 消息的数据结构
42
+ * {
43
+ * "accountId": "1775049357349355520",
44
+ * "accountNickName": "杨雨",
45
+ * "accountRealName": "杨雨",
46
+ * "accountUserName": "18627032190",
47
+ * "content": "kkkk",
48
+ * "createTime": 1723710023517,
49
+ * "id": "6612b84538679a8c881e9f8482ccda9e9b35c00d",
50
+ * "isDeleted": false,
51
+ * "isSend": false,
52
+ * "msgId": "1245",
53
+ * "msgSubType": 0,
54
+ * "msgSvrId": "4319123759514541049",
55
+ * "msgType": 1,
56
+ * "origin": "0",
57
+ * "sendStatus": 0,
58
+ * "tenantId": "1761952223049924608",
59
+ * "wechatAccountId": "ad9d9ae2a8be4f27311312cdd4af3549dc8427ef",
60
+ * "wechatFriendId": "2089efcc7f8f40b00b7f05fa4c6dfd3bb642774d",
61
+ * "wechatChatroomId": "2089efcc7f8f40b00b7f05fa4c6dfd3bb642774d", //群的时候才有
62
+ * "wechatTime": 1723710022000
63
+ * }
64
+ */
65
+ export function createSessionData (message) {
66
+ if (!message || !message.id || !message.accountId || (!message.wechatFriendId && !message.wechatChatroomId)) {
67
+ return
68
+ }
69
+ const targetId = message.wechatFriendId || message.wechatChatroomId
70
+ const nextSession = {
71
+ conversationId: createSessionId(message.accountId, targetId),
72
+ lastMsgContent: message.content,
73
+ lastMsgId: message.id,
74
+ lastMsgTime: message.wechatTime,
75
+ lastMsgType: message.msgType,
76
+ lastUpdateTime: message.wechatTime,
77
+ targetId,
78
+ unreadMsgCount: 0,
79
+ wechatAccountId: message.wechatAccountId
80
+ }
81
+ return nextSession
82
+ }
@@ -0,0 +1,10 @@
1
+ import Socket from './socket'
2
+ import ClientChatWechat from './client-chat/client-chat-wechat'
3
+ import ClientChatWework from './client-chat/client-chat-wework'
4
+
5
+ export {
6
+ Socket,
7
+ ClientChatWechat,
8
+ ClientChatWework
9
+ }
10
+
@@ -0,0 +1,5 @@
1
+ import Socket, { CONNECT_STATUS } from './socket'
2
+
3
+ Socket.CONNECT_STATUS_ENUM = CONNECT_STATUS
4
+
5
+ export default Socket