InteractMessagePage.ets 3.86 KB

import MyCollectionViewModel from '../../viewmodel/MyCollectionViewModel';
import PageModel from '../../viewmodel/PageModel';
import { CommonConstants, ViewType } from 'wdConstant'
import { EmptyComponent,WDViewDefaultType } from '../view/EmptyComponent'
import { ContentDTO } from 'wdBean'
import NoMoreLayout from './NoMoreLayout'
import CustomRefreshLoadLayout from './CustomRefreshLoadLayout';
import { CustomSelectUI } from '../view/CustomSelectUI';
import { CustomBottomFuctionUI } from '../view/CustomBottomFuctionUI';
import { BigPicCardComponent } from '../view/BigPicCardComponent';

import { CustomTitleUI } from '../reusable/CustomTitleUI';
import { CustomPullToRefresh } from '../reusable/CustomPullToRefresh';
import { InteractMComponent } from '../InteractMessage/InteractMComponent';

@Entry
@Component
struct InteractMessagePage {
  @State private browSingModel: PageModel = new PageModel()
  isloading : boolean = false
  @Provide isEditState:boolean = false
  @State allDatas :ContentDTO[] = [];
  private scroller: Scroller = new Scroller();
  @State likeNum: number = 20

  aboutToAppear(){
    this.getData()
  }

  build() {
    Column(){
      CustomTitleUI({titleName:'互动消息'})
      this.ListLayout()
      // if(this.browSingModel.viewType == ViewType.ERROR){
      //   EmptyComponent({emptyType:WDViewDefaultType.WDViewDefaultType_NetworkFailed})
      // }else if(this.browSingModel.viewType == ViewType.EMPTY){
      //   EmptyComponent({emptyType:WDViewDefaultType.WDViewDefaultType_NoHistory})
      // }else {
      //   CustomPullToRefresh({
      //     alldata:this.allDatas,
      //     scroller:this.scroller,
      //     customList:()=>{
      //       this.ListLayout()
      //     },
      //     onRefresh:(resolve)=>{
      //       this.browSingModel.currentPage = 0
      //       this.getData(resolve)
      //     },
      //     onLoadMore:(resolve)=> {
      //       this.browSingModel.currentPage++
      //       this.getData()
      //     }
      //   })
      // }

    }
    .width(CommonConstants.FULL_WIDTH)
    .height(CommonConstants.FULL_HEIGHT)
  }

  @Builder ListLayout() {
    List({scroller: this.scroller}) {
      ListItem(){
        this.likeUILayout()
      }

      // 下拉刷新
      ForEach(this.allDatas, (compDTO: ContentDTO, compIndex: number) => {
        ListItem() {
          InteractMComponent()
        }
      })
      // 加载更多
      ListItem() {
        if (this.browSingModel.hasMore) {
        } else {
          NoMoreLayout()
        }
      }
    }
    .height(CommonConstants.FULL_PARENT)
    .edgeEffect(EdgeEffect.None) // 必须设置列表为滑动到边缘无效果
  }

  @Builder
  likeUILayout(){
    Column(){
      Row(){
        Text('共获')
          .fontSize(18)
        Text(this.likeNum.toString())
          .fontSize(30)
          .fontColor(Color.Red)
        Text('赞')
          .fontSize(18)

      }.height(75)


      Divider()
        .color('#f5f5f5')
        .backgroundColor('#f5f5f5')
        .width('100%')
        .height(5)
    }
    .alignItems(HorizontalAlign.Start)
    .padding({ left:16,right:16 })
    .width('100%')
    .height(80)

  }

  async getData(resolve?: (value: string | PromiseLike<string>) => void){
    MyCollectionViewModel.fetchMyCollectList(2,'1',this.browSingModel.currentPage,getContext(this)).then(collectionItem => {
      if(resolve) resolve('刷新成功')
      if (collectionItem && collectionItem.list && collectionItem.list.length > 0) {
        this.browSingModel.viewType = ViewType.LOADED;
        this.allDatas.push(...collectionItem.list)
        if (collectionItem.list.length === this.browSingModel.pageSize) {
          this.browSingModel.currentPage++;
          this.browSingModel.hasMore = true;
        } else {
          this.browSingModel.hasMore = false;
        }
      } else {
        this.browSingModel.viewType = ViewType.EMPTY;
      }
    })
  }

}