EditUserNikeNamePage.ets 2.44 KB
import { CustomTitleUI } from '../reusable/CustomTitleUI'
import router from '@ohos.router'
import { editModel, editModelParams, WDEditDataModelType } from '../../model/EditInfoModel'
import EditInfoViewModel from '../../viewmodel/EditInfoViewModel';
// import { encryptMessage } from '../../../utils/cryptoUtil'
import { encryptMessage } from 'wdLogin/src/main/ets/utils/cryptoUtil'
@Entry
@Component
struct EditUserNikeNamePage {
  ///接收传参
  @State numCount: number = 0
  @State textColor : string = '#222222'
  @State nikeName: string = ''
  @State params:editModelParams =  router.getParams() as editModelParams;
  build() {
    Column(){
      CustomTitleUI({titleName:'修改昵称'})

      Row(){
        TextInput({placeholder:'请输入昵称',text:this.params.editContent})
          .width('100%')
          .maxLength(16)
          .height(50)
          .backgroundColor(Color.White)
          .onChange(value => {
            this.numCount = value.length
            if (this.numCount === 16) {
              this.textColor = '#ED2800'
            }else {
              this.textColor = '#222222'
            }
            this.nikeName = value
          })

        Text(this.numCount.toString() + '/16')
          .fontColor(this.textColor)
          .margin({left: -50})
      }
      .alignItems(VerticalAlign.Center)

      Divider()
        .margin(20)

      Text('1、账号中(头像、昵称等)不允许含有违禁违规内容;\n2、最多16个字,只能输入中文、数字、英文字母。')
        .fontSize(13)
        .padding(12)
        .fontColor(Color.Gray)

      Button('保存')
        .type(ButtonType.Normal)
        .width('90%')
        .backgroundColor('#ED2800')
        .borderRadius(5)
        .margin(30)
        .onClick(()=>{
          ///内部更新
          this.updateEditModel()
        })
    }
  }

   async  updateEditModel(){
     if (this.params.editContent === this.nikeName) {
       this.goBack()
       return
     }

     let currentUserInfo:editModel = new editModel()
     currentUserInfo.userName = await encryptMessage(this.nikeName);
     currentUserInfo.editDataType = WDEditDataModelType.WDEditDataModelType_nickname
     EditInfoViewModel.updateUserInfo(currentUserInfo).then(()=>{
       this.goBack()
     }).catch(()=>{
       this.goBack()
     })
  }

  goBack(){
    let params: editModelParams = {
      userName: this.nikeName
    }
    router.back({
      url:'',
      params:params
    })
  }
}