MinePagePersonFunctionUI.ets 3.66 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
  @Link percent:number

  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})
        }.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;
            }
          }
        })/*.width(`${this.calcHeight(142)}lpx`)*/
        .height(`${this.calcHeight(117)}lpx`)
      })
    }
    .rowsTemplate('1fr')
    .columnsTemplate('1fr 1fr 1fr 1fr 1fr')
    .height(`${this.calcHeight(117)}lpx`)
    .margin({top:`${this.calcHeight(31)}lpx`})
  }

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

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

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