MinePagePersonFunctionUI.ets 3.52 KB
import { BottomNavDTO } from 'wdBean/Index'
import { WDRouterRule, WDRouterPage } from 'wdRouter'
import { TrackConstants } from 'wdTracking/src/main/ets/common/TrackConstants'
import { TrackingButton } from 'wdTracking/src/main/ets/tracking/TrackingButton'
import MinePageDatasModel from '../../model/MinePageDatasModel'
import MinePagePersonalFunctionsItem from '../../viewmodel/MinePagePersonalFunctionsItem'
import { PagePersonFunction } from './PagePersonFunction'


const TAG = "MinePagePersonFunctionUI"
@Component
export default struct MinePagePersonFunctionUI {
  @Link personalData:MinePagePersonalFunctionsItem[]
  @Prop isLogin:boolean
  @Link percent:number
  navItem: BottomNavDTO = {} as BottomNavDTO

  build() {
    Grid(){
      ForEach(this.personalData,(item:MinePagePersonalFunctionsItem,index:number)=>{
        GridItem(){
          PagePersonFunction({ item: item, noDivider : (index % 5 < 4 && index != this.personalData.length-1) ? false : true,percent:$percent,navItem:this.navItem})
        }.onClick(()=>{
          // console.log(index+"")
          switch (item.msg){
            case "评论":{
              if(!this.isLogin){
                WDRouterRule.jumpWithPage(WDRouterPage.visitorCommentPage)
                return
              }else {
                let params: Record<string, string> = {'comment': "1"};
                WDRouterRule.jumpWithPage(WDRouterPage.mineHomePage,params)
                trackButtonClick("myPageUserComment")
              }
              break;
            }
            case "预约":{
              if(!this.isLogin){
                WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
                return
              }
              trackButtonClick("myPageUserSubscribe")
              WDRouterRule.jumpWithPage(WDRouterPage.appointmentListPage)
              break;
            }
            case "关注":{
              if(!this.isLogin){
                WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
                return
              }
              WDRouterRule.jumpWithPage(WDRouterPage.followListPage)
              trackButtonClick("myPageUserFollow")
              break;
            }
            case "收藏":{
              if(!this.isLogin){
                WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
                return
              }
              WDRouterRule.jumpWithPage(WDRouterPage.myCollectionListPagePage)
              trackButtonClick("myPageUserCollection")
              break;
            }
            case "历史":{
              if(!this.isLogin){
                WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
                return
              }
              WDRouterRule.jumpWithPage(WDRouterPage.browsingHistoryPage)
              break;
            }
            case "消息":{
              if(!this.isLogin){
                WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
                return
              }
              this.messageClick()
              trackButtonClick("myPageUserNotice")
              WDRouterRule.jumpWithPage(WDRouterPage.mineMessagePage)
              break;
            }
          }
        })
        .height(61)
      })
    }
    .rowsTemplate('1fr')
    .columnsTemplate('1fr 1fr 1fr 1fr 1fr')
    .height(61)
    .margin({top: 10})
  }

  messageClick(){
    MinePageDatasModel.sendClickMessageData()
  }

  calcHeight(value:number): number{
    return value * this.percent
  }
}

function trackButtonClick(buttonName: string){
  TrackingButton.click(buttonName, TrackConstants.PageName.My, TrackConstants.PageName.My)
}