yangchenggong1_wd

desc:预约消息

... ... @@ -3,6 +3,7 @@ import { WDRouterPage, WDRouterRule } from 'wdRouter/Index'
import { WDMessageCenterMessageType } from '../../../model/InteractMessageModel'
import MinePageDatasModel from '../../../model/MinePageDatasModel'
import { MessageItem } from '../../../viewmodel/MessageItem'
import { CustomPullToRefresh } from '../../reusable/CustomPullToRefresh'
import { CustomTitleUI } from '../../reusable/CustomTitleUI'
import { MessageListItemUI } from './MessageListItemUI'
... ... @@ -11,6 +12,7 @@ const TAG = "MessageListUI"
@Component
export struct MessageListUI {
@State msgData: MessageItem[] = []
private scroller: Scroller = new Scroller();
aboutToAppear() {
this.msgData = MinePageDatasModel.getMessageData()
... ... @@ -138,45 +140,72 @@ export struct MessageListUI {
//标题栏目
CustomTitleUI({ titleName: "消息" })
List() {
ForEach(this.msgData, (item: MessageItem, index: number) => {
ListItem() {
MessageListItemUI({ item: item, index: index })
}
.padding({ left: "31lpx", right: "31lpx" })
.onClick(() => {
switch (index) {
case 0: //互动消息
if(item.unReadCount > 0){
this.sendEnterEvent(WDMessageCenterMessageType.WDMessageCenterMessageType_Interact)
}
WDRouterRule.jumpWithPage(WDRouterPage.interactMessagePage)
break;
case 1: //预约消息
if(item.unReadCount > 0){
this.sendEnterEvent(WDMessageCenterMessageType.WDMessageCenterMessageType_Subscribe)
}
WDRouterRule.jumpWithPage(WDRouterPage.subscribeMessagePage)
break;
case 2: //历史推送
break;
case 3: //系统消息
break;
}
})
.height('154lpx')
.width("100%")
})
}
CustomPullToRefresh({
alldata:this.msgData,
scroller:this.scroller,
customList:()=>{
this.ListLayout()
},
onRefresh:(resolve)=>{
if(resolve) resolve('刷新成功')
},
onLoadMore:(resolve)=> {
}
})
}
.backgroundColor($r('app.color.white'))
.height('100%')
.width('100%')
}
@Builder ListLayout(){
List({scroller: this.scroller}) {
ForEach(this.msgData, (item: MessageItem, index: number) => {
ListItem() {
MessageListItemUI({ item: item, index: index })
}
.padding({ left: "31lpx", right: "31lpx" })
.onClick(() => {
switch (index) {
case 0: //互动消息
if(item.unReadCount > 0){
this.sendEnterEvent(WDMessageCenterMessageType.WDMessageCenterMessageType_Interact)
}
WDRouterRule.jumpWithPage(WDRouterPage.interactMessagePage)
break;
case 1: //预约消息
if(item.unReadCount > 0){
this.sendEnterEvent(WDMessageCenterMessageType.WDMessageCenterMessageType_Subscribe)
}
WDRouterRule.jumpWithPage(WDRouterPage.subscribeMessagePage)
break;
case 2: //历史推送
break;
case 3: //系统消息
break;
}
})
.height('154lpx')
.width("100%")
})
}
}
sendEnterEvent(type:number){
MinePageDatasModel.sendEnterMessageData(type).then((value) => {
console.log(TAG, "消息已读")
this.msgData.forEach((item) => {
if (item.title == "预约消息" && type === 2) {
if(item.unReadCount > 0){
item.unReadCount = 0
}
}else if(item.title == "互动消息" && type === 1){
if(item.unReadCount > 0){
item.unReadCount = 0
}
}
})
}).catch((err: Error) => {
console.log(TAG, JSON.stringify(err))
})
... ...
... ... @@ -2,6 +2,7 @@ import { LazyDataSource, StringUtils } from 'wdKit/Index';
import { Remark, SubscribeMessageModel,
WDMessageCenterMessageType } from '../../../../model/InteractMessageModel';
import MinePageDatasModel from '../../../../model/MinePageDatasModel';
import { CustomPullToRefresh } from '../../../reusable/CustomPullToRefresh';
import { CustomTitleUI } from '../../../reusable/CustomTitleUI';
import { ListHasNoMoreDataUI } from '../../../reusable/ListHasNoMoreDataUI';
import { EmptyComponent } from '../../../view/EmptyComponent';
... ... @@ -17,6 +18,7 @@ export struct SubscribeMessageComponent{
@State hasMore: boolean = true
curPageNum: number = 1;
@State isGetRequest: boolean = false
private scroller: Scroller = new Scroller();
aboutToAppear() {
this.getNewPageData()
... ... @@ -32,33 +34,28 @@ export struct SubscribeMessageComponent{
.height('100%')
.width('100%')
}
} else {
//刷新控件 TODO
//List
List() {
LazyForEach(this.data, (item: SubscribeMessageModel, index: number) => {
ListItem() {
SubscribeListChildComponent({ item: item })
}.width('100%')
.onClick(() => {
})
})
//没有更多数据 显示提示
if (!this.hasMore) {
ListItem() {
ListHasNoMoreDataUI()
CustomPullToRefresh({
alldata:this.data,
scroller:this.scroller,
customList:()=>{
this.ListLayout()
},
onRefresh:(resolve)=>{
this.curPageNum = 1;
this.hasMore = true
this.isGetRequest = false
this.data.clear()
if (!this.isLoading) {
this.getNewPageData()
}
if(resolve) resolve('刷新成功')
},
onLoadMore:(resolve)=> {
if (!this.isLoading) {
//加载分页数据
this.getNewPageData()
}
}
}.width('100%')
.cachedCount(4)
.scrollBar(BarState.Off)
.layoutWeight(1)
.onReachEnd(() => {
if (!this.isLoading) {
//加载分页数据
this.getNewPageData()
}
})
}
... ... @@ -68,6 +65,25 @@ export struct SubscribeMessageComponent{
.width('100%')
}
@Builder ListLayout(){
List({scroller: this.scroller}) {
LazyForEach(this.data, (item: SubscribeMessageModel, index: number) => {
ListItem() {
SubscribeListChildComponent({ item: item })
}.width('100%')
})
//没有更多数据 显示提示
if (!this.hasMore) {
ListItem() {
ListHasNoMoreDataUI()
}
}
}.width('100%')
.cachedCount(4)
.scrollBar(BarState.Off)
.layoutWeight(1)
}
getNewPageData() {
this.isLoading = true
if (this.hasMore) {
... ...