@aochuang/client-sdk 1.0.345 → 1.0.347
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/index.js +6 -1
- package/components/session-select/session-select-item.vue +8 -9
- package/components/wework-chat-control/company-card/company-card.vue +1 -1
- package/components/wework-chat-control/file-url/file-url.vue +2 -5
- package/components/wework-chat-control/image/image.vue +137 -2
- package/components/wework-chat-control/index.js +6 -6
- package/components/wework-chat-control/text/text.vue +22 -3
- package/components/wework-chat-control/util.js +12 -6
- package/components/wework-chat-control/video/video.vue +10 -2
- package/components/wework-chat-control/voice/voice.vue +1 -1
- package/components/wework-chat-control/wework-chat-control-config-item.vue +24 -0
- package/components/wework-chat-control/wework-chat-control-config-msg.vue +25 -0
- package/{uni-components/chat-control/chat-control-config.vue → components/wework-chat-control/wework-chat-control-config.vue} +16 -13
- package/components/wework-chat-panel/chat-panel-chat-status/chat-panel-chat-status.vue +73 -0
- package/components/wework-chat-panel/chat-panel-item.vue +12 -35
- package/components/wework-chat-panel/chat-panel.vue +95 -12
- package/package.json +10 -3
- package/services/client-chat/client-chat-wechat/client-chat-account.js +1 -1
- package/services/client-chat/client-chat-wechat/client-chat-session.js +26 -105
- package/services/client-chat/client-chat-wechat/client-chat.js +110 -224
- package/services/client-chat/client-chat-wework/client-chat-concats.js +81 -17
- package/services/client-chat/client-chat-wework/client-chat-message.js +46 -6
- package/services/client-chat/client-chat-wework/client-chat-session.js +50 -2
- package/services/client-chat/client-chat-wework/client-chat-socket.js +9 -1
- package/services/client-chat/client-chat-wework/client-chat.js +281 -11
- package/services/client-chat/client-chat-wework/utils.js +5 -5
- package/components/wework-chat-panel/chat-panel-controls/company-card/company-card.vue +0 -35
- package/components/wework-chat-panel/chat-panel-controls/expression/expression.vue +0 -36
- package/components/wework-chat-panel/chat-panel-controls/file-url/file-url.vue +0 -35
- package/components/wework-chat-panel/chat-panel-controls/image/image.vue +0 -36
- package/components/wework-chat-panel/chat-panel-controls/index.js +0 -35
- package/components/wework-chat-panel/chat-panel-controls/jx-sys-text/jx-sys-text.vue +0 -28
- package/components/wework-chat-panel/chat-panel-controls/link/link.vue +0 -35
- package/components/wework-chat-panel/chat-panel-controls/location/location.vue +0 -35
- package/components/wework-chat-panel/chat-panel-controls/text/text.vue +0 -43
- package/components/wework-chat-panel/chat-panel-controls/unkonw/unkonw.vue +0 -39
- package/components/wework-chat-panel/chat-panel-controls/video/video.vue +0 -37
- package/components/wework-chat-panel/chat-panel-controls/voice/voice.vue +0 -35
- package/uni-common/account-portray/account-portray.vue +0 -51
- package/uni-common/account-select/account-select-item.vue +0 -172
- package/uni-common/account-select/account-select.vue +0 -252
- package/uni-common/all-friend-avatar/all-friend-avatar.vue +0 -49
- package/uni-common/friend-avatar/default.svg +0 -1
- package/uni-common/friend-avatar/friend-avatar.vue +0 -27
- package/uni-common/friend-avatar/index.js +0 -3
- package/uni-common/friend-loader/friend-loader.vue +0 -53
- package/uni-common/friend-portray/friend-portray.vue +0 -56
- package/uni-common/group-avatar/default.svg +0 -1
- package/uni-common/group-avatar/group-avatar.vue +0 -18
- package/uni-common/group-avatar/index.js +0 -3
- package/uni-common/room-avatar/default.svg +0 -6
- package/uni-common/room-avatar/index.js +0 -3
- package/uni-common/room-avatar/room-avatar.vue +0 -27
- package/uni-common/room-loader/room-loader.vue +0 -53
- package/uni-common/room-portray/room-portray.vue +0 -56
- package/uni-components/chat-control/calling/calling.vue +0 -91
- package/uni-components/chat-control/calling/phone-fill.svg +0 -1
- package/uni-components/chat-control/calling/vidicon-fill.svg +0 -1
- package/uni-components/chat-control/channel-video/channel-video.vue +0 -89
- package/uni-components/chat-control/channel-video-card/channel-video-card.vue +0 -105
- package/uni-components/chat-control/channel-video-live/channel-video-live.vue +0 -92
- package/uni-components/chat-control/chat-control-config-item/chat-control-config-item.vue +0 -20
- package/uni-components/chat-control/chat-control-config-item/index.js +0 -3
- package/uni-components/chat-control/chat-control-config-msg/chat-control-config-msg-app.vue +0 -25
- package/uni-components/chat-control/chat-control-config-msg/chat-control-config-msg-h5.vue +0 -21
- package/uni-components/chat-control/chat-control.vue +0 -218
- package/uni-components/chat-control/company-card/company-card.vue +0 -123
- package/uni-components/chat-control/const.js +0 -28
- package/uni-components/chat-control/expression/expression.vue +0 -41
- package/uni-components/chat-control/image/image.vue +0 -68
- package/uni-components/chat-control/index.js +0 -89
- package/uni-components/chat-control/location/location.vue +0 -110
- package/uni-components/chat-control/member-change/member-change.vue +0 -32
- package/uni-components/chat-control/quote-message/quote-message.vue +0 -216
- package/uni-components/chat-control/real-time-position/real-time-position.vue +0 -62
- package/uni-components/chat-control/redpacket/red-envelope.svg +0 -1
- package/uni-components/chat-control/redpacket/redpacket.vue +0 -75
- package/uni-components/chat-control/share-card/share-card.vue +0 -101
- package/uni-components/chat-control/system/system.vue +0 -69
- package/uni-components/chat-control/system-batch-message/system-batch-message.vue +0 -30
- package/uni-components/chat-control/system-text/system-text.vue +0 -32
- package/uni-components/chat-control/text/text.vue +0 -67
- package/uni-components/chat-control/text-with-at/text-with-at.vue +0 -51
- package/uni-components/chat-control/transfer/red-transfer.svg +0 -1
- package/uni-components/chat-control/transfer/transfer.vue +0 -80
- package/uni-components/chat-control/unkonw/unkonw.vue +0 -37
- package/uni-components/chat-control/url/icons/file-excel-line.svg +0 -1
- package/uni-components/chat-control/url/icons/file-info-line.svg +0 -1
- package/uni-components/chat-control/url/icons/file-music-line.svg +0 -1
- package/uni-components/chat-control/url/icons/file-pdf-line.svg +0 -1
- package/uni-components/chat-control/url/icons/file-ppt-line.svg +0 -1
- package/uni-components/chat-control/url/icons/file-settings-line.svg +0 -1
- package/uni-components/chat-control/url/icons/file-text-line.svg +0 -1
- package/uni-components/chat-control/url/icons/file-unknow-line.svg +0 -1
- package/uni-components/chat-control/url/icons/file-word-line.svg +0 -1
- package/uni-components/chat-control/url/icons/file-zip-line.svg +0 -1
- package/uni-components/chat-control/url/icons/index.js +0 -24
- package/uni-components/chat-control/url/miniprogram.svg +0 -1
- package/uni-components/chat-control/url/url-miniprogram.vue +0 -116
- package/uni-components/chat-control/url/url.vue +0 -306
- package/uni-components/chat-control/url-new/icons/file-excel-line.svg +0 -1
- package/uni-components/chat-control/url-new/icons/file-info-line.svg +0 -1
- package/uni-components/chat-control/url-new/icons/file-music-line.svg +0 -1
- package/uni-components/chat-control/url-new/icons/file-pdf-line.svg +0 -1
- package/uni-components/chat-control/url-new/icons/file-ppt-line.svg +0 -1
- package/uni-components/chat-control/url-new/icons/file-settings-line.svg +0 -1
- package/uni-components/chat-control/url-new/icons/file-text-line.svg +0 -1
- package/uni-components/chat-control/url-new/icons/file-unknow-line.svg +0 -1
- package/uni-components/chat-control/url-new/icons/file-word-line.svg +0 -1
- package/uni-components/chat-control/url-new/icons/file-zip-line.svg +0 -1
- package/uni-components/chat-control/url-new/icons/index.js +0 -24
- package/uni-components/chat-control/url-new/url-new.vue +0 -110
- package/uni-components/chat-control/utils.js +0 -12
- package/uni-components/chat-control/video/video.vue +0 -156
- package/uni-components/chat-control/voice/voice.vue +0 -166
- package/uni-components/chat-editor/chat-editor-chartlet/chat-editor-chartlet-collect.vue +0 -84
- package/uni-components/chat-editor/chat-editor-chartlet/chat-editor-chartlet-system.vue +0 -28
- package/uni-components/chat-editor/chat-editor-chartlet/chat-editor-chartlet.vue +0 -85
- package/uni-components/chat-editor/chat-editor-func/chat-editor-func.vue +0 -157
- package/uni-components/chat-editor/chat-editor-func-at/chat-editor-func-at-panel.vue +0 -158
- package/uni-components/chat-editor/chat-editor-func-at/chat-editor-func-at.vue +0 -61
- package/uni-components/chat-editor/chat-editor-func-button/chat-editor-func-button.vue +0 -58
- package/uni-components/chat-editor/chat-editor-func-file/chat-editor-func-file.vue +0 -54
- package/uni-components/chat-editor/chat-editor-func-image/chat-editor-func-image.vue +0 -42
- package/uni-components/chat-editor/chat-editor-func-video/chat-editor-func-video.vue +0 -42
- package/uni-components/chat-editor/chat-editor-func-voice/chat-editor-func-voice.vue +0 -25
- package/uni-components/chat-editor/chat-editor-message-send/chat-editor-message-send.vue +0 -158
- package/uni-components/chat-editor/chat-editor-quote/chat-editor-quote.vue +0 -75
- package/uni-components/chat-editor/chat-editor.vue +0 -257
- package/uni-components/chat-editor/index.js +0 -10
- package/uni-components/chat-editor/util.js +0 -65
- package/uni-components/chat-panel/chat-panel-chats-box.vue +0 -238
- package/uni-components/chat-panel/chat-panel-chats-forward/chat-panel-chats-forward.vue +0 -273
- package/uni-components/chat-panel/chat-panel-chats-item.vue +0 -578
- package/uni-components/chat-panel/chat-panel-chats-status/chat-panel-chats-status.vue +0 -71
- package/uni-components/chat-panel/chat-panel-chats.vue +0 -368
- package/uni-components/chat-panel/chat-panel.vue +0 -227
- package/uni-components/contacts-group-select/contacts-group-select-item.vue +0 -85
- package/uni-components/contacts-group-select/contacts-group-select-panel.vue +0 -119
- package/uni-components/contacts-group-select/contacts-group-select.vue +0 -150
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<template>
|
|
2
|
-
<
|
|
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="
|
|
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"
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
</template>
|
|
27
27
|
</sdk-chat-panel-box>
|
|
28
28
|
</template>
|
|
29
|
-
<template v-else-if="
|
|
29
|
+
<template v-else-if="item.msgType === MESSAGE_TYPE.IMAGE">
|
|
30
30
|
<sdk-chat-panel-box
|
|
31
31
|
:dir="dir"
|
|
32
32
|
:data="item"
|
|
@@ -45,7 +45,7 @@
|
|
|
45
45
|
</template>
|
|
46
46
|
</sdk-chat-panel-box>
|
|
47
47
|
</template>
|
|
48
|
-
<template v-else-if="
|
|
48
|
+
<template v-else-if="item.msgType === MESSAGE_TYPE.VIDEO">
|
|
49
49
|
<sdk-chat-panel-box
|
|
50
50
|
:dir="dir"
|
|
51
51
|
:data="item"
|
|
@@ -289,7 +289,7 @@
|
|
|
289
289
|
</template>
|
|
290
290
|
</sdk-chat-panel-box>
|
|
291
291
|
</template>
|
|
292
|
-
<template v-else-if="item.msgType == MESSAGE_TYPE.URL">
|
|
292
|
+
<template v-else-if="item.msgType == MESSAGE_TYPE.URL || item.msgType == MESSAGE_TYPE.URLNew">
|
|
293
293
|
<sdk-chat-panel-box
|
|
294
294
|
:dir="dir"
|
|
295
295
|
:data="item"
|
|
@@ -312,29 +312,6 @@
|
|
|
312
312
|
</template>
|
|
313
313
|
</sdk-chat-panel-box>
|
|
314
314
|
</template>
|
|
315
|
-
<template v-else-if="[13, 15, 20, 102].includes(item.msgType)">
|
|
316
|
-
<sdk-chat-panel-box
|
|
317
|
-
:dir="dir"
|
|
318
|
-
:data="item"
|
|
319
|
-
:fetchUserMethod="fetchUserMethod"
|
|
320
|
-
bg-color="#fff"
|
|
321
|
-
br-color="#ddd"
|
|
322
|
-
@user-avatar-click="handleUserAvatarClick"
|
|
323
|
-
@user-avatar-contextmenu="handleUserAvatarContextmenu"
|
|
324
|
-
>
|
|
325
|
-
<template slot-scope="{ updateProp }">
|
|
326
|
-
<sdk-chat-control-file-url
|
|
327
|
-
v-bind="configData"
|
|
328
|
-
:id="item.id"
|
|
329
|
-
:content="msgContent"
|
|
330
|
-
:update-chat-box-prop="updateProp"
|
|
331
|
-
></sdk-chat-control-file-url>
|
|
332
|
-
</template>
|
|
333
|
-
<template slot="append" slot-scope="{ updateProp }">
|
|
334
|
-
<slot name="chat-append" :item="item" :update-chat-box-prop="updateProp"></slot>
|
|
335
|
-
</template>
|
|
336
|
-
</sdk-chat-panel-box>
|
|
337
|
-
</template>
|
|
338
315
|
<template v-else-if="item.msgType == MESSAGE_TYPE.CUSTOM_EXPRESSION">
|
|
339
316
|
<sdk-chat-panel-box
|
|
340
317
|
:dir="dir"
|
|
@@ -510,7 +487,7 @@
|
|
|
510
487
|
:content="msgContent"
|
|
511
488
|
></sdk-chat-control-empty>
|
|
512
489
|
</template>
|
|
513
|
-
|
|
490
|
+
<template v-else>
|
|
514
491
|
<sdk-chat-panel-box
|
|
515
492
|
:dir="dir"
|
|
516
493
|
:data="item"
|
|
@@ -523,10 +500,10 @@
|
|
|
523
500
|
:content="msgContent"
|
|
524
501
|
></sdk-chat-control-unknow>
|
|
525
502
|
</sdk-chat-panel-box>
|
|
526
|
-
</template>
|
|
503
|
+
</template>
|
|
527
504
|
</div>
|
|
528
505
|
</template>
|
|
529
|
-
</
|
|
506
|
+
</wework-chat-control-config-msg>
|
|
530
507
|
</template>
|
|
531
508
|
<script>
|
|
532
509
|
import SdkChatPanelBox from '../chat-panel/chat-panel-box'
|
|
@@ -564,10 +541,10 @@ import {
|
|
|
564
541
|
unknow as SdkChatControlUnknow
|
|
565
542
|
} from '../wework-chat-control'
|
|
566
543
|
import { MESSAGE_TYPE } from '../wework-chat-control/util'
|
|
567
|
-
import
|
|
544
|
+
import WeworkChatControlConfigMsg from '../wework-chat-control/wework-chat-control-config-msg.vue'
|
|
568
545
|
|
|
569
546
|
export default {
|
|
570
|
-
name: '
|
|
547
|
+
name: 'SdkWeworkPanelItem',
|
|
571
548
|
components: {
|
|
572
549
|
SdkChatPanelBox,
|
|
573
550
|
SdkChatControlText,
|
|
@@ -601,7 +578,7 @@ export default {
|
|
|
601
578
|
// SdkChatControlRevokeMeMessage,
|
|
602
579
|
// SdkChatControlRevokeOtherMessage,
|
|
603
580
|
// SdkChatControlRevokeYouMessage,
|
|
604
|
-
|
|
581
|
+
WeworkChatControlConfigMsg
|
|
605
582
|
},
|
|
606
583
|
props: {
|
|
607
584
|
dir: {
|
|
@@ -647,4 +624,4 @@ export default {
|
|
|
647
624
|
}
|
|
648
625
|
}
|
|
649
626
|
}
|
|
650
|
-
</script>
|
|
627
|
+
</script>
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
<template>
|
|
2
2
|
<sdk-chat-panel
|
|
3
3
|
ref="panel"
|
|
4
|
-
v-bind="
|
|
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
|
-
|
|
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,12 +129,33 @@ export default {
|
|
|
126
129
|
},
|
|
127
130
|
contextChatId: {
|
|
128
131
|
type: String
|
|
132
|
+
},
|
|
133
|
+
onBeforeSelectionChange: {
|
|
134
|
+
type: Function
|
|
129
135
|
}
|
|
130
136
|
},
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
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
160
|
return !!item.send
|
|
137
161
|
},
|
|
@@ -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',
|
|
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.
|
|
3
|
+
"version": "1.0.347",
|
|
4
4
|
"description": "",
|
|
5
|
-
"
|
|
6
|
-
"
|
|
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",
|
|
@@ -203,7 +203,7 @@ export default class ClientChatAccount {
|
|
|
203
203
|
|
|
204
204
|
refreshAccountUnreadMessageNum (params) {
|
|
205
205
|
const { wechatAccountId, ...nextParams } = params
|
|
206
|
-
|
|
206
|
+
this.getAccountUnreadMessageNumMethod(Object.assign({
|
|
207
207
|
wechatAccountIds: [wechatAccountId]
|
|
208
208
|
}, nextParams)).then(rs => {
|
|
209
209
|
if (!rs || !rs.data || !rs.data.length) {
|
|
@@ -5,39 +5,20 @@ import { createPollRequest } from '../../../utils/util.js'
|
|
|
5
5
|
|
|
6
6
|
const ALL_WECHAT_ACCOUNT_ID = 'all'
|
|
7
7
|
|
|
8
|
-
const
|
|
9
|
-
const ASSIGN_SESSION_MERGE_EXCLUDE_FIELDS = [
|
|
10
|
-
'conversationId',
|
|
11
|
-
'wechatAccountId',
|
|
12
|
-
'lastMsgTime',
|
|
13
|
-
'lastUpdateTime',
|
|
14
|
-
'stickyOnTop',
|
|
15
|
-
'mute',
|
|
16
|
-
'lastAtMsgContent'
|
|
17
|
-
]
|
|
18
|
-
|
|
19
|
-
const loopLoadAssignSessionData = (fetchFn, params, onPageLoaded) => {
|
|
8
|
+
const loopLoadAssignSessionData = (fetchFn, params) => {
|
|
20
9
|
let lastPs = null
|
|
21
10
|
let lastRs = null
|
|
22
11
|
let result = []
|
|
23
|
-
let page = 0
|
|
24
12
|
const loopFn = (params, total) => {
|
|
25
13
|
const { taskId, size, ...nextParams } = params
|
|
26
|
-
page += 1
|
|
27
14
|
lastPs = fetchFn(Object.assign({}, nextParams, {
|
|
28
15
|
size,
|
|
29
16
|
taskId,
|
|
30
17
|
total
|
|
31
18
|
}))
|
|
32
19
|
lastRs = lastPs.then(rs => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
onPageLoaded && onPageLoaded({
|
|
36
|
-
page,
|
|
37
|
-
pageSize: pageData.length,
|
|
38
|
-
total: result.length
|
|
39
|
-
})
|
|
40
|
-
if (pageData.length < size) {
|
|
20
|
+
result = result.concat(rs.data || [])
|
|
21
|
+
if (rs.data.length < size) {
|
|
41
22
|
return result
|
|
42
23
|
} else {
|
|
43
24
|
return loopFn(params, result.length)
|
|
@@ -207,7 +188,7 @@ export default class ClientChatSession {
|
|
|
207
188
|
* @params { Object } data - 会话数据集合
|
|
208
189
|
* @params { String } wechatAccountId - 如果传wechatAccountId那么后面addSession的时候如果传wechatAccountId那么才会更新lastUpdateTime或者lastMsgTime,本质的意思是只有通过reload和loadData才刷新lastUpdateTime或者lastMsgTime,避免这个时间乱套了
|
|
209
190
|
*/
|
|
210
|
-
setSessionData (data, wechatAccountId, reset = true
|
|
191
|
+
setSessionData (data, wechatAccountId, reset = true) {
|
|
211
192
|
if (reset) {
|
|
212
193
|
this.sessionMap = {}
|
|
213
194
|
this.data.sessionGroupData = {}
|
|
@@ -219,7 +200,7 @@ export default class ClientChatSession {
|
|
|
219
200
|
if (item.isDeleted) {
|
|
220
201
|
this.removeSession(item.conversationId)
|
|
221
202
|
} else {
|
|
222
|
-
this.addSession(item, wechatAccountId
|
|
203
|
+
this.addSession(item, wechatAccountId)
|
|
223
204
|
}
|
|
224
205
|
})
|
|
225
206
|
}
|
|
@@ -247,7 +228,11 @@ export default class ClientChatSession {
|
|
|
247
228
|
})
|
|
248
229
|
}
|
|
249
230
|
|
|
250
|
-
getSession (sessionId, serializeMethod) {
|
|
231
|
+
getSession (sessionId, serializeMethod, callback = null, isCache = true) {
|
|
232
|
+
if (typeof callback === 'boolean') {
|
|
233
|
+
isCache = callback
|
|
234
|
+
callback = null
|
|
235
|
+
}
|
|
251
236
|
if (this.sessionMap[sessionId]) {
|
|
252
237
|
return Promise.resolve({
|
|
253
238
|
data: this.sessionMap[sessionId]
|
|
@@ -255,7 +240,12 @@ export default class ClientChatSession {
|
|
|
255
240
|
}
|
|
256
241
|
// 这里需要轮询从后端获取会话,后端会话更新和创建是异步的,所以要多轮训请求几次
|
|
257
242
|
if (this.pollRequestMap[sessionId]) {
|
|
258
|
-
|
|
243
|
+
// 因为有的地方要复用缓存,有的地方不能缓存,比如onAddMessagSuccess的时候不能缓存
|
|
244
|
+
if (isCache) {
|
|
245
|
+
return this.pollRequestMap[sessionId].ps
|
|
246
|
+
} else {
|
|
247
|
+
this.pollRequestMap[sessionId].stop()
|
|
248
|
+
}
|
|
259
249
|
}
|
|
260
250
|
const pollRequest = createPollRequest(({ done, fail }) => {
|
|
261
251
|
return this.getSessionMethod({
|
|
@@ -272,7 +262,7 @@ export default class ClientChatSession {
|
|
|
272
262
|
rs = serializeMethod(rs)
|
|
273
263
|
}
|
|
274
264
|
if (rs.data) {
|
|
275
|
-
this.addSession(rs.data)
|
|
265
|
+
this.addSession(rs.data, null, callback)
|
|
276
266
|
return rs
|
|
277
267
|
} else {
|
|
278
268
|
return Promise.reject('未找到会话' + sessionId)
|
|
@@ -407,7 +397,7 @@ export default class ClientChatSession {
|
|
|
407
397
|
* "wechatAccountId": "2a39a725814acf07502299ab2285fff8d44377f5"
|
|
408
398
|
* }
|
|
409
399
|
*/
|
|
410
|
-
addSession (data, wechatAccountId,
|
|
400
|
+
addSession (data, wechatAccountId, callback) {
|
|
411
401
|
if (!data || !data.conversationId) {
|
|
412
402
|
throw new Error('缺少必须参数conversationId')
|
|
413
403
|
}
|
|
@@ -423,54 +413,11 @@ export default class ClientChatSession {
|
|
|
423
413
|
return
|
|
424
414
|
}
|
|
425
415
|
let nextData = data
|
|
426
|
-
let assignMergeLog = null
|
|
427
416
|
// 如果会话已经存在,那么取已经存在的,以后有需要可以用data更新已经存在的会话,保持引用关系
|
|
428
417
|
if (this.sessionMap[data.conversationId]) {
|
|
429
418
|
nextData = this.sessionMap[data.conversationId]
|
|
430
|
-
const unreadBefore = nextData.unreadMsgCount || 0
|
|
431
|
-
const muteBefore = !!nextData.mute
|
|
432
|
-
const changedFields = []
|
|
433
|
-
Object.keys(data).forEach(key => {
|
|
434
|
-
if (ASSIGN_SESSION_MERGE_EXCLUDE_FIELDS.indexOf(key) >= 0 || nextData[key] === data[key]) {
|
|
435
|
-
return
|
|
436
|
-
}
|
|
437
|
-
changedFields.push(key)
|
|
438
|
-
Vue.set(nextData, key, data[key])
|
|
439
|
-
})
|
|
440
|
-
if (context && context.source === 'assign-task') {
|
|
441
|
-
assignMergeLog = {
|
|
442
|
-
taskId: context.taskId,
|
|
443
|
-
conversationId: data.conversationId,
|
|
444
|
-
wechatAccountId: data.wechatAccountId,
|
|
445
|
-
existed: true,
|
|
446
|
-
changedFields,
|
|
447
|
-
unreadBefore,
|
|
448
|
-
unreadFromServer: data.unreadMsgCount || 0,
|
|
449
|
-
unreadAfter: nextData.unreadMsgCount || 0,
|
|
450
|
-
muteBefore,
|
|
451
|
-
muteFromServer: !!data.mute,
|
|
452
|
-
muteAfter: !!nextData.mute,
|
|
453
|
-
preservedFields: ASSIGN_SESSION_MERGE_EXCLUDE_FIELDS.slice()
|
|
454
|
-
}
|
|
455
|
-
}
|
|
456
419
|
} else {
|
|
457
420
|
this.sessionMap[data.conversationId] = nextData
|
|
458
|
-
if (context && context.source === 'assign-task') {
|
|
459
|
-
assignMergeLog = {
|
|
460
|
-
taskId: context.taskId,
|
|
461
|
-
conversationId: data.conversationId,
|
|
462
|
-
wechatAccountId: data.wechatAccountId,
|
|
463
|
-
existed: false,
|
|
464
|
-
changedFields: [],
|
|
465
|
-
unreadBefore: null,
|
|
466
|
-
unreadFromServer: data.unreadMsgCount || 0,
|
|
467
|
-
unreadAfter: data.unreadMsgCount || 0,
|
|
468
|
-
muteBefore: null,
|
|
469
|
-
muteFromServer: !!data.mute,
|
|
470
|
-
muteAfter: !!data.mute,
|
|
471
|
-
preservedFields: []
|
|
472
|
-
}
|
|
473
|
-
}
|
|
474
421
|
}
|
|
475
422
|
const topField = nextData.stickyOnTop ? 0 : 1 // 置顶
|
|
476
423
|
if (wechatAccountId && wechatAccountId !== ALL_WECHAT_ACCOUNT_ID && nextData.wechatAccountId !== wechatAccountId) {
|
|
@@ -551,12 +498,12 @@ export default class ClientChatSession {
|
|
|
551
498
|
if (virtualSessionIndex > -1) {
|
|
552
499
|
this.data.virtualSessionData.splice(virtualSessionIndex, 1)
|
|
553
500
|
}
|
|
501
|
+
callback && callback({
|
|
502
|
+
session: data
|
|
503
|
+
})
|
|
554
504
|
this.onAddSession && this.onAddSession({
|
|
555
|
-
session:
|
|
505
|
+
session: data
|
|
556
506
|
})
|
|
557
|
-
if (assignMergeLog) {
|
|
558
|
-
console.info(ASSIGN_SESSION_LOG_PREFIX, 'merge', assignMergeLog)
|
|
559
|
-
}
|
|
560
507
|
}
|
|
561
508
|
|
|
562
509
|
removeSession (conversationId) {
|
|
@@ -690,9 +637,7 @@ export default class ClientChatSession {
|
|
|
690
637
|
return true
|
|
691
638
|
}
|
|
692
639
|
})
|
|
693
|
-
|
|
694
|
-
this.data.sessionGroupData[groupId][topField][oldSortFields.day][oldSortFields.milliseconds].splice(index, 1)
|
|
695
|
-
}
|
|
640
|
+
this.data.sessionGroupData[groupId][topField][oldSortFields.day][oldSortFields.milliseconds].splice(index, 1)
|
|
696
641
|
}
|
|
697
642
|
})
|
|
698
643
|
})
|
|
@@ -752,9 +697,7 @@ export default class ClientChatSession {
|
|
|
752
697
|
return true
|
|
753
698
|
}
|
|
754
699
|
})
|
|
755
|
-
|
|
756
|
-
this.data.sessionGroupData[groupId][topField][sortFields.day][sortFields.milliseconds].splice(index, 1)
|
|
757
|
-
}
|
|
700
|
+
this.data.sessionGroupData[groupId][topField][sortFields.day][sortFields.milliseconds].splice(index, 1)
|
|
758
701
|
}
|
|
759
702
|
})
|
|
760
703
|
})
|
|
@@ -899,36 +842,14 @@ export default class ClientChatSession {
|
|
|
899
842
|
total: 0 , // 已获取总数
|
|
900
843
|
size: 50 // 每次获取数量
|
|
901
844
|
}, params)
|
|
902
|
-
const taskId = params.taskId
|
|
903
|
-
console.info(ASSIGN_SESSION_LOG_PREFIX, 'load-start', {
|
|
904
|
-
taskId,
|
|
905
|
-
total: params.total,
|
|
906
|
-
size: params.size
|
|
907
|
-
})
|
|
908
845
|
this.data.loadAssignTaskSessioning = true
|
|
909
846
|
return loopLoadAssignSessionData((nextParams) => {
|
|
910
847
|
return this.loadAssignTaskSessionDataMethod(nextParams)
|
|
911
|
-
}, params
|
|
912
|
-
console.info(ASSIGN_SESSION_LOG_PREFIX, 'page-loaded', Object.assign({ taskId }, pageInfo))
|
|
913
|
-
}).then(rs => {
|
|
848
|
+
}, params).then(rs => {
|
|
914
849
|
if (rs && rs.length) {
|
|
915
|
-
this.setSessionData(rs, null, false
|
|
916
|
-
source: 'assign-task',
|
|
917
|
-
taskId
|
|
918
|
-
})
|
|
850
|
+
this.setSessionData(rs, null, false)
|
|
919
851
|
}
|
|
920
|
-
console.info(ASSIGN_SESSION_LOG_PREFIX, 'load-complete', {
|
|
921
|
-
taskId,
|
|
922
|
-
sessionCount: rs ? rs.length : 0,
|
|
923
|
-
wechatAccountIds: Array.from(new Set((rs || []).map(session => session.wechatAccountId)))
|
|
924
|
-
})
|
|
925
852
|
return rs
|
|
926
|
-
}).catch(error => {
|
|
927
|
-
console.error(ASSIGN_SESSION_LOG_PREFIX, 'load-error', {
|
|
928
|
-
taskId,
|
|
929
|
-
message: error && error.message ? error.message : String(error)
|
|
930
|
-
})
|
|
931
|
-
throw error
|
|
932
853
|
}).finally(() => {
|
|
933
854
|
this.data.loadAssignTaskSessioning = false
|
|
934
855
|
})
|