CompParser.ets 4.32 KB
import { CompDTO } from 'wdBean';
import { CommonConstants, CompStyle } from 'wdConstant';
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 { ZhSingleRow05 } from './compview/ZhSingleRow05';
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 { ZhCarouselLayout01 } from './compview/ZhCarouselLayout01';
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.operDataList[0]?.objectType !== '3' && compDTO.operDataList[0]?.objectType !== '13') { //暂时屏蔽活动和音频详情入口
      if (compDTO.compStyle === CompStyle.Label_03) {
        LabelComponent({ compDTO: compDTO })
      } else if (compDTO.compStyle === CompStyle.Zh_Carousel_Layout_01) {
        ZhCarouselLayout01({ 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_Row_05) {
        ZhSingleRow05({ compDTO })
      } else if (compDTO.compStyle === CompStyle.Zh_Single_Row_06) {
        ZhSingleRow06({ 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 (compDTO.compStyle === CompStyle.Zh_Single_Column_09) {
        ZhSingleColumn09({ compDTO })
      } else if (!Number.isNaN(Number(compDTO.compStyle))) {
        CardParser({ contentDTO: compDTO.operDataList[0] });
      }
      else {
        Text(compDTO.compStyle)
          .width(CommonConstants.FULL_PARENT)
          .padding(10)
          .onClick(() => {
            if (compDTO.compStyle === CompStyle.Zh_Single_Row_06) { //精选评论
              WDRouterRule.jumpWithPage(WDRouterPage.QualityCommentsPage)
            }
          })
      }
      Divider().strokeWidth(1).color('#f5f5f5').padding({ left: 16, right: 16 })
    }
  }
}