ProgrammeComp.ets 2.01 KB
/**
 * 剧集相关Comp,数据源无需ProgrammeComp自己加载,从MGComp中控制获得数据
 * CompType:
 * BIG_CAROUSEL_IMG
 * TOP_IMG_BOTTOM_TXT
 * BIG_STATIC_IMG
 * BIG_PLAY_IMG
 * SLIDER_IMG
 * NAV_BAR_03
 * BINGE_WATCHING
 * MY_HOME
 */
import { CompDataDTO } from '../bean/CompDataDTO';
import { CompDTO } from '../bean/CompDTO';
import { WDComp } from './WDComp';
import { WDGroup } from './WDGroup';
import List from '@ohos.util.List';
import { ProgrammeDTO } from '../bean/ProgrammeDTO';
import { CompType } from '../enum/CompType';
import { ProgrammeBean } from '../bean/ProgrammeBean';
import { PageUtils } from '../utils/PageUtils';

export class ProgrammeComp extends WDComp<ProgrammeBean, CompDataDTO> {
  constructor(parent: WDGroup, compDTO: CompDTO, initParams: Map<string, Object>) {
    super(parent, compDTO, initParams);
  }

  protected convertDto2Vo(compDataDTO: CompDataDTO): List<ProgrammeBean> {
    if (!compDataDTO || !compDataDTO.data) {
      return new List<ProgrammeBean>();
    }

    let programmeBeanList: List<ProgrammeBean> = new List<ProgrammeBean>();
    for (let index = 0; index < compDataDTO.data.length; index = index + 1) {
      let programmeData: ProgrammeDTO = compDataDTO.data[index];
      let bean: ProgrammeBean = new ProgrammeBean(programmeData);
      this.buildTip(bean)
      programmeBeanList.add(bean);
    }
    if (this.getCompType() == CompType.TOP_IMG_BOTTOM_TXT) {
      programmeBeanList = this.complementTrimData(programmeBeanList)
    }
    return programmeBeanList;
  }

  /**
   * build角标等数据
   */
  buildTip(bean: ProgrammeBean): void {
    bean.topRightTipImgUrl = PageUtils.getTopRightTipImgUrl(bean)
    bean.topLeftTipImgUrl = PageUtils.getTopLeftTipImgUrl(bean)
  }

  public setData(compDataDTO: CompDataDTO) {
    if (!compDataDTO || !compDataDTO.data) {
      return;
    }
    this.items = this.convertDto2Vo(compDataDTO);
  }

  public hasMoreData(): boolean {
    return false;
  }

  // public isLoaded(): boolean {
  //   return this.items.length > 0;
  // }
}