harmony/features/netease/src/main/ets/view/MessageComp.ets
2025-07-18 17:26:48 +08:00

85 lines
2.3 KiB
Plaintext

import { BasicConstant,HdNav } from '@itcast/basic'
import { ChatKitClient, ContactRepo, IMKitConfigCenter,
LocalConversationRepo } from '@nimkit/chatkit';
import { ChatKitConfig } from '@nimkit/chatkit_ui/src/main/ets/ChatKitConfig';
import { CommonConstants } from '@nimkit/common';
import { LocalConversationPage } from '@nimkit/localconversationkit_ui';
import { V2NIMFriendAddApplication } from '@nimsdk/base';
@ComponentV2
export struct MessageComp {
// @Param pathStack: NavPathStack = new NavPathStack()
@Param onUreadMessageChange?: (unreadCount?: number) => void = undefined
loadUnreadApplication = async () => {
try {
const unreadCount = await ContactRepo.getAddApplicationUnreadCount()
} catch (err) {
console.log(err)
}
}
//获取会话列表未读数
loadUnreadMessageCount = () => {
let unreadCount = 0
unreadCount = LocalConversationRepo.getTotalUnreadCount() ?? 0
}
// 加载配置信息
loadConfig = () => {
// let readOrOpen: boolean = AppStorage.get<boolean>(CommonConstants.KEY_SETTING_MESSAGE_READ_OR) ?? true
ChatKitConfig.messageReadState = true
}
async aboutToAppear(): Promise<void> {
ChatKitClient.nim.localConversationService?.on('onSyncFinished',
async () => {
//同步完成拉一次
ChatKitClient.logger?.debug(`onSyncFinished`)
}
)
ChatKitClient.nim.friendService?.on('onFriendAddApplication', async (application: V2NIMFriendAddApplication) => {
await this.loadUnreadApplication()
})
try {
await this.loadUnreadApplication()
} catch (err) {
console.log(err)
}
this.loadConfig()
this.loadUnreadMessageCount()
}
build() {
// Navigation(this.pathStack) {
Column() {
HdNav({ title: '患者消息', showRightIcon: true, showLeftIcon: true,showRightText:false,rightIcon:$r('app.media.selected_hospital_ws'),rightItemAction:()=>{
// router.pushUrl({
// url:'pages/SearchPage/VideoSearchPage',
// params:{'pageName':'视频'}
// })
}})
LocalConversationPage({
onUreadMessageChange: this.onUreadMessageChange,
})
}.width('100%')
.height('100%')
.backgroundColor($r('app.color.top_bg'))
// }
// .mode(NavigationMode.Auto)
// .hideTitleBar(true)
}
}