yangchenggong1_wd

desc:预约消息

@@ -3,6 +3,7 @@ import { WDRouterPage, WDRouterRule } from 'wdRouter/Index' @@ -3,6 +3,7 @@ import { WDRouterPage, WDRouterRule } from 'wdRouter/Index'
3 import { WDMessageCenterMessageType } from '../../../model/InteractMessageModel' 3 import { WDMessageCenterMessageType } from '../../../model/InteractMessageModel'
4 import MinePageDatasModel from '../../../model/MinePageDatasModel' 4 import MinePageDatasModel from '../../../model/MinePageDatasModel'
5 import { MessageItem } from '../../../viewmodel/MessageItem' 5 import { MessageItem } from '../../../viewmodel/MessageItem'
  6 +import { CustomPullToRefresh } from '../../reusable/CustomPullToRefresh'
6 import { CustomTitleUI } from '../../reusable/CustomTitleUI' 7 import { CustomTitleUI } from '../../reusable/CustomTitleUI'
7 import { MessageListItemUI } from './MessageListItemUI' 8 import { MessageListItemUI } from './MessageListItemUI'
8 9
@@ -11,6 +12,7 @@ const TAG = "MessageListUI" @@ -11,6 +12,7 @@ const TAG = "MessageListUI"
11 @Component 12 @Component
12 export struct MessageListUI { 13 export struct MessageListUI {
13 @State msgData: MessageItem[] = [] 14 @State msgData: MessageItem[] = []
  15 + private scroller: Scroller = new Scroller();
14 16
15 aboutToAppear() { 17 aboutToAppear() {
16 this.msgData = MinePageDatasModel.getMessageData() 18 this.msgData = MinePageDatasModel.getMessageData()
@@ -138,45 +140,72 @@ export struct MessageListUI { @@ -138,45 +140,72 @@ export struct MessageListUI {
138 //标题栏目 140 //标题栏目
139 CustomTitleUI({ titleName: "消息" }) 141 CustomTitleUI({ titleName: "消息" })
140 142
141 - List() {  
142 - ForEach(this.msgData, (item: MessageItem, index: number) => {  
143 - ListItem() {  
144 - MessageListItemUI({ item: item, index: index })  
145 - }  
146 - .padding({ left: "31lpx", right: "31lpx" })  
147 - .onClick(() => {  
148 - switch (index) {  
149 - case 0: //互动消息  
150 - if(item.unReadCount > 0){  
151 - this.sendEnterEvent(WDMessageCenterMessageType.WDMessageCenterMessageType_Interact)  
152 - }  
153 - WDRouterRule.jumpWithPage(WDRouterPage.interactMessagePage)  
154 - break;  
155 - case 1: //预约消息  
156 - if(item.unReadCount > 0){  
157 - this.sendEnterEvent(WDMessageCenterMessageType.WDMessageCenterMessageType_Subscribe)  
158 - }  
159 - WDRouterRule.jumpWithPage(WDRouterPage.subscribeMessagePage)  
160 - break;  
161 - case 2: //历史推送  
162 - break;  
163 - case 3: //系统消息  
164 - break;  
165 - }  
166 - })  
167 - .height('154lpx')  
168 - .width("100%")  
169 - })  
170 - } 143 + CustomPullToRefresh({
  144 + alldata:this.msgData,
  145 + scroller:this.scroller,
  146 + customList:()=>{
  147 + this.ListLayout()
  148 + },
  149 + onRefresh:(resolve)=>{
  150 +
  151 + if(resolve) resolve('刷新成功')
  152 + },
  153 + onLoadMore:(resolve)=> {
  154 + }
  155 + })
171 } 156 }
172 .backgroundColor($r('app.color.white')) 157 .backgroundColor($r('app.color.white'))
173 .height('100%') 158 .height('100%')
174 .width('100%') 159 .width('100%')
175 } 160 }
176 161
  162 + @Builder ListLayout(){
  163 + List({scroller: this.scroller}) {
  164 + ForEach(this.msgData, (item: MessageItem, index: number) => {
  165 + ListItem() {
  166 + MessageListItemUI({ item: item, index: index })
  167 + }
  168 + .padding({ left: "31lpx", right: "31lpx" })
  169 + .onClick(() => {
  170 + switch (index) {
  171 + case 0: //互动消息
  172 + if(item.unReadCount > 0){
  173 + this.sendEnterEvent(WDMessageCenterMessageType.WDMessageCenterMessageType_Interact)
  174 + }
  175 + WDRouterRule.jumpWithPage(WDRouterPage.interactMessagePage)
  176 + break;
  177 + case 1: //预约消息
  178 + if(item.unReadCount > 0){
  179 + this.sendEnterEvent(WDMessageCenterMessageType.WDMessageCenterMessageType_Subscribe)
  180 + }
  181 + WDRouterRule.jumpWithPage(WDRouterPage.subscribeMessagePage)
  182 + break;
  183 + case 2: //历史推送
  184 + break;
  185 + case 3: //系统消息
  186 + break;
  187 + }
  188 + })
  189 + .height('154lpx')
  190 + .width("100%")
  191 + })
  192 + }
  193 + }
  194 +
  195 +
177 sendEnterEvent(type:number){ 196 sendEnterEvent(type:number){
178 MinePageDatasModel.sendEnterMessageData(type).then((value) => { 197 MinePageDatasModel.sendEnterMessageData(type).then((value) => {
179 - console.log(TAG, "消息已读") 198 + this.msgData.forEach((item) => {
  199 + if (item.title == "预约消息" && type === 2) {
  200 + if(item.unReadCount > 0){
  201 + item.unReadCount = 0
  202 + }
  203 + }else if(item.title == "互动消息" && type === 1){
  204 + if(item.unReadCount > 0){
  205 + item.unReadCount = 0
  206 + }
  207 + }
  208 + })
180 }).catch((err: Error) => { 209 }).catch((err: Error) => {
181 console.log(TAG, JSON.stringify(err)) 210 console.log(TAG, JSON.stringify(err))
182 }) 211 })
@@ -2,6 +2,7 @@ import { LazyDataSource, StringUtils } from 'wdKit/Index'; @@ -2,6 +2,7 @@ import { LazyDataSource, StringUtils } from 'wdKit/Index';
2 import { Remark, SubscribeMessageModel, 2 import { Remark, SubscribeMessageModel,
3 WDMessageCenterMessageType } from '../../../../model/InteractMessageModel'; 3 WDMessageCenterMessageType } from '../../../../model/InteractMessageModel';
4 import MinePageDatasModel from '../../../../model/MinePageDatasModel'; 4 import MinePageDatasModel from '../../../../model/MinePageDatasModel';
  5 +import { CustomPullToRefresh } from '../../../reusable/CustomPullToRefresh';
5 import { CustomTitleUI } from '../../../reusable/CustomTitleUI'; 6 import { CustomTitleUI } from '../../../reusable/CustomTitleUI';
6 import { ListHasNoMoreDataUI } from '../../../reusable/ListHasNoMoreDataUI'; 7 import { ListHasNoMoreDataUI } from '../../../reusable/ListHasNoMoreDataUI';
7 import { EmptyComponent } from '../../../view/EmptyComponent'; 8 import { EmptyComponent } from '../../../view/EmptyComponent';
@@ -17,6 +18,7 @@ export struct SubscribeMessageComponent{ @@ -17,6 +18,7 @@ export struct SubscribeMessageComponent{
17 @State hasMore: boolean = true 18 @State hasMore: boolean = true
18 curPageNum: number = 1; 19 curPageNum: number = 1;
19 @State isGetRequest: boolean = false 20 @State isGetRequest: boolean = false
  21 + private scroller: Scroller = new Scroller();
20 22
21 aboutToAppear() { 23 aboutToAppear() {
22 this.getNewPageData() 24 this.getNewPageData()
@@ -32,33 +34,28 @@ export struct SubscribeMessageComponent{ @@ -32,33 +34,28 @@ export struct SubscribeMessageComponent{
32 .height('100%') 34 .height('100%')
33 .width('100%') 35 .width('100%')
34 } 36 }
35 -  
36 } else { 37 } else {
37 - //刷新控件 TODO  
38 - //List  
39 - List() {  
40 - LazyForEach(this.data, (item: SubscribeMessageModel, index: number) => {  
41 - ListItem() {  
42 - SubscribeListChildComponent({ item: item })  
43 - }.width('100%')  
44 - .onClick(() => {  
45 - })  
46 - })  
47 -  
48 - //没有更多数据 显示提示  
49 - if (!this.hasMore) {  
50 - ListItem() {  
51 - ListHasNoMoreDataUI() 38 + CustomPullToRefresh({
  39 + alldata:this.data,
  40 + scroller:this.scroller,
  41 + customList:()=>{
  42 + this.ListLayout()
  43 + },
  44 + onRefresh:(resolve)=>{
  45 + this.curPageNum = 1;
  46 + this.hasMore = true
  47 + this.isGetRequest = false
  48 + this.data.clear()
  49 + if (!this.isLoading) {
  50 + this.getNewPageData()
  51 + }
  52 + if(resolve) resolve('刷新成功')
  53 + },
  54 + onLoadMore:(resolve)=> {
  55 + if (!this.isLoading) {
  56 + //加载分页数据
  57 + this.getNewPageData()
52 } 58 }
53 - }  
54 - }.width('100%')  
55 - .cachedCount(4)  
56 - .scrollBar(BarState.Off)  
57 - .layoutWeight(1)  
58 - .onReachEnd(() => {  
59 - if (!this.isLoading) {  
60 - //加载分页数据  
61 - this.getNewPageData()  
62 } 59 }
63 }) 60 })
64 } 61 }
@@ -68,6 +65,25 @@ export struct SubscribeMessageComponent{ @@ -68,6 +65,25 @@ export struct SubscribeMessageComponent{
68 .width('100%') 65 .width('100%')
69 } 66 }
70 67
  68 + @Builder ListLayout(){
  69 + List({scroller: this.scroller}) {
  70 + LazyForEach(this.data, (item: SubscribeMessageModel, index: number) => {
  71 + ListItem() {
  72 + SubscribeListChildComponent({ item: item })
  73 + }.width('100%')
  74 + })
  75 + //没有更多数据 显示提示
  76 + if (!this.hasMore) {
  77 + ListItem() {
  78 + ListHasNoMoreDataUI()
  79 + }
  80 + }
  81 + }.width('100%')
  82 + .cachedCount(4)
  83 + .scrollBar(BarState.Off)
  84 + .layoutWeight(1)
  85 + }
  86 +
71 getNewPageData() { 87 getNewPageData() {
72 this.isLoading = true 88 this.isLoading = true
73 if (this.hasMore) { 89 if (this.hasMore) {