MineSettingDatasModel.ets 4.8 KB

import HashMap from '@ohos.util.HashMap';
import { ResponseDTO, WDHttp } from 'wdNetwork';
import { Logger } from 'wdKit';
import { MineMainSettingFunctionItem } from '../viewmodel/MineMainSettingFunctionItem';


const TAG = "MineSettingDatasModel"

/**
 * 我的设置页面 所有数据 获取封装类
 */
class MineSettingDatasModel{
  private static instance: MineSettingDatasModel;
  mainSettingData:Array<MineMainSettingFunctionItem> = []
  accountAndSecurityData:Array<MineMainSettingFunctionItem> = []

  private constructor() { }

  /**
   * 单例模式
   * @returns
   */
  public static getInstance(): MineSettingDatasModel {
    if (!MineSettingDatasModel.instance) {
      MineSettingDatasModel.instance = new MineSettingDatasModel();
    }
    return MineSettingDatasModel.instance;
  }




  /**
   * 评论 关注 收藏 等7个数据
   * 包含名字和图标
   */
   getMineMainSettingFunctionItemData():MineMainSettingFunctionItem[]{
    if(this.mainSettingData.length === 7){
      return this.mainSettingData
    }
    this.mainSettingData = []
    this.mainSettingData.push(new MineMainSettingFunctionItem(null, '账户与安全', '18888888888', 0, false))
    this.mainSettingData.push(new MineMainSettingFunctionItem(null, '接收推送', null, 1, false))
    this.mainSettingData.push(new MineMainSettingFunctionItem(null, '隐私设罝', null, 0, false))
    this.mainSettingData.push(new MineMainSettingFunctionItem(null, '仅WiFi网络加载图片', null, 1, false))
    this.mainSettingData.push(new MineMainSettingFunctionItem(null, 'WiFi网络情况下自动播放视频', null, 1, false))
    this.mainSettingData.push(new MineMainSettingFunctionItem(null, '开户播放器悬浮窗', null, 1, false))
    this.mainSettingData.push(new MineMainSettingFunctionItem(null, null, null, 2, null))
    this.mainSettingData.push(new MineMainSettingFunctionItem(null, '清除缓存', '32MB', 0, false))
    this.mainSettingData.push(new MineMainSettingFunctionItem(null, '去评分', null, 0, false))

    return this.mainSettingData
  }

  /**
   * 评论 关注 收藏 等7个数据
   * 包含名字和图标
   */
  getAccountAndSecuritySettingData():MineMainSettingFunctionItem[]{
    if(this.accountAndSecurityData.length === 7){
      return this.accountAndSecurityData
    }
    this.accountAndSecurityData = []
    this.accountAndSecurityData.push(new MineMainSettingFunctionItem(null, '更换手机号', '18888888888', 0, false))
    this.accountAndSecurityData.push(new MineMainSettingFunctionItem(null, '设置密码', null, 0, false))
    this.accountAndSecurityData.push(new MineMainSettingFunctionItem(null, null, null, 2, null))
    this.accountAndSecurityData.push(new MineMainSettingFunctionItem($r('app.media.account_qqicon'), '绑定QQ', '立即绑定', 0, false))
    this.accountAndSecurityData.push(new MineMainSettingFunctionItem($r('app.media.account_wechaticon'), '绑定微信', '立即绑定', 0, false))
    this.accountAndSecurityData.push(new MineMainSettingFunctionItem($r('app.media.account_weiboicon'), '绑定新浪微博', '立即绑定', 0, false))
    this.accountAndSecurityData.push(new MineMainSettingFunctionItem($r('app.media.account_appleicon'), 'Apple ID', null, 0, false))
    this.accountAndSecurityData.push(new MineMainSettingFunctionItem(null, null, null, 2, null))

    this.accountAndSecurityData.push(new MineMainSettingFunctionItem(null, '注销账号', null, 0, false))

    return this.accountAndSecurityData
  }



  //  网络请求设置数据
  fetchAppointmentListData(pageSize:string,pageNum:string) {
    // let url = HttpUrlUtils.getAppointmentListDataUrl()+ `?pageSize=${pageSize}&pageNum=${pageNum}`
    // let headers: HashMap<string, string> = HttpUrlUtils.getYcgCommonHeaders();
    // return WDHttp.get<ResponseDTO<MineAppointmentListItem>>(url, headers)
  };

  // getAppointmentListData(pageSize:string,pageNum:string): Promise<MineAppointmentListItem> {
  //   return new Promise<MineAppointmentListItem>((success, error) => {
  //     Logger.info(TAG, `getAppointmentList start`);
  //     this.fetchAppointmentListData(pageSize,pageNum).then((navResDTO: ResponseDTO<MineAppointmentListItem>) => {
  //       if (!navResDTO) {
  //         error("page data invalid");
  //         return
  //       }
  //       Logger.info(TAG, "getAppointmentList then,AppointmentResDTO.timeStamp:" + navResDTO.timestamp);
  //       let navigationBean = navResDTO.data
  //       success(navigationBean);
  //     }).catch((err: Error) => {
  //       Logger.error(TAG, `fetchAppointmentListDataApi catch, error.name : ${err.name},  error.message:${err.message}`);
  //       error(err);
  //     })
  //   })
  // }

}

const mineSettingDatasModel = MineSettingDatasModel.getInstance()
export default mineSettingDatasModel as MineSettingDatasModel
// export default MineMainSettingFunctionItem as MineMainSettingFunctionItem