MinePagePersonFunctionUI.ets 3.46 KB
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

  build() {
    Grid(){
      ForEach(this.personalData,(item:MinePagePersonalFunctionsItem,index:number)=>{
        GridItem(){
          PagePersonFunction({ item: item, noDivider : (index % 5 < 4 && index != this.personalData.length-1) ? false : true})
        }.onClick(()=>{
          console.log(index+"")
          switch (item.msg){
            case "评论":{
              if(!this.isLogin){
                WDRouterRule.jumpWithPage(WDRouterPage.loginPage)
                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;
            }
          }
        }).width('142lpx')
        .height('117lpx')
      })
    }
    .rowsTemplate('1fr')
    .columnsTemplate('1fr 1fr 1fr 1fr 1fr')
    .height('117lpx')
    .margin({top:'31lpx'})
  }

  messageClick(){
    MinePageDatasModel.sendClickMessageData().then((value) => {
      console.log(TAG, "进入消息页面")
    }).catch((err: Error) => {
      console.log(TAG, JSON.stringify(err))
    })
  }
}

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