CompParser.ets 3.57 KB
import { CompDTO } from 'wdBean';
import { CommonConstants, CompStyle } from 'wdConstant';
import { BannerComponent } from './view/BannerComponent';
import { LabelComponent } from './view/LabelComponent';
import { LiveHorizontalCardComponent } from './view/LiveHorizontalCardComponent';
import {
  HorizontalStrokeCardThreeTwoRadioForMoreComponent
} from './view/HorizontalStrokeCardThreeTwoRadioForMoreComponent';
import {
  HorizontalStrokeCardThreeTwoRadioForOneComponent
} from './view/HorizontalStrokeCardThreeTwoRadioForOneComponent';
import { ZhSingleRow02 } from './compview/ZhSingleRow02';
import { ZhSingleRow04 } from './compview/ZhSingleRow04';
import { ZhSingleRow06 } from './compview/ZhSingleRow06';
import { ZhSingleColumn04 } from './compview/ZhSingleColumn04';
import { ZhSingleColumn05 } from './compview/ZhSingleColumn05';
import { ZhSingleColumn09 } from './compview/ZhSingleColumn09';
import { ZhGridLayout03 } from './compview/ZhGridLayout03';
import { CardParser } from './CardParser';
import { LiveHorizontalReservationComponent } from './view/LiveHorizontalReservationComponent';
import { ZhGridLayout02 } from './compview/ZhGridLayout02';
import { Card5Component } from './cardview/Card5Component'
import { WDRouterPage, WDRouterRule } from 'wdRouter/Index';

/**
 * comp适配器.
 * 首页楼层comp解析器.
 */
@Preview
@Component
export struct CompParser {
  @State compDTO: CompDTO = {} as CompDTO
  compIndex: number = 0;

  build() {
    Column() {
      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 === CompStyle.Zh_Carousel_Layout_01) {
      BannerComponent({ 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_Row_02) {
      ZhSingleRow02({ compDTO })
    } else if (compDTO.compStyle === CompStyle.Zh_Single_Row_03) {
      LiveHorizontalReservationComponent({ compDTO: compDTO })
    } else if (compDTO.compStyle === CompStyle.Zh_Grid_Layout_02) {
      ZhGridLayout02({ compDTO: compDTO })
    } else if (compDTO.compStyle === CompStyle.Zh_Grid_Layout_03) {
      ZhGridLayout03({ compDTO: compDTO })
    } else if (compDTO.compStyle === CompStyle.Zh_Single_Row_04) {
      ZhSingleRow04({ compDTO: compDTO })
    } else if (compDTO.compStyle === CompStyle.Zh_Single_Column_02) {
      //头图卡 和comStyle 2相同,
      Card5Component({ contentDTO: compDTO.operDataList[0] })
    } else if (compDTO.compStyle === CompStyle.Zh_Single_Column_04) {
      ZhSingleColumn04({ compDTO: compDTO })
    } else if (compDTO.compStyle === CompStyle.Zh_Single_Column_05) {
      ZhSingleColumn05({ compDTO: compDTO })
    } else if (!Number.isNaN(Number(compDTO.compStyle))) {
      CardParser({ contentDTO: compDTO.operDataList[0] });
    }
    else {
      // todo:组件未实现 / Component Not Implemented
      // Text(compDTO.compStyle)
      //   .width(CommonConstants.FULL_PARENT)
      //   .padding(10)
      // .backgroundColor(Color.Brown) // 展示本页未实现的compStyle
    }
  }
}