// let ajaxUrl = "https://test.renminshitang.com.cn/daotian/api_dev";
// let ajaxUrl = "http://192.168.3.83:8001";
let ajaxUrl = "https://daotian.matripe.com.cn";
let data = {
  ajaxUrl: ajaxUrl,
  Get ($url = '', $parmas = {}, callback = () => { }, failback = () => { }) {
    let that = this,
      params = {};
    let promise = new Promise((resolve, reject) => {
      params = $parmas;
      resolve();
    });
    promise.then(() => {
      that.postData($url, params, callback, failback, 'GET');
    }).catch();
  },
  Post ($url = '', $parmas = {}, callback = () => { }, failback = () => { }) {
    let that = this,
      params = {};
    let promise = new Promise((resolve, reject) => {
      params = $parmas;
      resolve();
    });
    promise.then(() => {
      that.postData($url, params, callback, failback, 'POST');
    }).catch();
  },
  Put ($url = '', $parmas = {}, callback = () => { }, failback = () => { }) {
    let that = this,
      params = {};
    let promise = new Promise((resolve, reject) => {
      params = $parmas;
      resolve();
    });
    promise.then(() => {
      that.postData($url, params, callback, failback, 'PUT');
    }).catch();
  },

  setPublicParams () {
    let that = this,
      params = {};
    let uuid_new = "";
    // #ifdef APP-PLUS
    // let mainActivity = plus.android.runtimeMainActivity();
    // let Settings = plus.android.importClass("android.provider.Settings");
    if (uni.getSystemInfoSync().osName == "android") {
      uuid_new = "from_android_applyAssistantUniapp"
    } else {
      uuid_new = "from_ios_applyAssistantUniapp"
    }
    // let uuid = Settings.Secure.getString(mainActivity.getContentResolver(),Settings.Secure.ANDROID_ID);
    // #endif
    params = {
      // #ifdef APP-PLUS
      'g-open-env': 'APP-PLUS',
      appId: uuid_new,
      // 请求来源标识 1.小程序 2.app 3.网页
      appClassify: 2,
      appName: encodeURIComponent('报名助手')
      // #endif
      // #ifdef H5
      'g-open-env': 'H5',
      appId: '',
      appClassify: 3,
      appName: encodeURIComponent('报名助手')
      // #endif
      // #ifdef MP-WEIXIN
      'g-open-env': 'MP-MINI',
      appId: uni.getAccountInfoSync().miniProgram.appId,
      appClassify: 1,
      appName: encodeURIComponent('报名助手')
      // #endif
      // #ifdef MP-TOUTIAO
      'g-open-env': 'MP-TOUTIAO',
      appId: tt.getEnvInfoSync().microapp.appId,
      subAppId: uni.getStorageSync('subAppId'),
      appClassify: 1,
      appName: encodeURIComponent('报名助手')
      // #endif
      // #ifdef MP-KUAISHOU
      'g-open-env': 'MP-KUAISHOU',
      appId: "",
      appClassify: 1,
      appName: encodeURIComponent('报名助手')
      // #endif
    }
    return params
  },
  // 发送请求
  postData ($url = '', $parmas = {}, callback = () => { }, failback = () => { }, $method) {
    let that = this,
      $header = {};
    if (uni.getStorageSync("apply-token")) {
      $header.Authorization = 'Bearer ' + uni.getStorageSync("apply-token");
    }
    if (uni.getStorageSync("apply-agencyId")) {
      // console.log('uni.getStorageSync("apply-agencyId")', uni.getStorageSync("apply-agencyId"));
      $header.Agencyid = uni.getStorageSync("apply-agencyId");
    }
    if ($parmas == '') {
      $parmas = {};
    }
    if ($parmas.formdata || $method == "POST" || $method == "PUT") {
      $header['content-type'] = 'application/x-www-form-urlencoded; charset=UTF-8';
    }
    for (const k in $parmas) {
      if ($parmas[k] == undefined || $parmas[k] == 'undefined') {
        $parmas[k] = ''
      }
    }
    console.log("公共参数，+++++", Object.assign($parmas, that.setPublicParams()));
    uni.request({
      url: ajaxUrl + $url,
      data: Object.assign($parmas, that.setPublicParams()),
      header: Object.assign($header, that.setPublicParams()),
      method: $method,
      success: (res) => {
        // console.log('测试报错123123123123123123',res);
        // console.log('测试报错123123123123123123$url',$url);
        let resData = res.data;
        if (resData.status == 200) {// 正常
          callback(resData.data, resData.msg);
        } else if (resData.status == 9999) {// 登录过期或者身份变动等需要登录的场景
          uni.showToast({
            title: resData.msg,
            icon: "none"
          });
          failback(resData);
          setTimeout(() => {
            uni.reLaunch({
              url: '/pages/login/index?path=/' + that.getPathCopy().path + '&level=' + that.getPathCopy().level
            });
          }, 1500);
        } else if (resData.status == 500 || resData.status == 502) {// 某种原因导致接口提示该状态码
          // if (resData.msg == '系统异常，请稍后') {
          //   uni.reLaunch({
          //     url: '/root/other/error'
          //   });
          // } else {
          uni.showToast({
            title: resData.msg,
            icon: "none"
          });
          failback(resData.msg);
          // }
        } else if (resData.status == 2002) {
          uni.showToast({
            title:'已切换团队，需要重新登录',
            icon: "none"
          });
          setTimeout(() => {
            uni.reLaunch({
              url: '/pages/login/index?path=/pages/home/index&level=' + that.getPathCopy().level
            });
          }, 1500);
        } else {// 其他异常
          uni.showToast({
            title: resData.msg,
            icon: "none"
          });
          failback(resData.msg);
        }
      },
      fail (error) {
        uni.showToast({
          title: error.errMsg,
          icon: "none"
        })
        failback(error);
      }
    });
  },

  // 头像上传
  uploadFile ($file, callback = () => { }) {
    let that = this;
    uni.uploadFile({
      url: ajaxUrl + '/user/changeUserImgsrc',
      filePath: $file,
      name: 'uploadFile',
      header: Object.assign({
        Authorization: 'Bearer ' + uni.getStorageSync("apply-token")
      }, that.setPublicParams()),
      formData: that.setPublicParams(),
      success: (uploadFileRes) => {
        callback(JSON.parse(uploadFileRes.data).data.url);
      }
    });
  },
  /* 获取当前path
   */
  getPathCopy () {
    const pages = getCurrentPages();
    if (pages.length > 0) {
      let _path = pages[pages.length - 1].route;
      return {
        path: _path,
        level: _path.slice(0, 4)
      }
    } else {
      return {
        path: '',
        level: ''
      };
    }
  },
};

export default data;