@aochuang/client-sdk 1.0.370 → 1.0.372

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 (164) hide show
  1. package/common/.DS_Store +0 -0
  2. package/components/.DS_Store +0 -0
  3. package/components/index.js +6 -1
  4. package/components/session-select/session-select-item.vue +8 -9
  5. package/components/wechat-chat-control/.DS_Store +0 -0
  6. package/components/wechat-chat-control/transfer/.DS_Store +0 -0
  7. package/components/wechat-chat-control/url/.DS_Store +0 -0
  8. package/components/wechat-chat-control/voice/.DS_Store +0 -0
  9. package/components/wework-chat-control/channel-card/channel-card.vue +144 -0
  10. package/components/wework-chat-control/channel-live/channel-live.vue +7 -2
  11. package/components/wework-chat-control/company-card/company-card.vue +1 -1
  12. package/components/wework-chat-control/custom-expression/custom-expression.vue +2 -1
  13. package/components/wework-chat-control/file-url/file-url.vue +34 -16
  14. package/components/wework-chat-control/image/image.vue +137 -2
  15. package/components/wework-chat-control/index.js +15 -7
  16. package/components/wework-chat-control/link/.DS_Store +0 -0
  17. package/components/wework-chat-control/location/location.vue +3 -3
  18. package/components/wework-chat-control/merge-message/merge-message-panel.vue +63 -0
  19. package/components/wework-chat-control/merge-message/merge-message.vue +84 -0
  20. package/components/wework-chat-control/merge-message/util.js +59 -0
  21. package/components/wework-chat-control/metting/enterprise-wechat.png +0 -0
  22. package/components/wework-chat-control/metting/meeting-video.svg +4 -0
  23. package/components/wework-chat-control/metting/metting.vue +181 -0
  24. package/components/wework-chat-control/red-envelopes/red-envelopes.vue +3 -2
  25. package/components/wework-chat-control/text/text-default.vue +99 -0
  26. package/components/wework-chat-control/text/text-quote.vue +105 -0
  27. package/components/wework-chat-control/text/text.vue +24 -144
  28. package/components/wework-chat-control/url/url-channel-live.vue +53 -0
  29. package/components/wework-chat-control/url/url-miniprogram.vue +6 -7
  30. package/components/wework-chat-control/url/url.vue +26 -2
  31. package/components/wework-chat-control/util.js +26 -17
  32. package/components/wework-chat-control/video/.DS_Store +0 -0
  33. package/components/wework-chat-control/video/video.vue +10 -2
  34. package/components/wework-chat-control/voice/voice.vue +9 -2
  35. package/components/wework-chat-control/wework-chat-control-config-item.vue +24 -0
  36. package/components/wework-chat-control/wework-chat-control-config-msg.vue +25 -0
  37. package/{uni-components/chat-control/chat-control-config.vue → components/wework-chat-control/wework-chat-control-config.vue} +16 -13
  38. package/components/wework-chat-panel/chat-panel-chat-status/chat-panel-chat-status.vue +73 -0
  39. package/components/wework-chat-panel/chat-panel-item.vue +56 -25
  40. package/components/wework-chat-panel/chat-panel.vue +96 -13
  41. package/package.json +10 -3
  42. package/services/.DS_Store +0 -0
  43. package/services/client-chat/client-chat-wechat/client-chat.js +0 -6
  44. package/services/client-chat/client-chat-wework/client-chat-account.js +84 -1
  45. package/services/client-chat/client-chat-wework/client-chat-concats.js +81 -17
  46. package/services/client-chat/client-chat-wework/client-chat-message.js +45 -5
  47. package/services/client-chat/client-chat-wework/client-chat-session.js +59 -4
  48. package/services/client-chat/client-chat-wework/client-chat-socket.js +13 -1
  49. package/services/client-chat/client-chat-wework/client-chat.js +320 -11
  50. package/services/client-chat/client-chat-wework/utils.js +5 -5
  51. package/components/wework-chat-panel/chat-panel-controls/company-card/company-card.vue +0 -35
  52. package/components/wework-chat-panel/chat-panel-controls/expression/expression.vue +0 -36
  53. package/components/wework-chat-panel/chat-panel-controls/file-url/file-url.vue +0 -35
  54. package/components/wework-chat-panel/chat-panel-controls/image/image.vue +0 -36
  55. package/components/wework-chat-panel/chat-panel-controls/index.js +0 -35
  56. package/components/wework-chat-panel/chat-panel-controls/jx-sys-text/jx-sys-text.vue +0 -28
  57. package/components/wework-chat-panel/chat-panel-controls/link/link.vue +0 -35
  58. package/components/wework-chat-panel/chat-panel-controls/location/location.vue +0 -35
  59. package/components/wework-chat-panel/chat-panel-controls/text/text.vue +0 -43
  60. package/components/wework-chat-panel/chat-panel-controls/unkonw/unkonw.vue +0 -39
  61. package/components/wework-chat-panel/chat-panel-controls/video/video.vue +0 -37
  62. package/components/wework-chat-panel/chat-panel-controls/voice/voice.vue +0 -35
  63. package/uni-common/account-portray/account-portray.vue +0 -51
  64. package/uni-common/account-select/account-select-item.vue +0 -172
  65. package/uni-common/account-select/account-select.vue +0 -252
  66. package/uni-common/all-friend-avatar/all-friend-avatar.vue +0 -49
  67. package/uni-common/friend-avatar/default.svg +0 -1
  68. package/uni-common/friend-avatar/friend-avatar.vue +0 -27
  69. package/uni-common/friend-avatar/index.js +0 -3
  70. package/uni-common/friend-loader/friend-loader.vue +0 -53
  71. package/uni-common/friend-portray/friend-portray.vue +0 -56
  72. package/uni-common/group-avatar/default.svg +0 -1
  73. package/uni-common/group-avatar/group-avatar.vue +0 -18
  74. package/uni-common/group-avatar/index.js +0 -3
  75. package/uni-common/room-avatar/default.svg +0 -6
  76. package/uni-common/room-avatar/index.js +0 -3
  77. package/uni-common/room-avatar/room-avatar.vue +0 -27
  78. package/uni-common/room-loader/room-loader.vue +0 -53
  79. package/uni-common/room-portray/room-portray.vue +0 -56
  80. package/uni-components/chat-control/calling/calling.vue +0 -91
  81. package/uni-components/chat-control/calling/phone-fill.svg +0 -1
  82. package/uni-components/chat-control/calling/vidicon-fill.svg +0 -1
  83. package/uni-components/chat-control/channel-video/channel-video.vue +0 -89
  84. package/uni-components/chat-control/channel-video-card/channel-video-card.vue +0 -105
  85. package/uni-components/chat-control/channel-video-live/channel-video-live.vue +0 -92
  86. package/uni-components/chat-control/chat-control-config-item/chat-control-config-item.vue +0 -20
  87. package/uni-components/chat-control/chat-control-config-item/index.js +0 -3
  88. package/uni-components/chat-control/chat-control-config-msg/chat-control-config-msg-app.vue +0 -25
  89. package/uni-components/chat-control/chat-control-config-msg/chat-control-config-msg-h5.vue +0 -21
  90. package/uni-components/chat-control/chat-control.vue +0 -218
  91. package/uni-components/chat-control/company-card/company-card.vue +0 -123
  92. package/uni-components/chat-control/const.js +0 -28
  93. package/uni-components/chat-control/expression/expression.vue +0 -41
  94. package/uni-components/chat-control/image/image.vue +0 -68
  95. package/uni-components/chat-control/index.js +0 -89
  96. package/uni-components/chat-control/location/location.vue +0 -110
  97. package/uni-components/chat-control/member-change/member-change.vue +0 -32
  98. package/uni-components/chat-control/quote-message/quote-message.vue +0 -216
  99. package/uni-components/chat-control/real-time-position/real-time-position.vue +0 -62
  100. package/uni-components/chat-control/redpacket/red-envelope.svg +0 -1
  101. package/uni-components/chat-control/redpacket/redpacket.vue +0 -75
  102. package/uni-components/chat-control/share-card/share-card.vue +0 -101
  103. package/uni-components/chat-control/system/system.vue +0 -69
  104. package/uni-components/chat-control/system-batch-message/system-batch-message.vue +0 -30
  105. package/uni-components/chat-control/system-text/system-text.vue +0 -32
  106. package/uni-components/chat-control/text/text.vue +0 -67
  107. package/uni-components/chat-control/text-with-at/text-with-at.vue +0 -51
  108. package/uni-components/chat-control/transfer/red-transfer.svg +0 -1
  109. package/uni-components/chat-control/transfer/transfer.vue +0 -80
  110. package/uni-components/chat-control/unkonw/unkonw.vue +0 -37
  111. package/uni-components/chat-control/url/icons/file-excel-line.svg +0 -1
  112. package/uni-components/chat-control/url/icons/file-info-line.svg +0 -1
  113. package/uni-components/chat-control/url/icons/file-music-line.svg +0 -1
  114. package/uni-components/chat-control/url/icons/file-pdf-line.svg +0 -1
  115. package/uni-components/chat-control/url/icons/file-ppt-line.svg +0 -1
  116. package/uni-components/chat-control/url/icons/file-settings-line.svg +0 -1
  117. package/uni-components/chat-control/url/icons/file-text-line.svg +0 -1
  118. package/uni-components/chat-control/url/icons/file-unknow-line.svg +0 -1
  119. package/uni-components/chat-control/url/icons/file-word-line.svg +0 -1
  120. package/uni-components/chat-control/url/icons/file-zip-line.svg +0 -1
  121. package/uni-components/chat-control/url/icons/index.js +0 -24
  122. package/uni-components/chat-control/url/miniprogram.svg +0 -1
  123. package/uni-components/chat-control/url/url-miniprogram.vue +0 -116
  124. package/uni-components/chat-control/url/url.vue +0 -306
  125. package/uni-components/chat-control/url-new/icons/file-excel-line.svg +0 -1
  126. package/uni-components/chat-control/url-new/icons/file-info-line.svg +0 -1
  127. package/uni-components/chat-control/url-new/icons/file-music-line.svg +0 -1
  128. package/uni-components/chat-control/url-new/icons/file-pdf-line.svg +0 -1
  129. package/uni-components/chat-control/url-new/icons/file-ppt-line.svg +0 -1
  130. package/uni-components/chat-control/url-new/icons/file-settings-line.svg +0 -1
  131. package/uni-components/chat-control/url-new/icons/file-text-line.svg +0 -1
  132. package/uni-components/chat-control/url-new/icons/file-unknow-line.svg +0 -1
  133. package/uni-components/chat-control/url-new/icons/file-word-line.svg +0 -1
  134. package/uni-components/chat-control/url-new/icons/file-zip-line.svg +0 -1
  135. package/uni-components/chat-control/url-new/icons/index.js +0 -24
  136. package/uni-components/chat-control/url-new/url-new.vue +0 -110
  137. package/uni-components/chat-control/utils.js +0 -12
  138. package/uni-components/chat-control/video/video.vue +0 -156
  139. package/uni-components/chat-control/voice/voice.vue +0 -166
  140. package/uni-components/chat-editor/chat-editor-chartlet/chat-editor-chartlet-collect.vue +0 -84
  141. package/uni-components/chat-editor/chat-editor-chartlet/chat-editor-chartlet-system.vue +0 -28
  142. package/uni-components/chat-editor/chat-editor-chartlet/chat-editor-chartlet.vue +0 -85
  143. package/uni-components/chat-editor/chat-editor-func/chat-editor-func.vue +0 -157
  144. package/uni-components/chat-editor/chat-editor-func-at/chat-editor-func-at-panel.vue +0 -158
  145. package/uni-components/chat-editor/chat-editor-func-at/chat-editor-func-at.vue +0 -61
  146. package/uni-components/chat-editor/chat-editor-func-button/chat-editor-func-button.vue +0 -58
  147. package/uni-components/chat-editor/chat-editor-func-file/chat-editor-func-file.vue +0 -54
  148. package/uni-components/chat-editor/chat-editor-func-image/chat-editor-func-image.vue +0 -42
  149. package/uni-components/chat-editor/chat-editor-func-video/chat-editor-func-video.vue +0 -42
  150. package/uni-components/chat-editor/chat-editor-func-voice/chat-editor-func-voice.vue +0 -25
  151. package/uni-components/chat-editor/chat-editor-message-send/chat-editor-message-send.vue +0 -158
  152. package/uni-components/chat-editor/chat-editor-quote/chat-editor-quote.vue +0 -75
  153. package/uni-components/chat-editor/chat-editor.vue +0 -257
  154. package/uni-components/chat-editor/index.js +0 -10
  155. package/uni-components/chat-editor/util.js +0 -65
  156. package/uni-components/chat-panel/chat-panel-chats-box.vue +0 -238
  157. package/uni-components/chat-panel/chat-panel-chats-forward/chat-panel-chats-forward.vue +0 -273
  158. package/uni-components/chat-panel/chat-panel-chats-item.vue +0 -578
  159. package/uni-components/chat-panel/chat-panel-chats-status/chat-panel-chats-status.vue +0 -71
  160. package/uni-components/chat-panel/chat-panel-chats.vue +0 -368
  161. package/uni-components/chat-panel/chat-panel.vue +0 -227
  162. package/uni-components/contacts-group-select/contacts-group-select-item.vue +0 -85
  163. package/uni-components/contacts-group-select/contacts-group-select-panel.vue +0 -119
  164. package/uni-components/contacts-group-select/contacts-group-select.vue +0 -150
@@ -1,5 +1,5 @@
1
1
  <template>
2
- <wechat-chat-control-config-msg
2
+ <wework-chat-control-config-msg
3
3
  :msgData="item"
4
4
  >
5
5
  <template slot-scope="{ configData }">
@@ -7,7 +7,7 @@
7
7
  <template v-if="item.msgType !== '_EMPTY_'">
8
8
  <slot name="chat-prefix" :item="item"></slot>
9
9
  </template>
10
- <template v-if="[0, 1, 2].includes(item.msgType)">
10
+ <template v-if="item.msgType === MESSAGE_TYPE.TEXT || item.msgType === MESSAGE_TYPE.TEXT_W">
11
11
  <sdk-chat-panel-box
12
12
  :dir="dir"
13
13
  :data="item"
@@ -16,17 +16,20 @@
16
16
  @user-avatar-click="handleUserAvatarClick"
17
17
  @user-avatar-contextmenu="handleUserAvatarContextmenu"
18
18
  >
19
- <sdk-chat-control-text
20
- v-bind="configData"
21
- :id="item.id"
22
- :content="msgContent"
23
- ></sdk-chat-control-text>
19
+ <template slot-scope="{ setFootVnode }">
20
+ <sdk-chat-control-text
21
+ v-bind="configData"
22
+ :id="item.id"
23
+ :content="msgContent"
24
+ :set-chat-box-foot-vnode="setFootVnode"
25
+ ></sdk-chat-control-text>
26
+ </template>
24
27
  <template slot="append" slot-scope="{ updateProp }">
25
28
  <slot name="chat-append" :item="item" :update-chat-box-prop="updateProp"></slot>
26
29
  </template>
27
30
  </sdk-chat-panel-box>
28
31
  </template>
29
- <template v-else-if="[14, 101].includes(item.msgType)">
32
+ <template v-else-if="item.msgType === MESSAGE_TYPE.IMAGE">
30
33
  <sdk-chat-panel-box
31
34
  :dir="dir"
32
35
  :data="item"
@@ -45,7 +48,7 @@
45
48
  </template>
46
49
  </sdk-chat-panel-box>
47
50
  </template>
48
- <template v-else-if="[22, 23, 103].includes(item.msgType)">
51
+ <template v-else-if="item.msgType === MESSAGE_TYPE.VIDEO">
49
52
  <sdk-chat-panel-box
50
53
  :dir="dir"
51
54
  :data="item"
@@ -289,7 +292,7 @@
289
292
  </template>
290
293
  </sdk-chat-panel-box>
291
294
  </template>
292
- <template v-else-if="item.msgType == MESSAGE_TYPE.URL">
295
+ <template v-else-if="item.msgType == MESSAGE_TYPE.URLFile">
293
296
  <sdk-chat-panel-box
294
297
  :dir="dir"
295
298
  :data="item"
@@ -300,19 +303,19 @@
300
303
  @user-avatar-contextmenu="handleUserAvatarContextmenu"
301
304
  >
302
305
  <template slot-scope="{ updateProp }">
303
- <sdk-chat-control-url
306
+ <sdk-chat-control-file-url
304
307
  v-bind="configData"
305
308
  :id="item.id"
306
309
  :content="msgContent"
307
310
  :update-chat-box-prop="updateProp"
308
- ></sdk-chat-control-url>
311
+ ></sdk-chat-control-file-url>
309
312
  </template>
310
313
  <template slot="append" slot-scope="{ updateProp }">
311
314
  <slot name="chat-append" :item="item" :update-chat-box-prop="updateProp"></slot>
312
315
  </template>
313
316
  </sdk-chat-panel-box>
314
317
  </template>
315
- <template v-else-if="[13, 15, 20, 102].includes(item.msgType)">
318
+ <template v-else-if="item.msgType == MESSAGE_TYPE.URL || item.msgType == MESSAGE_TYPE.URLNew">
316
319
  <sdk-chat-panel-box
317
320
  :dir="dir"
318
321
  :data="item"
@@ -323,12 +326,12 @@
323
326
  @user-avatar-contextmenu="handleUserAvatarContextmenu"
324
327
  >
325
328
  <template slot-scope="{ updateProp }">
326
- <sdk-chat-control-file-url
329
+ <sdk-chat-control-url
327
330
  v-bind="configData"
328
331
  :id="item.id"
329
332
  :content="msgContent"
330
333
  :update-chat-box-prop="updateProp"
331
- ></sdk-chat-control-file-url>
334
+ ></sdk-chat-control-url>
332
335
  </template>
333
336
  <template slot="append" slot-scope="{ updateProp }">
334
337
  <slot name="chat-append" :item="item" :update-chat-box-prop="updateProp"></slot>
@@ -353,19 +356,43 @@
353
356
  </template>
354
357
  </sdk-chat-panel-box>
355
358
  </template>
356
- <template v-else-if="item.msgType == MESSAGE_TYPE.CUSTOM_EXPRESSION_W">
359
+ <template v-else-if="item.msgType === MESSAGE_TYPE.MEETING">
357
360
  <sdk-chat-panel-box
358
361
  :dir="dir"
359
362
  :data="item"
360
363
  :fetchUserMethod="fetchUserMethod"
364
+ :blank="true"
361
365
  @user-avatar-click="handleUserAvatarClick"
362
366
  @user-avatar-contextmenu="handleUserAvatarContextmenu"
363
367
  >
364
- <sdk-chat-control-custom-expression
368
+ <template slot-scope="{ updateProp }">
369
+ <sdk-chat-control-metting
370
+ v-bind="configData"
371
+ :id="item.id"
372
+ :content="msgContent"
373
+ :initiator="item.qwAccountName || item.contactName || item.ownerAccountUserName"
374
+ :update-chat-box-prop="updateProp"
375
+ ></sdk-chat-control-metting>
376
+ </template>
377
+ <template slot="append" slot-scope="{ updateProp }">
378
+ <slot name="chat-append" :item="item" :update-chat-box-prop="updateProp"></slot>
379
+ </template>
380
+ </sdk-chat-panel-box>
381
+ </template>
382
+ <template v-else-if="item.msgType === MESSAGE_TYPE.MERGE_MESSAGE">
383
+ <sdk-chat-panel-box
384
+ :dir="dir"
385
+ :data="item"
386
+ :fetchUserMethod="fetchUserMethod"
387
+ :blank="true"
388
+ @user-avatar-click="handleUserAvatarClick"
389
+ @user-avatar-contextmenu="handleUserAvatarContextmenu"
390
+ >
391
+ <sdk-chat-control-merge-message
365
392
  v-bind="configData"
366
393
  :id="item.id"
367
394
  :content="msgContent"
368
- ></sdk-chat-control-custom-expression>
395
+ ></sdk-chat-control-merge-message>
369
396
  <template slot="append" slot-scope="{ updateProp }">
370
397
  <slot name="chat-append" :item="item" :update-chat-box-prop="updateProp"></slot>
371
398
  </template>
@@ -510,7 +537,7 @@
510
537
  :content="msgContent"
511
538
  ></sdk-chat-control-empty>
512
539
  </template>
513
- <!-- <template v-else>
540
+ <template v-else>
514
541
  <sdk-chat-panel-box
515
542
  :dir="dir"
516
543
  :data="item"
@@ -523,10 +550,10 @@
523
550
  :content="msgContent"
524
551
  ></sdk-chat-control-unknow>
525
552
  </sdk-chat-panel-box>
526
- </template> -->
553
+ </template>
527
554
  </div>
528
555
  </template>
529
- </wechat-chat-control-config-msg>
556
+ </wework-chat-control-config-msg>
530
557
  </template>
531
558
  <script>
532
559
  import SdkChatPanelBox from '../chat-panel/chat-panel-box'
@@ -545,6 +572,8 @@ import {
545
572
  channelVideo as SdkChatControlChannelVideo,
546
573
  // channelVideoCard as SdkChatControlChannelVideoCard,
547
574
  channelLive as SdkChatControlChannelLive,
575
+ metting as SdkChatControlMetting,
576
+ mergeMessage as SdkChatControlMergeMessage,
548
577
  url as SdkChatControlUrl,
549
578
  fileUrl as SdkChatControlFileUrl,
550
579
  jxSysText as SdkChatControlJxSysText,
@@ -564,10 +593,10 @@ import {
564
593
  unknow as SdkChatControlUnknow
565
594
  } from '../wework-chat-control'
566
595
  import { MESSAGE_TYPE } from '../wework-chat-control/util'
567
- import WechatChatControlConfigMsg from '../wechat-chat-control/wechat-chat-control-config-msg.vue'
596
+ import WeworkChatControlConfigMsg from '../wework-chat-control/wework-chat-control-config-msg.vue'
568
597
 
569
598
  export default {
570
- name: 'SdkWechatPanelItem',
599
+ name: 'SdkWeworkPanelItem',
571
600
  components: {
572
601
  SdkChatPanelBox,
573
602
  SdkChatControlText,
@@ -583,6 +612,8 @@ export default {
583
612
  SdkChatControlChannelVideo,
584
613
  // SdkChatControlChannelVideoCard,
585
614
  SdkChatControlChannelLive,
615
+ SdkChatControlMetting,
616
+ SdkChatControlMergeMessage,
586
617
  SdkChatControlFileUrl,
587
618
  // SdkChatControlTextWithAt,
588
619
  SdkChatControlUrl,
@@ -601,7 +632,7 @@ export default {
601
632
  // SdkChatControlRevokeMeMessage,
602
633
  // SdkChatControlRevokeOtherMessage,
603
634
  // SdkChatControlRevokeYouMessage,
604
- WechatChatControlConfigMsg
635
+ WeworkChatControlConfigMsg
605
636
  },
606
637
  props: {
607
638
  dir: {
@@ -647,4 +678,4 @@ export default {
647
678
  }
648
679
  }
649
680
  }
650
- </script>
681
+ </script>
@@ -1,7 +1,7 @@
1
1
  <template>
2
2
  <sdk-chat-panel
3
3
  ref="panel"
4
- v-bind="$props"
4
+ v-bind="props"
5
5
  :is-sender-method="handleIsSenderMethod"
6
6
  @initloaded="handleChatsInitLoaded"
7
7
  @chat-contextmenu="handleChatContext"
@@ -17,12 +17,12 @@
17
17
  :fetch-user-method="fetchUserMethod"
18
18
  :config="config"
19
19
  >
20
- <!-- <template slot="chat-append" slot-scope="{ item, updateProp }">
20
+ <template slot="chat-append" slot-scope="{ item, updateProp }">
21
21
  <chat-panel-chat-status
22
22
  :data="item"
23
23
  :update-chat-box-prop="updateProp"
24
24
  ></chat-panel-chat-status>
25
- </template> -->
25
+ </template>
26
26
  <template slot="chat-prefix" slot-scope="{ item }">
27
27
  <template v-if="selectable && handleFilterSelectMessageMethod(item)">
28
28
  <div class="sdk-wechat-chat-panel__checkbox">
@@ -37,18 +37,23 @@
37
37
  </template>
38
38
  <template slot="main">
39
39
  <slot name="main"></slot>
40
+ <template v-if="selectable">
41
+ <slot name="selection" :total="checkTotal"></slot>
42
+ </template>
40
43
  </template>
41
44
  </sdk-chat-panel>
42
45
  </template>
43
46
  <script>
44
47
  import SdkChatPanel from '../chat-panel'
45
48
  import ChatPanelItem from './chat-panel-item.vue'
49
+ import ChatPanelChatStatus from './chat-panel-chat-status/chat-panel-chat-status.vue'
46
50
 
47
51
  export default {
48
52
  name: 'SdkWeworkChatPanel',
49
53
  components: {
50
54
  SdkChatPanel,
51
- ChatPanelItem
55
+ ChatPanelItem,
56
+ ChatPanelChatStatus
52
57
  },
53
58
  props: {
54
59
  mode: {
@@ -59,7 +64,8 @@ export default {
59
64
  }
60
65
  },
61
66
  keyField: {
62
- type: String
67
+ type: String,
68
+ default: 'id'
63
69
  },
64
70
  startDate: {
65
71
  type: Number
@@ -88,9 +94,6 @@ export default {
88
94
  type: Boolean,
89
95
  default: true
90
96
  },
91
- renderControl: {
92
- type: Function
93
- },
94
97
  fetchUserMethod: {
95
98
  type: Function
96
99
  },
@@ -126,14 +129,35 @@ export default {
126
129
  },
127
130
  contextChatId: {
128
131
  type: String
132
+ },
133
+ onBeforeSelectionChange: {
134
+ type: Function
129
135
  }
130
136
  },
131
- methods: {
132
- handleRenderControl ({ item }) {
133
- return ChatControls[item.msgType] || ChatControls.unkonw
137
+ data () {
138
+ return {
139
+ checkMsgMap: {}
140
+ }
141
+ },
142
+ computed: {
143
+ props () {
144
+ const { config, ...nextProps } = this.$props
145
+ return nextProps
134
146
  },
147
+ checkTotal () {
148
+ return Object.keys(this.checkMsgMap).length
149
+ }
150
+ },
151
+ watch: {
152
+ selectable () {
153
+ if (!this.selectable) {
154
+ this.checkMsgMap = {}
155
+ }
156
+ }
157
+ },
158
+ methods: {
135
159
  handleIsSenderMethod ({ item }) {
136
- return !!item.send
160
+ return !!item.isSend
137
161
  },
138
162
  handleChatsInitLoaded () {
139
163
  this.$emit('initloaded')
@@ -148,8 +172,67 @@ export default {
148
172
  this.currentContextChat = null
149
173
  return this.$refs.panel && this.$refs.panel.reload()
150
174
  },
175
+ handleFilterSelectMessageMethod (msg) {
176
+ if (!this.filterSelectMessageMethod) {
177
+ return true
178
+ }
179
+ return this.filterSelectMessageMethod({
180
+ item: msg
181
+ })
182
+ },
183
+ handleMsgCheckboxChange (msg, value) {
184
+ if (value) {
185
+ this.selectChat(msg)
186
+ } else {
187
+ this.unselectChat(msg)
188
+ }
189
+ },
190
+ selectChat (chat) {
191
+ if (!chat) {
192
+ return
193
+ }
194
+ if (!this.selectable) {
195
+ console.warn('未开启选择')
196
+ return
197
+ }
198
+ if (this.onBeforeSelectionChange && this.onBeforeSelectionChange({
199
+ chat,
200
+ value: true
201
+ }) === false) {
202
+ return
203
+ }
204
+ this.$set(this.checkMsgMap, chat[this.keyField], chat)
205
+ },
206
+ unselectChat (chat) {
207
+ if (!chat) {
208
+ return
209
+ }
210
+ if (!this.selectable) {
211
+ console.warn('未开启选择')
212
+ return
213
+ }
214
+ if (this.onBeforeSelectionChange && this.onBeforeSelectionChange({
215
+ chat,
216
+ value: false
217
+ }) === false) {
218
+ return
219
+ }
220
+ this.$delete(this.checkMsgMap, chat[this.keyField])
221
+ },
222
+ unselectAllChat () {
223
+ return Object.keys(this.checkMsgMap).map(key => {
224
+ return this.unselectChat(this.checkMsgMap[key])
225
+ })
226
+ },
227
+ getSelectChats () {
228
+ return Object.keys(this.checkMsgMap).map(key => {
229
+ return this.checkMsgMap[key]
230
+ })
231
+ },
151
232
  handleChatContext (item, evt) {
152
- this.$emit('chat-contextmenu', item, evt)
233
+ this.$emit('chat-contextmenu', {
234
+ item
235
+ }, evt)
153
236
  },
154
237
  handleChatViewContext ({ item }) {
155
238
  this.$emit('chat-view-context', {
package/package.json CHANGED
@@ -1,9 +1,16 @@
1
1
  {
2
2
  "name": "@aochuang/client-sdk",
3
- "version": "1.0.370",
3
+ "version": "1.0.372",
4
4
  "description": "",
5
- "scripts": {
6
- "test": "echo \"Error: no test specified\" && exit 1"
5
+ "files": [
6
+ "common",
7
+ "components",
8
+ "services",
9
+ "utils",
10
+ "dist"
11
+ ],
12
+ "exports": {
13
+ ".": "./components/index.js"
7
14
  },
8
15
  "repository": {
9
16
  "type": "git",
Binary file
@@ -1279,12 +1279,6 @@ class ClientChat {
1279
1279
  return readPromise.finally(() => {
1280
1280
  if (sessionInstances && sessionInstances.length) {
1281
1281
  sessionInstances[0].markSessionRead(sessionId)
1282
- sessionInstances.forEach(sessionInstance => {
1283
- sessionInstance.removeSession(sessionId)
1284
- })
1285
- }
1286
- if (this.sessionManage.currentSession && this.sessionManage.currentSession.conversationId === sessionId) {
1287
- this.sessionManage.setCurrentSession(null)
1288
1282
  }
1289
1283
  })
1290
1284
  }
@@ -5,14 +5,20 @@ export default class ClientChatAccount {
5
5
  data = Vue.observable({
6
6
  accountData: [],
7
7
  accountUnreadMessageNumData: [],
8
+ accountGreetingUnreadMsgCountData: {},
8
9
  currentAccount: null
9
10
  })
10
11
 
11
12
  loadAccountDataMethod = null
12
13
 
13
14
  getAccountUnreadMessageNumMethod = null
15
+
16
+ getAccountGreetingUnreadMsgCountMethod = null
14
17
 
15
18
  accountMap = {}
19
+
20
+ // 好友请求数量请求合并,key为账号id列表
21
+ greetingUnreadRequestMap = {}
16
22
 
17
23
  constructor (options) {
18
24
  options = Object.assign({
@@ -21,11 +27,13 @@ export default class ClientChatAccount {
21
27
  getAccountUnreadMessageNumMethod: null,
22
28
  updateAccountMessageReadMethod: null,
23
29
  deleteAccountSessionMethod: null,
30
+ getAccountGreetingUnreadMsgCountMethod: null,
24
31
  onCurrentAccountChange: null,
25
32
  onAccountAdded: null,
26
33
  onAccountRemoved: null,
27
34
  onUnreadMessageNumChange: null,
28
- onDeleteAccountSession: null
35
+ onDeleteAccountSession: null,
36
+ onAccountLoaded: null
29
37
  }, options)
30
38
  if (!options.loadAccountDataMethod) {
31
39
  throw new Error('缺少loadAccountDataMethod配置')
@@ -38,10 +46,12 @@ export default class ClientChatAccount {
38
46
  this.getAccountUnreadMessageNumMethod = options.getAccountUnreadMessageNumMethod
39
47
  this.updateAccountMessageReadMethod = options.updateAccountMessageReadMethod
40
48
  this.deleteAccountSessionMethod = options.deleteAccountSessionMethod
49
+ this.getAccountGreetingUnreadMsgCountMethod = options.getAccountGreetingUnreadMsgCountMethod
41
50
  this.onAccountAdded = options.onAccountAdded
42
51
  this.onAccountRemoved = options.onAccountRemoved,
43
52
  this.onUnreadMessageNumChange = options.onUnreadMessageNumChange
44
53
  this.onDeleteAccountSession = options.onDeleteAccountSession
54
+ this.onAccountLoaded = options.onAccountLoaded
45
55
  }
46
56
 
47
57
  get accountData () {
@@ -55,6 +65,10 @@ export default class ClientChatAccount {
55
65
  get currentAccount () {
56
66
  return this.data.currentAccount
57
67
  }
68
+
69
+ get accountGreetingUnreadMsgCountData () {
70
+ return this.data.accountGreetingUnreadMsgCountData
71
+ }
58
72
 
59
73
  setCurrentAccount (accountId) {
60
74
  let account = null
@@ -282,6 +296,9 @@ export default class ClientChatAccount {
282
296
  this._cacheLoadPromise = this.loadAccountDataMethod()
283
297
  this._cacheLoadPromise.then(rs => {
284
298
  this.setAccountData(rs.data)
299
+ this.onAccountLoaded && this.onAccountLoaded({
300
+ data: rs.data
301
+ })
285
302
  })
286
303
  this.cancelConnectRequest = () => {
287
304
  this._cacheLoadPromise.abort()
@@ -298,9 +315,75 @@ export default class ClientChatAccount {
298
315
  return this.loadData()
299
316
  }
300
317
 
318
+ /**
319
+ * 设置指定企微账号的待处理好友请求数量,并重算all
320
+ */
321
+ setAccountGreetingUnreadMsgCount (params) {
322
+ if (!params || !params.qwAccountId) {
323
+ throw new Error('缺少必须参数')
324
+ }
325
+ Vue.set(this.data.accountGreetingUnreadMsgCountData, params.qwAccountId, params.count || 0)
326
+ this.updateAllAccountGreetingUnreadMsgCount()
327
+ }
328
+
329
+ updateAllAccountGreetingUnreadMsgCount () {
330
+ const allCount = Object.keys(this.data.accountGreetingUnreadMsgCountData).reduce((rs, key) => {
331
+ return key === 'all' ? rs : rs + (this.data.accountGreetingUnreadMsgCountData[key] || 0)
332
+ }, 0)
333
+ Vue.set(this.data.accountGreetingUnreadMsgCountData, 'all', allCount)
334
+ }
335
+
336
+ /**
337
+ * 获取待处理好友请求数量
338
+ * qwAccountIds不传则刷新所有账号;后端数量为0的账号不返回,所以先置0再覆盖
339
+ */
340
+ getAccountGreetingUnreadMsgCount (params) {
341
+ if (!this.getAccountGreetingUnreadMsgCountMethod) {
342
+ return Promise.reject(new Error('getAccountGreetingUnreadMsgCountMethod未定义'))
343
+ }
344
+ let qwAccountIds = (params || {}).qwAccountIds
345
+ if (qwAccountIds && !Array.isArray(qwAccountIds)) {
346
+ qwAccountIds = [qwAccountIds]
347
+ }
348
+ qwAccountIds = (qwAccountIds || []).filter((id, index, data) => id && data.indexOf(id) === index).map(String)
349
+ const isAll = !qwAccountIds.length
350
+ const requestKey = isAll ? 'all' : qwAccountIds.slice().sort().join(',')
351
+ if (this.greetingUnreadRequestMap[requestKey]) {
352
+ return this.greetingUnreadRequestMap[requestKey]
353
+ }
354
+ const request = this.getAccountGreetingUnreadMsgCountMethod({
355
+ qwAccountIds: isAll ? undefined : qwAccountIds
356
+ }).then(rs => {
357
+ const targetIds = isAll ? Object.keys(this.accountMap) : qwAccountIds
358
+ targetIds.forEach(id => {
359
+ Vue.set(this.data.accountGreetingUnreadMsgCountData, id, 0)
360
+ })
361
+ ;((rs && rs.data) || []).forEach(item => {
362
+ if (item && item.qwAccountId) {
363
+ Vue.set(this.data.accountGreetingUnreadMsgCountData, String(item.qwAccountId), item.count || 0)
364
+ }
365
+ })
366
+ this.updateAllAccountGreetingUnreadMsgCount()
367
+ return this.data.accountGreetingUnreadMsgCountData
368
+ }).finally(() => {
369
+ delete this.greetingUnreadRequestMap[requestKey]
370
+ })
371
+ this.greetingUnreadRequestMap[requestKey] = request
372
+ return request
373
+ }
374
+
375
+ /**
376
+ * 刷新所有账号的待处理好友请求数量
377
+ */
378
+ refreshAllAccountGreetingUnreadMsgCount () {
379
+ return this.getAccountGreetingUnreadMsgCount()
380
+ }
381
+
301
382
  reset () {
302
383
  this.data.accountData = []
303
384
  this.data.accountUnreadMessageNumData = []
385
+ this.data.accountGreetingUnreadMsgCountData = {}
386
+ this.greetingUnreadRequestMap = {}
304
387
  if (this.cancelConnectRequest) {
305
388
  this.cancelConnectRequest()
306
389
  }