EditInfoViewModel.ets 5.71 KB

import { EditInfoModel, EditListInfo, editModel, editModelParams, WDEditDataModelType } from '../model/EditInfoModel';
import HashMap from '@ohos.util.HashMap';
import { HttpUrlUtils, ResponseDTO, WDHttp } from 'wdNetwork';
import { Logger, ResourcesUtils } from 'wdKit';
import { AreaListManageModel, AreaListModel } from '../model/AreaListModel';

const TAG = "EditInfoViewModel"

class EditInfoViewModel {
  private static instance: EditInfoViewModel;
   editListData:EditListInfo[] = []
  /**
   * 单例模式
   * @returns
   */
  public static getInstance(): EditInfoViewModel {
    if (!EditInfoViewModel.instance) {
      EditInfoViewModel.instance = new EditInfoViewModel();
    }
    return EditInfoViewModel.instance;
  }

  BaseGetRequest(requestUrl:string){
    let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders()
    requestUrl = HttpUrlUtils.HOST_SIT + requestUrl
    return WDHttp.get<ResponseDTO>(requestUrl,headers)
  }

  BasePOSTRequest(requestUrl:string){
    let headers: HashMap<string, string> = HttpUrlUtils.getCommonHeaders()
    requestUrl = HttpUrlUtils.HOST_SIT + requestUrl
    return WDHttp.post<ResponseDTO>(requestUrl,headers)
  }


  getEditListInfo(item?:editModel):EditListInfo[]{
    this.editListData = [
    new EditListInfo('昵称',item&&item.userName.length > 0?item.userName:'待完善'),
    new EditListInfo('简介',item&&item.userExtend.introduction.length > 0?item.userExtend.introduction:'待完善'),
    new EditListInfo('地区',item&&item.userExtend.city.length > 0?item.userExtend.city:'待完善'),
    new EditListInfo('生日',item&&item.userExtend.birthday.length > 0?item.userExtend.birthday:'待完善'),
    new EditListInfo('性别',item&&item.userExtend.sex.length > 0?(item.userExtend.sex=== '1'?'男':'女'):'待完善'),]
    return this.editListData
  }

  ///1普通用户
  queryAccountOwnerInfo(userType:number, context: Context):PromiseLike<editModel>{
    return new Promise(((success, error) => {
      this.BaseGetRequest(userType == 1?HttpUrlUtils.APPOINTMENT_QueryUserDetail_PATH:HttpUrlUtils.APPOINTMENT_AccountOwner_PATH).then((navResDTO:ResponseDTO) =>{
        if (navResDTO.code == 200) {
          // let editM = navResDTO.data as EditInfoModel
          // success(JSON.parse(navResDTO.data)
        }
        success(this.GetqueryAccountOwnerLocal(context))
      }).catch((error: Error) => {
        Logger.info('EditInfoViewModel','EditInfoViewModel','EditInfoViewModel')
        success(this.GetqueryAccountOwnerLocal(context))
      })
    }))
  }

  async GetqueryAccountOwnerLocal(context: Context): Promise<editModel> {
    Logger.info(TAG, `getBottomNavDataMock start`);
    let compRes: ResponseDTO<editModel> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<editModel>>(context,'userInfo.json');
    if (!compRes || !compRes.data) {
      Logger.info(TAG, `getAppointmentListDataLocal compRes  is empty`);
      return new editModel()
    }
    Logger.info(TAG, `getAppointmentListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
    return compRes.data
  }

  getAreaList(context: Context):PromiseLike<AreaListModel[]>{
    return new Promise((success, error) => {
      success(this.getAreaListLocal(context))
      // this.BaseGetRequest(HttpUrlUtils.APPOINTMENT_AccountOwner_PATH).then((navResDTO:ResponseDTO) =>{
      //   if (navResDTO.code == 200) {
      //     // let editM = navResDTO.data as EditInfoModel
      //     // success(JSON.parse(navResDTO.data)
      //   }
      //
      // }).catch((error: Error) => {
      //   Logger.info('EditInfoViewModel','EditInfoViewModel','EditInfoViewModel')
      //   success(this.GetqueryAccountOwnerLocal(context))
      //
      // })
    })
  }

  async getAreaListLocal(context: Context): Promise<AreaListModel[]> {
    Logger.info(TAG, `getBottomNavDataMock start`);
    let compRes: ResponseDTO<AreaListModel[]> | null = await ResourcesUtils.getResourcesJson<ResponseDTO<AreaListModel[]>>(context,'areaList_data.json');
    if (!compRes || !compRes.data) {
      Logger.info(TAG, `getAppointmentListDataLocal compRes  is empty`);
      return [] as AreaListModel[]
    }
    Logger.info(TAG, `getAppointmentListDataLocal getResourcesJsonSync compRes : ${JSON.stringify(compRes)}`);
    return compRes.data
  }

  getAreaListManageModel(item:AreaListModel):AreaListManageModel{
    return new AreaListManageModel(item.code,item.id,item.label,item.children)
  }

  // updateUserInfo(item?:editModel):Promise<ResponseDTO> {
  //   let params: editModelParams = {};
  //   if (item.editDataType === WDEditDataModelType.WDEditDataModelType_head) {
  //     // params =
  //   } else if (item.editDataType === WDEditDataModelType.WDEditDataModelType_nickname) {
  //     params = { userName: item.userName }
  //   } else if (item.editDataType === WDEditDataModelType.WDEditDataModelType_intro) {
  //     params = { introduction: item.userExtend.introduction }
  //   } else if (item.editDataType === WDEditDataModelType.WDEditDataModelType_sex) {
  //     params = { sex: item.userExtend.sex }
  //   } else if (item.editDataType === WDEditDataModelType.WDEditDataModelType_birthday) {
  //     params = { birthday: item.userExtend.birthday }
  //   } else if (item.editDataType === WDEditDataModelType.WDEditDataModelType_region) {
  //     params = { county: item.userExtend.county }
  //   } else {
  //   }
  //   return new Promise((success, error) => {
  //     this.BasePOSTRequest(HttpUrlUtils.APPOINTMENT_editUserDetail_PATH)
  //       .then((navResDTO: ResponseDTO) => {
  //         if (navResDTO.code == 200) {
  //         }
  //       })
  //       .catch((error: Error) => {
  //
  //       })
  //   })
  // }

}

const editInfoViewModel = EditInfoViewModel.getInstance();

export default editInfoViewModel as EditInfoViewModel