EditUserInfoPage.ets 3.44 KB

import { CustomTitleUI } from '../reusable/CustomTitleUI';
import { EditListInfo } from '../../model/EditInfoModel';
import EditInfoViewModel from '../../viewmodel/EditInfoViewModel';
import { WDRouterPage, WDRouterRule } from 'wdRouter';
import {AreaPickerDialog} from '../view/areaPickerDialog/AreaPickerDialog'
import { AreaListModel } from '../../model/AreaListModel';
import router from '@ohos.router';


@Entry
@Component
struct EditUserInfoPage {
  @State listData: EditListInfo[] = []
  @State  headerImg: string = ''
  @State dataSource: AreaListModel[] = []

  dialogController: CustomDialogController = new CustomDialogController({
    builder: AreaPickerDialog({dataSource:this.dataSource}),
    alignment: DialogAlignment.Bottom,
    offset:{dx:0,dy:-20}
  })

  aboutToAppear() {
    this.getAccountOwnerInfo()
    this.getAreaList()
  }

  onPageShow(){

  }

  build() {
    Row() {
      Column() {
        CustomTitleUI({titleName:'资料编辑'})
        Image(this.headerImg)
          .alt($r('app.media.default_head'))
          .backgroundColor(Color.Gray)
          .width(100)
          .height(100)
          .borderRadius(50)
          .margin({top:20,bottom:-10})

        Button('点击更换头像')
          .fontColor(Color.Gray)
          .fontSize(18)
          .backgroundColor(Color.White)
          .margin(20)

        List({}){
          ForEach(this.listData,(item:EditListInfo,index:number) =>{
            ListItem(){
              this.RouterItem(item,index+1)
            }
          }
          )
        }
        .layoutWeight(1)
        .alignListItem(ListItemAlign.Center)
        .width('100%')
      }
    }
    .width('100%')
    .height('100%')
  }

  @Builder
  RouterItem(r:EditListInfo,i:Number){
    Column(){
      Row(){
        Text(r.title)
          .fontSize(18)
          .fontColor(Color.Gray)
        Blank()

        Text(r.subTitle)
          .fontSize(16)
          .fontColor(Color.Gray)
          .padding({right:10})

        Image($r('app.media.mine_user_edit'))
          .width('12')
          .height('12')
      }
      .alignItems(VerticalAlign.Center)
      .width('100%')
      .padding(16)

      Divider()
        .width('90%')
    }
    .height(60)
    .width('100%')
    .onClick(()=>{
      if (i === 1){
        WDRouterRule.jumpWithPage(WDRouterPage.editUserNikeNamePage)
      }else if (i === 2){
        WDRouterRule.jumpWithPage(WDRouterPage.editUserIntroductionPage)
        // router.pushUrl({
        //   url:'pages/EditUserInstoductionPage',
        //   params:{pageNum:i}
        // })
      }else if (i === 3){
        this.dialogController.open()
      } else if (i === 4) {
        DatePickerDialog.show({
          start:new Date('1900-1-1'),
          end:new Date(),
          selected:new Date,
          lunar:false,
          // onAccept:(value:DatePickerResult) => {
          //
          // }
        })
      }else if(i === 5){
        TextPickerDialog.show({
          range:['男','女'],
          selected:0,
          // onAccept:(value:TextPickerResult) => {
          //
          // }
        })
      }
    })
  }

  getAccountOwnerInfo(){
    EditInfoViewModel.queryAccountOwnerInfo(1,getContext(this)).then((editModel) => {
      this.headerImg = editModel.userExtend.headPhotoUrl
      this.listData.push(...EditInfoViewModel.getEditListInfo(editModel))
    });
  }

  getAreaList(){
    EditInfoViewModel.getAreaList(getContext(this)).then((value) =>{
      this.dataSource.push(...value)
    })
  }
}