From 947ea2c1305ad7e7aba1c466f1a15648ca091d1c Mon Sep 17 00:00:00 2001 From: tangtaoit Date: Sat, 22 Jul 2023 22:50:07 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=B6=88=E6=81=AF=E6=8B=89?= =?UTF-8?q?=E5=8F=96=E7=9A=84BUG?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web/src/index.tsx | 4 +- .../src/Components/Conversation/vm.ts | 53 +++++++++++++++---- .../tsdaodaodatasource/src/conversation.ts | 6 +-- 3 files changed, 46 insertions(+), 17 deletions(-) diff --git a/apps/web/src/index.tsx b/apps/web/src/index.tsx index a3c0a47..0fa403c 100644 --- a/apps/web/src/index.tsx +++ b/apps/web/src/index.tsx @@ -9,8 +9,8 @@ import { DataSourceModule } from '@tsdaodao/datasource'; import {ContactsModule} from '@tsdaodao/contacts'; -WKApp.apiClient.config.apiURL = "https://api.botgate.cn/v1/" -// WKApp.apiClient.config.apiURL = "/api/v1/" // 正式环境地址 (通用打包镜像,用此相对地址) +// WKApp.apiClient.config.apiURL = "https://api.botgate.cn/v1/" +WKApp.apiClient.config.apiURL = "/api/v1/" // 正式环境地址 (通用打包镜像,用此相对地址) WKApp.apiClient.config.tokenCallback = ()=> { return WKApp.loginInfo.token } diff --git a/packages/tsdaodaobase/src/Components/Conversation/vm.ts b/packages/tsdaodaobase/src/Components/Conversation/vm.ts index 052c342..bac978a 100644 --- a/packages/tsdaodaobase/src/Components/Conversation/vm.ts +++ b/packages/tsdaodaobase/src/Components/Conversation/vm.ts @@ -746,17 +746,30 @@ export default class ConversationVM extends ProviderListener { opts.pullMode = PullMode.Up } } - const newMessages = await WKApp.conversationProvider.syncMessages(this.channel, opts) + const remoteMessages = await WKApp.conversationProvider.syncMessages(this.channel, opts) + + const newMessages = new Array() + if(remoteMessages && remoteMessages.length>0) { + remoteMessages.forEach(msg => { + if (!msg.isDeleted) { + newMessages.push(msg) + } + }); + } const sendingMessages = this.getSendingMessages(this.channel) let allMessages = [...this.toMessageWraps(newMessages), ...sendingMessages] allMessages = this.sortMessages(allMessages) - if (newMessages && newMessages.length > 0) { - if (lastRemoteMessageSeq > newMessages[newMessages.length - 1].messageSeq) { + if (remoteMessages && remoteMessages.length > 0) { + if(lastRemoteMessageSeq <= 0 && remoteMessages.length >= opts.limit) { + this.pullupHasMore = true + }else if (lastRemoteMessageSeq > remoteMessages[remoteMessages.length - 1].messageSeq) { this.pullupHasMore = true } else { this.pullupHasMore = false } + }else { + this.pullupHasMore = false; } let initMessage: MessageWrap | undefined if (initMessageSeq && initMessageSeq > 0) { @@ -819,6 +832,7 @@ export default class ConversationVM extends ProviderListener { if (minMessage == null || minMessage.messageSeq <= 0 ) { // 没有消息直接return return } + console.log("pulldownMessages--->") this.loading = true const opts = new SyncMessageOptions() @@ -826,11 +840,16 @@ export default class ConversationVM extends ProviderListener { opts.pullMode = PullMode.Down opts.startMessageSeq = minMessage.messageSeq - 1 - let newMessages = await WKApp.conversationProvider.syncMessages(this.channel, opts) - if (!newMessages) { - newMessages = new Array() + let remoteMessages = await WKApp.conversationProvider.syncMessages(this.channel, opts) + const newMessages = new Array() + if(remoteMessages && remoteMessages.length>0) { + remoteMessages.forEach(msg => { + if (!msg.isDeleted) { + newMessages.push(msg) + } + }); } - if (newMessages.length <= 0 || newMessages[0].messageSeq === 1) { + if (remoteMessages.length <= 0 || remoteMessages[0].messageSeq === 1) { this.pulldownFinished = true } this.messagesOfOrigin = [...this.toMessageWraps(newMessages), ...this.messagesOfOrigin] @@ -845,19 +864,31 @@ export default class ConversationVM extends ProviderListener { this.loading = true const maxMessage = this.getMessageMax() if (maxMessage == null || maxMessage.messageSeq <= 0 ) { // 没有消息直接return + console.log("没有maxMessage") return } + console.log("pullupMessages--->") const opts = new SyncMessageOptions() opts.limit = WKApp.config.pageSizeOfMessage opts.pullMode = PullMode.Up opts.startMessageSeq = maxMessage.messageSeq - let newMessages = await WKApp.conversationProvider.syncMessages(this.channel, opts) - if (!newMessages) { - newMessages = new Array() + + let remoteMessages = await WKApp.conversationProvider.syncMessages(this.channel, opts) + const newMessages = new Array() + if(remoteMessages && remoteMessages.length>0) { + remoteMessages.forEach(msg => { + if (!msg.isDeleted) { + newMessages.push(msg) + } + }); } - if (newMessages.length < opts.limit) { + if (remoteMessages.length < opts.limit) { this.pullupHasMore = false + console.log("没有更多消息了") + }else { + this.pullupHasMore = true + console.log("还有更多消息") } this.messagesOfOrigin = [...this.messagesOfOrigin, ...this.toMessageWraps(newMessages)] this.refreshAndLocateMessages(this.messagesOfOrigin, undefined, false, () => { diff --git a/packages/tsdaodaodatasource/src/conversation.ts b/packages/tsdaodaodatasource/src/conversation.ts index b73c372..ccf94dc 100644 --- a/packages/tsdaodaodatasource/src/conversation.ts +++ b/packages/tsdaodaodatasource/src/conversation.ts @@ -55,10 +55,8 @@ export class ConversationProvider implements IConversationProvider { const messageList = resp && resp["messages"] if (messageList) { messageList.forEach((msg: any) => { - if (msg && msg["message_id"] && msg["is_deleted"] === 0) { - const message = Convert.toMessage(msg); - messages.push(message); - } + const message = Convert.toMessage(msg); + messages.push(message); }); // if (resp.data.more === 1 && messages.length < limit && resp.data["messages"].length) { // opts.maxMessageSeq = resp.data["messages"][0].message_seq;