ProcessUtils.ets 5.96 KB
import { Action, ContentDTO, Params, PhotoListBean } from 'wdBean';
import { ExtraDTO } from 'wdBean/src/main/ets/bean/component/extra/ExtraDTO';
import { Logger } from 'wdKit';
import { StringUtils } from 'wdKit/src/main/ets/utils/StringUtils';
import { WDRouterRule } from '../router/WDRouterRule';
import { ContentConstants } from 'wdConstant';

// import { LiveModel } from '../viewmodel/LiveModel';

const TAG = 'ProcessUtils';

/**
 * 页面跳转业务封装
 */
export class ProcessUtils {
  /**
   * 页面跳转
   */
  static processPage(content: ContentDTO) {
    if (content == null) {
      Logger.error(TAG, "processPage, content is null");
      return;
    }
    if (StringUtils.isEmpty(content.objectType)) {
      Logger.error(TAG, "processPage, objectType is empty");
      return;
    }
    let type = content.objectType;
    console.log(TAG, 'objectType', `${JSON.stringify(content)}`);
    switch (type) {
      case ContentConstants.TYPE_NONE:
        Logger.debug(TAG, "processPage, do nothing");
        break;
      case ContentConstants.TYPE_VOD:
        Logger.debug(TAG, "processPage, nonsupport!!!");
        ProcessUtils.gotoVod(content)
        break;
      case ContentConstants.TYPE_LIVE:
        ProcessUtils.gotoLive(content)
        break
      case ContentConstants.TYPE_AUDIO:
        ProcessUtils.gotoAudio(content)
        break;
      case ContentConstants.TYPE_TELETEXT:
      // 图文详情,跳转h5
        ProcessUtils.gotoWeb(content);
        break;
      case ContentConstants.TYPE_LINK:
        ProcessUtils.gotoDefaultWeb(content);
        break;
    //图集详情页
      case ContentConstants.TYPE_NINE:
        ProcessUtils.gotoAtlasDetailPage(content);
        break;
      case ContentConstants.TYPE_SPECIAL_TOPIC:
      // 专题详情,跳转h5
        ProcessUtils.gotoSpecialTopic(content);
        break;
    //动态详情页(动态图文)
      case ContentConstants.TYPE_FOURTEEN:
        ProcessUtils.gotoDynamicDetailPage(content);
    //动态详情页(动态视频)
      case ContentConstants.TYPE_FIFTEEN:
        ProcessUtils.gotoDynamicDetailPage(content);
        break;
      default:
        break;
    }
  }

  /**
   * 动态详情页(动态视频/动态图片)
   * @param content
   * */
  private static gotoDynamicDetailPage(content: ContentDTO) {
    let taskAction: Action = {
      type: 'JUMP_DETAIL_PAGE',
      params: {
        detailPageType: Number.parseInt(content.objectType),
        contentID: content?.objectId,
        extra: {
          relType: content?.relType,
          relId: content?.relId,
        } as ExtraDTO
      } as Params,
    };
    WDRouterRule.jumpWithAction(taskAction)
    Logger.debug(TAG, `gotoDynamicDetailPage, ${content.objectId}`);
  }

  /**
   * 图集详情页
   * @param content
   * */
  public  static gotoMultiPictureListPage(photoList: PhotoListBean[]) {
    let taskAction: Action = {
      type: 'JUMP_DETAIL_PAGE',
      params: {
        detailPageType: 18,
        extra: {
          photoList
        } as ExtraDTO
      } as Params,
    };
    WDRouterRule.jumpWithAction(taskAction)
    Logger.debug(TAG, `gotoMultiPictureListPage`);
  }

  private static gotoSpecialTopic(content: ContentDTO) {
    let taskAction: Action = {
      type: 'JUMP_INNER_NEW_PAGE',
      params: {
        url: content.linkUrl,
        pageID: 'SPACIAL_TOPIC_PAGE',
      } as Params,
    };
    WDRouterRule.jumpWithAction(taskAction)
  }

  private static gotoDefaultWeb(content: ContentDTO) {
    let taskAction: Action = {
      type: 'JUMP_H5_BY_WEB_VIEW',
      params: {
        url: content.linkUrl,
      } as Params,
    };
    WDRouterRule.jumpWithAction(taskAction)
    Logger.debug(TAG, `gotoWeb, ${content.objectId}`);
  }

  private static gotoWeb(content: ContentDTO) {
    let taskAction: Action = {
      type: 'JUMP_INNER_NEW_PAGE',
      params: {
        contentID: content?.objectId,
        pageID: 'IMAGE_TEXT_DETAIL',
        extra: {
          relType: content?.relType,
          relId: content?.relId,
          channelId: content?.channelId,
          sourcePage: '5'
        } as ExtraDTO
      } as Params,
    };
    WDRouterRule.jumpWithAction(taskAction)
    Logger.debug(TAG, `gotoWeb, ${content.objectId}`);
  }

  private static gotoVod(content: ContentDTO) {
    let taskAction: Action = {
      type: 'JUMP_DETAIL_PAGE',
      params: {
        detailPageType: 7,
        contentID: content?.objectId,
        extra: {
          relType: content?.relType,
          relId: content?.relId,
        } as ExtraDTO
      } as Params,
    };
    WDRouterRule.jumpWithAction(taskAction)
    Logger.debug(TAG, `gotoVod, ${content.objectId}`);
  }

  private static async gotoLive(content: ContentDTO) {
    let taskAction: Action = {
      type: 'JUMP_DETAIL_PAGE',
      params: {
        detailPageType: 2,
        contentID: content?.objectId,
        extra: {
          relType: content?.relType,
          relId: content?.relId,
        } as ExtraDTO
      } as Params,
    };
    WDRouterRule.jumpWithAction(taskAction)
    Logger.debug(TAG, `gotoLive, ${content.objectId}`);
  }

  private static gotoAudio(content: ContentDTO) {
    let taskAction: Action = {
      type: 'JUMP_DETAIL_PAGE',
      params: {
        detailPageType: 13,
        contentID: content?.objectId,
        extra: {
          relType: content?.relType,
          relId: content?.relId,
        } as ExtraDTO
      } as Params,
    };
    WDRouterRule.jumpWithAction(taskAction)
    Logger.debug(TAG, `gotoAudio, ${content.objectId}`);
  }

  /**
   * 图片预览页
   * @param content
   * */
  private static gotoAtlasDetailPage(content: ContentDTO) {
    let taskAction: Action = {
      type: 'JUMP_DETAIL_PAGE',
      params: {
        detailPageType: 17,
        contentID: content?.objectId,
        extra: {
          relType: content?.relType,
          relId: content?.relId,
        } as ExtraDTO
      } as Params,
    };
    WDRouterRule.jumpWithAction(taskAction)
    Logger.debug(TAG, `gotoAtlasDetailPage, ${content.objectId}`);
  }
}