|
@@ -1,11 +1,5 @@
|
|
|
<template>
|
|
|
- <ul
|
|
|
- class="TUI-conversation-list"
|
|
|
- :class="[isH5 ? 'list-h5' : '']"
|
|
|
- ref="list"
|
|
|
- @mousewheel="scrollChange"
|
|
|
- @scroll="scrollChange"
|
|
|
- >
|
|
|
+ <ul class="TUI-conversation-list" :class="[isH5 ? 'list-h5' : '']" ref="list" @mousewheel="scrollChange" @scroll="scrollChange">
|
|
|
<LiteItem
|
|
|
:isH5="isH5"
|
|
|
v-for="(item, index) in data.list"
|
|
@@ -19,7 +13,7 @@
|
|
|
showAt: data.handleShowAt,
|
|
|
showMessage: data.handleShowMessage,
|
|
|
time: data.handleItemTime,
|
|
|
- userID: data.handleItemUserID
|
|
|
+ userID: data.handleItemUserID,
|
|
|
}"
|
|
|
:displayOnlineStatus="displayOnlineStatus"
|
|
|
:userStatusList="userStatusList"
|
|
@@ -31,48 +25,41 @@
|
|
|
</ul>
|
|
|
</template>
|
|
|
<script lang="ts">
|
|
|
-import {
|
|
|
- defineComponent,
|
|
|
- reactive,
|
|
|
- ref,
|
|
|
- toRefs,
|
|
|
- watch,
|
|
|
- watchEffect
|
|
|
-} from 'vue';
|
|
|
-import LiteItem from '../list-item';
|
|
|
+import { defineComponent, reactive, ref, toRefs, watch, watchEffect } from "vue";
|
|
|
+import LiteItem from "../list-item";
|
|
|
const TUIConversationList: any = defineComponent({
|
|
|
props: {
|
|
|
data: {
|
|
|
type: Object,
|
|
|
- default: () => ({})
|
|
|
+ default: () => ({}),
|
|
|
},
|
|
|
currentID: {
|
|
|
type: String,
|
|
|
- default: () => ''
|
|
|
+ default: () => "",
|
|
|
},
|
|
|
isH5: {
|
|
|
type: Boolean,
|
|
|
- default: () => false
|
|
|
+ default: () => false,
|
|
|
},
|
|
|
displayOnlineStatus: {
|
|
|
type: Boolean,
|
|
|
- default: () => false
|
|
|
+ default: () => false,
|
|
|
},
|
|
|
userStatusList: {
|
|
|
type: Map,
|
|
|
- default: () => new Map()
|
|
|
- }
|
|
|
+ default: () => new Map(),
|
|
|
+ },
|
|
|
},
|
|
|
components: { LiteItem },
|
|
|
setup(props: any, ctx: any) {
|
|
|
const TUIServer: any = TUIConversationList?.TUIServer;
|
|
|
const obj = reactive({
|
|
|
data: {},
|
|
|
- currentID: '',
|
|
|
- toggleID: '',
|
|
|
+ currentID: "",
|
|
|
+ toggleID: "",
|
|
|
displayOnlineStatus: false,
|
|
|
userStatusList: new Map(),
|
|
|
- types: TUIServer.TUICore.TIM.TYPES
|
|
|
+ types: TUIServer.TUICore.TIM.TYPES,
|
|
|
});
|
|
|
const list: any = ref();
|
|
|
|
|
@@ -92,64 +79,62 @@ const TUIConversationList: any = defineComponent({
|
|
|
);
|
|
|
|
|
|
const handleListItem = (item: any) => {
|
|
|
- ctx.emit('handleItem', item);
|
|
|
+ ctx.emit("handleItem", item);
|
|
|
};
|
|
|
|
|
|
const handleItem = (params: any) => {
|
|
|
const { name, conversation } = params;
|
|
|
switch (name) {
|
|
|
- case 'delete':
|
|
|
+ case "delete":
|
|
|
handleDeleteConversation(conversation);
|
|
|
break;
|
|
|
- case 'ispinned':
|
|
|
+ case "ispinned":
|
|
|
handlePinConversation(name, conversation);
|
|
|
break;
|
|
|
- case 'dispinned':
|
|
|
+ case "dispinned":
|
|
|
handlePinConversation(name, conversation);
|
|
|
break;
|
|
|
- case 'mute':
|
|
|
+ case "mute":
|
|
|
handleMuteConversation(name, conversation);
|
|
|
break;
|
|
|
- case 'notMute':
|
|
|
+ case "notMute":
|
|
|
handleMuteConversation(name, conversation);
|
|
|
break;
|
|
|
}
|
|
|
};
|
|
|
|
|
|
const handleDeleteConversation = (conversation: any) => {
|
|
|
- TUIServer.deleteConversation(conversation.conversationID).then(
|
|
|
- (imResponse: any) => {
|
|
|
- const { conversationID } = imResponse.data;
|
|
|
- const { conversation } = TUIServer.TUICore.getStore().TUIChat;
|
|
|
- // 删除会话,判断当前删除的会话是否为打开的会话
|
|
|
- // 若为打开的会话,通知 TUIChat 关闭当前会话
|
|
|
- // Delete session: judge whether the currently deleted session is an open session
|
|
|
- // If it is an open session, notify tuichat to close the current session
|
|
|
- if (conversation.conversationID === conversationID) {
|
|
|
- TUIServer.TUICore.getStore().TUIChat.conversation = {
|
|
|
- conversationID: ''
|
|
|
- };
|
|
|
- }
|
|
|
+ TUIServer.deleteConversation(conversation.conversationID).then((imResponse: any) => {
|
|
|
+ const { conversationID } = imResponse.data;
|
|
|
+ const { conversation } = TUIServer.TUICore.getStore().TUIChat;
|
|
|
+ // 删除会话,判断当前删除的会话是否为打开的会话
|
|
|
+ // 若为打开的会话,通知 TUIChat 关闭当前会话
|
|
|
+ // Delete session: judge whether the currently deleted session is an open session
|
|
|
+ // If it is an open session, notify tuichat to close the current session
|
|
|
+ if (conversation.conversationID === conversationID) {
|
|
|
+ TUIServer.TUICore.getStore().TUIChat.conversation = {
|
|
|
+ conversationID: "",
|
|
|
+ };
|
|
|
}
|
|
|
- );
|
|
|
+ });
|
|
|
};
|
|
|
|
|
|
const handlePinConversation = (type: string, conversation: any) => {
|
|
|
const options: any = {
|
|
|
conversationID: conversation.conversationID,
|
|
|
- isPinned: true
|
|
|
+ isPinned: true,
|
|
|
};
|
|
|
|
|
|
- if (type === 'dispinned') {
|
|
|
+ if (type === "dispinned") {
|
|
|
options.isPinned = false;
|
|
|
}
|
|
|
- console.log('dispinned', options);
|
|
|
+ console.log("dispinned", options);
|
|
|
TUIServer.pinConversation(options);
|
|
|
};
|
|
|
|
|
|
const handleMuteConversation = (type: string, conversation: any) => {
|
|
|
const options: any = {
|
|
|
- messageRemindType: TUIServer.TUICore.TIM.TYPES.MSG_REMIND_ACPT_NOT_NOTE
|
|
|
+ messageRemindType: TUIServer.TUICore.TIM.TYPES.MSG_REMIND_ACPT_NOT_NOTE,
|
|
|
};
|
|
|
|
|
|
if (conversation.type === TUIServer.TUICore.TIM.TYPES.CONV_C2C) {
|
|
@@ -158,9 +143,8 @@ const TUIConversationList: any = defineComponent({
|
|
|
options.groupID = conversation.groupProfile.groupID;
|
|
|
}
|
|
|
|
|
|
- if (type === 'notMute') {
|
|
|
- options.messageRemindType =
|
|
|
- TUIServer.TUICore.TIM.TYPES.MSG_REMIND_ACPT_AND_NOTE;
|
|
|
+ if (type === "notMute") {
|
|
|
+ options.messageRemindType = TUIServer.TUICore.TIM.TYPES.MSG_REMIND_ACPT_AND_NOTE;
|
|
|
}
|
|
|
|
|
|
TUIServer.muteConversation(options);
|
|
@@ -171,7 +155,7 @@ const TUIConversationList: any = defineComponent({
|
|
|
};
|
|
|
|
|
|
const scrollChange = () => {
|
|
|
- obj.toggleID && (obj.toggleID = '');
|
|
|
+ obj.toggleID && (obj.toggleID = "");
|
|
|
};
|
|
|
|
|
|
return {
|
|
@@ -180,9 +164,9 @@ const TUIConversationList: any = defineComponent({
|
|
|
handleItem,
|
|
|
handleToggleListItem,
|
|
|
list,
|
|
|
- scrollChange
|
|
|
+ scrollChange,
|
|
|
};
|
|
|
- }
|
|
|
+ },
|
|
|
});
|
|
|
export default TUIConversationList;
|
|
|
</script>
|