CompParser.ets 2.53 KB
import { CommonConstants, CompStyle } from 'wdConstant';
import { CompDTO } from '../repository/bean/CompDTO';
import { BannerComponent } from './view/BannerComponent';
import { LabelComponent } from './view/LabelComponent';
import { TitleAbbrComponent } from './view/TitleAbbrComponent';
import { TitleAllComponent } from './view/TitleAllComponent';
import { HorizontalStrokeCardThreeTwoRadioForOneComponent } from './view/HorizontalStrokeCardThreeTwoRadioForOneComponent';
import { HorizontalStrokeCardThreeTwoRadioForMoreComponent } from './view/HorizontalStrokeCardThreeTwoRadioForMoreComponent';
import { BigPicCardComponent } from './view/BigPicCardComponent';
import { TriPicCardComponent } from './view/TriPicCardComponent';
import { HeadPictureCardComponent } from './view/HeadPictureCardComponent';

import { LiveHorizontalCardComponent } from './view/LiveHorizontalCardComponent';

/**
 * comp适配器.
 */
@Component
export struct CompParser {
  compDTO: CompDTO = {} as CompDTO;
  compIndex: number = 0;

  build() {
    this.componentBuilder(this.compDTO, this.compIndex);
  }

  @Builder
  componentBuilder(compDTO: CompDTO, compIndex: number) {
    if (compDTO.compStyle === CompStyle.Label_03) {
      LabelComponent({ compDTO: compDTO })
    } else if (compDTO.compStyle === '11') {
      TitleAbbrComponent({ compDTO: compDTO })
    } else if (compDTO.compStyle === '3') {
      TitleAllComponent({ compDTO: compDTO })
    } else if (compDTO.compStyle === CompStyle.Zh_Carousel_Layout_01) {
      BannerComponent({ compDTO: compDTO })
    } else if (compDTO.compStyle === "2") {
      BigPicCardComponent({ compDTO: compDTO })
    } else if (compDTO.compStyle === "4") {
      TriPicCardComponent({ compDTO: compDTO })
    } else if (compDTO.compStyle === CompStyle.Zh_Single_Row_01 && compDTO.imageScale === 2 ) {
      LiveHorizontalCardComponent({ compDTO: compDTO })
    }  else if (compDTO.compStyle === CompStyle.Zh_Single_Row_01 && compDTO.imageScale === 3 ) {
      if(compDTO.operDataList.length > 1){
        HorizontalStrokeCardThreeTwoRadioForMoreComponent({ compDTO: compDTO })
      }else{
        HorizontalStrokeCardThreeTwoRadioForOneComponent({ compDTO: compDTO })
      }
    } else if (compDTO.compStyle === CompStyle.Zh_Single_Column_02) {
      HeadPictureCardComponent({ compDTO: compDTO })
    } else {
      // todo:组件未实现 / Component Not Implemented
      Text(compDTO.compStyle)
        .width(CommonConstants.FULL_PARENT)
        .padding(10)
      // .backgroundColor(Color.Brown) // 展示本页未实现的compStyle
    }
  }
}