import { showToast } from './utils/feedback'
import { formatTime, arrRemoveObj,getTypeItem } from './utils/util'

// const baseUrl = "https://test-ding.g107.com/";//测试
const baseUrl = "https://ding.insys.g107.com/";//正式
var that;
var yearArr=[];
var year=formatTime(new Date()).year;
for(var i=2018;i<=year;i++){
  yearArr.push(i);
}
App({
  //自定义全局变量
  globalData: {
    showToast: showToast,//提示框
    arrRemoveObj: arrRemoveObj,//删除数组的某一项
    year: formatTime(new Date()).year,//当前年
    month: formatTime(new Date()).month,//当前月
    day: formatTime(new Date()).day,//当前日
    types:[],
    userData: '',
    // token:'',
    token:' eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiJodHRwczpcL1wvZGluZy5pbnN5cy5nMTA3LmNvbVwvYXBpXC9kaW5nXC9sb2dpbiIsImlhdCI6MTYwMDMxNDM0NywiZXhwIjoxNjAwOTE0MzQ3LCJuYmYiOjE2MDAzMTQzNDcsImp0aSI6IjgwMFJUS0J4RllIbnU5M3EiLCJzdWIiOjIsInBydiI6ImNhNjQ4OWQ1MGYyNDA3YTY3ODMwZTgwOTBkMDE0ODgzNTY4NTk2MmIiLCJyb2xlIjoiZW1wbG95ZWUifQ.E1RiQ6uMRICoL-2qDTeh5j5y-QLaUsGGs6PYLm-_1m8',
    ALIOSS_URL: 'https://integralsys.oss-cn-shenzhen.aliyuncs.com',
    imgHttpUrl:'https://intesys.cms.g107.com/integral.php/Api/get_signature',
    corpId:'',
    yearArr:yearArr,
  },
  //获取积分类型
  getTypes() {
    this.$get("api/integral/types", {}).then((res) => {
      this.globalData.types = res.data.data.list;
    })
  },
  //封装post
  $post(url, data={}) {
    const promise = new Promise(function (resolve, reject) {
      dd.httpRequest({
        url: baseUrl + url,
        method: 'POST',
        headers: {
          'Content-Type': 'application/x-www-form-urlencoded',
          'A-Token': that.globalData.token
        },
        data: data,
        dataType: 'json',
        success: function (res) {
          if (res.data.code == 1) {
            if (res.refresh_token && res.data.refresh_token != that.globalData.token) {
              that.globalData.token = res.data.refresh_token
            }
            resolve(res);
          } else if (res.data.code == 401) {
            that.globalData.showToast("登录已过期");
             reject(res);
          } else {
            that.globalData.showToast(res.data.msg);
             reject(res);
          }
        },
        fail: function (res) {
          reject(res);
        }
      });
    })
    return promise;
  },
  //封装get
  $get(url,data={},Accept) {
    const promise = new Promise(function (resolve, reject) {
      dd.showLoading();
      dd.httpRequest({
        url: baseUrl + url,
        method: 'GET',
        headers: {
          'Content-Type': 'application/x-www-form-urlencoded',
          'A-Token': that.globalData.token,
          'Accept': Accept ? Accept:''
        },
        data: data,
        dataType: 'json',
        success: function (res) {
          dd.hideLoading();
          if (res.data.code == 1) {
            if (res.data.refresh_token && res.data.refresh_token != that.globalData.token) {
              that.globalData.token = res.data.refresh_token
            }
            resolve(res);
          } else if (res.data.code == 401) {
            that.globalData.showToast("登录已过期");
            // reject(res);
          } else {
            that.globalData.showToast(res.data.msg)
            // reject(res);
          }
        },
        fail: function (res) {
          dd.hideLoading();
          reject(res);
        },
      });
    })
    return promise;
  },
  //免登
  login(corpId, callBack) {
    dd.getAuthCode({
      success: function (res) {
        that.$post('api/ding/login', { authCode: res.authCode, corpId: corpId }).then(res => {
          if (res.data.code == 1) {
            var { token, user } = res.data.data;
            if(user.is_official==1){
              that.globalData.token = token;
              that.globalData.userData = user;
              callBack(true);
            }else{
              callBack(false);
            }
          } else {
            that.globalData.showToast(res.msg)
          }
        }).catch(err=>{
          console.log(err);
        })
      },
      fail:function(err){
          console.log(err)
      }
    });
  },
  getTypesItem(id){
      return getTypeItem(this.globalData.types,id);
  },
  onLaunch(options) {
    that = this;
    that.getTypes();
    that.globalData.corpId = options.query.corpId;
  },
});
