SettingPage.ets 2.07 KB
import { MineSettingComponent } from '../setting/MineSettingComponent';
import { AccountAndSecurityLayout } from '../setting/AccountAndSecurityLayout';
import router from '@ohos.router';
import { Params } from 'wdBean';
import { BreakpointSystem, DateTimeUtils } from 'wdKit/Index';
import { TrackingPageBrowse, TrackConstants } from 'wdTracking/Index';

@Entry
@Component
struct SettingPage {
  @State pageType: string = 'mainSetting';
  @State params:Params =  router.getParams() as Params;
  @State enterActivityTime:number = 0;
  @Provide pageShow: number = -1
  @Provide pageHide: number = -1

  pageShowSettingTime:number = 0;
  pageHideSettingTime:number = 0;
  @State topSafeHeight: number = AppStorage.get<number>('topSafeHeight') || 0
  @State bottomSafeHeight: number = AppStorage.get<number>('bottomSafeHeight') || 0


  onPageShow() {
    this.pageShow = Math.random()

    this.pageType = this.params.pageID;
    this.enterActivityTime = DateTimeUtils.getTimeStamp()
    if (this.pageType == 'mainSetting'){
      this.pageShowSettingTime = DateTimeUtils.getTimeStamp()
    }
  }

  onPageHide(): void {
    this.pageHide = Math.random()
    if (this.pageType == 'mainSetting'){
      this.pageHideSettingTime = DateTimeUtils.getTimeStamp()
    }

    let duration = 0
    if(this.pageType == 'mainSetting'){
      duration = Math.floor((this.pageHideSettingTime - this.pageShowSettingTime)/1000)
    }
    if(this.pageType == 'mainSetting'){
      TrackingPageBrowse.trackCommonPageExposureEnd(TrackConstants.PageName.Setting,TrackConstants.PageName.Setting,duration)
    }
  }

  build() {
    Column(){
      Column() {
        if (this.pageType == 'mainSetting') {
          MineSettingComponent()
        } else  {
          AccountAndSecurityLayout({enterActivityTime:this.enterActivityTime})
        }
      }.setFullWidth()
      .backgroundColor($r("app.color.white"))
    }.width("100%")
    .height("100%")
    .padding({top:px2vp(this.topSafeHeight),bottom:px2vp(this.bottomSafeHeight)})

  }

  // 私有方法
  @Styles setFullWidth(){
    .width('100%')
  }
}

export { SettingPage };