var Towxml = require('/assets/libs/towxml/main.js');
App({
  //请不要修改 /addons/cms/wxapp.这部分,只允许修改域名部分
  //请注意小程序只支持https
  //apiUrl: 'https://demo.fastadmin.net/addons/cms/wxapp.',
  apiUrl: 'https://tzcs.njrenzhou.cn/addons/cms/wxapp.',
  apiCommonUrl: 'https://tzcs.njrenzhou.cn/',
  si: 0,
  //小程序启动
  onLaunch: function() {
    //检测授权
    // this.check(function(ret) {});

    // var that = this;
    // that.request('/common/init', {}, function(data, ret) {
    //   that.globalData.config = data.config;
    //   that.globalData.indexTabList = data.indexTabList;
    //   that.globalData.newsTabList = data.newsTabList;
    //   that.globalData.productTabList = data.productTabList;

    // }, function(data, ret) {
    //   that.error(ret.msg);
    // });
  },
  //投票
  vote: function(event, cb) {
    var that = this;
    var id = event.currentTarget.dataset.id;
    var type = event.currentTarget.dataset.type;
    var vote = wx.getStorageSync("vote") || [];
    if (vote.indexOf(id) > -1) {
      that.info("你已经发表过意见了,请勿重复操作");
      return;
    }
    vote.push(id);
    wx.setStorageSync("vote", vote);
    this.request('/archives/vote', {
      id: id,
      type: type
    }, function(data, ret) {
      typeof cb == "function" && cb(data);
    }, function(data, ret) {
      that.error(ret.msg); 
    });
  },
  //判断是否登录
  // check: function(cb) {
  //   var that = this;
  //   if (this.globalData.userInfo) {
  //     wx.setStorageSync("userInfo", this.globalData.userInfo);
  //     typeof cb == "function" && cb(this.globalData.userInfo);
  //   } else {
  //     wx.getSetting({
  //       success: function(res) {
  //         if (res.authSetting['scope.userInfo']) {
  //           // 已经授权,可以直接调用 getUserInfo 获取头像昵称
  //           wx.getUserProfile({
  //             withCredentials: true,
  //             success: function(res) {
               
  //               that.login(cb);
  //             },
  //             fail: function() {
  //               that.showLoginModal(cb);
  //             }
  //           });
  //         } else {
  //           that.showLoginModal(cb);
  //         }
  //       },
  //       fail: function() {
  //         //that.showLoginModal(cb);
  //       }
  //     });
  //     //this.login(cb);
  //   }
  // },
  // getUserInfo:function(){
  //   return new Promise((resolve,reject) => {
  //       wx.getUserProfile({
  //           desc: '用户登录', // 声明获取用户个人信息后的用途,后续会展示在弹窗中,请谨慎填写
  //           success: (res) => {
  //             resolve(res)
  //         },
  //         fail:(err) => {
  //           reject(err)
  //         }
  //     })
  //   })
  // },
  // getLogin:function(){
  //   return new Promise((resolve,reject) => {
  //     wx.login({
  //       success (res) {
  //         resolve(res)
  //     },
  //       fail: (err) => {
  //         reject(err)
  //       }
  //     })
  //   })
  // },
  //登录
  // login: function(cb) {
  //   var that = this;
  //   var token = wx.getStorageSync('token') || '';
  //   let userRes = this.getUserInfo()
  //   let loginRes = this.getLogin()
  //   Promise.all([userRes,loginRes]).then((res)=>{
  //     console.log(res)
  //     wx.request({
  //       url: that.apiUrl + 'user/login',
  //       data: {
  //         code: res[1].code,
  //         rawData: res[0].rawData,
  //         token: token
  //       },
  //       method: 'post',
  //       header: {
  //         "Content-Type": "application/x-www-form-urlencoded",
  //       },
  //       success: function(lres) {
  //         var response = lres.data
  //         if (response.code == 1) {
  //           that.globalData.userInfo = response.data.userInfo;
  //           wx.setStorageSync("userInfo", response.data.userInfo);
  //           wx.setStorageSync('token', response.data.userInfo.token);
  //           typeof cb == "function" && cb(that.globalData.userInfo);
  //         }
  //       }
  //     });
  //   })
  //   //调用登录接口
  //   // wx.login({
  //   //   success: function(res) {
  //   //     if (res.code) {
  //   //       console.log(res,"vvvv")
  //   //       //发起网络请求
  //   //       wx.getUserProfile({
  //   //         desc: '获取你的昵称、头像、地区及性别',
  //   //         success: function(ures) {
  //   //           console.log(ures,"==--")
  //   //           wx.request({
  //   //             url: that.apiUrl + 'user/login',
  //   //             data: {
  //   //               code: res.code,
  //   //               rawData: ures.rawData,
  //   //               token: token
  //   //             },
  //   //             method: 'post',
  //   //             header: {
  //   //               "Content-Type": "application/x-www-form-urlencoded",
  //   //             },
  //   //             success: function(lres) {
  //   //               var response = lres.data
  //   //               if (response.code == 1) {
  //   //                 that.globalData.userInfo = response.data.userInfo;
  //   //                 wx.setStorageSync("userInfo", response.data.userInfo);
  //   //                 wx.setStorageSync('token', response.data.userInfo.token);
  //   //                 typeof cb == "function" && cb(that.globalData.userInfo);
  //   //               }
  //   //             }
  //   //           });
  //   //         },
  //   //         fail: function(res) {
  //   //           console.log("iio",res)
  //   //           // that.showLoginModal(cb);
  //   //         }
  //   //       });
  //   //     } else {
  //   //       that.showLoginModal(cb);
  //   //     }
  //   //   }
  //   // });
  // },
  // //显示登录或授权提示
  // showLoginModal: function(cb) { 
  //   var that = this;
  //   if (!that.globalData.userInfo) {
  //     //获取用户信息
  //     wx.getSetting({
  //       success: function(sres) {
  //         if (sres.authSetting['scope.userInfo']) {
  //           wx.showModal({
  //             title: '温馨提示',
  //             content: '当前无法获取到你的个人信息,部分操作可能受到限制',
  //             confirmText: "重新登录",
  //             cancelText: "暂不登录",
  //             success: function(res) {
  //               if (res.confirm) {
                 
  //                 that.login(cb);
  //               } else {
  //                 console.log('用户暂不登录');
  //               }
  //             }
  //           });
  //         } else {
  //           wx.showModal({
  //             title: '温馨提示',
  //             content: '当前无法获取到你的个人信息,部分操作可能受到限制',
  //             confirmText: "去授权",
  //             cancelText: "暂不授权",
  //             success: function(res) {
  //               if (res.confirm) {
  //                 wx.navigateTo({
  //                   //url: '/page/my/setting?type=getuserinfo',
  //                   url: '/page/login/login',
  //                 });
  //                 return false;
  //                 wx.openSetting({
  //                   success: function(sres) {
  //                     that.check(cb);
  //                   }
  //                 });
  //               } else {
  //                 console.log('用户暂不授权');
  //               }
  //             }
  //           });
  //         }
  //       }
  //     });
  //   } else {
  //     typeof cb == "function" && cb(that.globalData.userInfo);
  //   }
  // },
  //发起网络请求
  request: function(url, data, success, error,type=1) {
    var that = this;
    if (typeof data == 'function') {
      success = data;
      error = success;
      data = {};
    }
    if (this.globalData.userInfo) {
      data['user_id'] = this.globalData.userInfo.id;
      data['token'] = this.globalData.userInfo.token;
    }
    //移除最前的/
    while (url.charAt(0) === '/')
      url = url.slice(1);
    this.loading(true);
    let cookie = wx.getStorageSync('cookieKey');
    let header = {
      "Content-Type": "application/x-www-form-urlencoded"
    };
    if (cookie) {
      header.Cookie = cookie;
    }
    if (this.globalData.__token__) {
      data.__token__ = this.globalData.__token__;
    }
    data._ajax = 1;
    if(type == 1){
      var dealurl = this.apiUrl + url;
    }else{
      var dealurl = this.apiCommonUrl + url;
    }
    wx.request({
      url: dealurl,
      data: data,
      method: 'post',
      header: header,
      success: function(res) {
        that.loading(false);
        var code, msg, json;
        if (res && res.header) {
          if (res.header['Set-Cookie']) {
            wx.setStorageSync('cookieKey', res.header['Set-Cookie']); //保存Cookie到Storage
          }
          if (res.header['__token__']) {
            that.globalData.__token__ = res.header['__token__'];
          }
        }
        if (res.statusCode === 200) {
          json = res.data;
          if (json.code === 1) {
            typeof success === 'function' && success(json.data, json);
          } else {
            typeof error === 'function' && error(json.data, json);
          }
        } else {
          json = typeof res.data === 'object' ? res.data : {
            code: 0,
            msg: '发生一个未知错误',
            data: null
          };
          typeof error === 'function' && error(json.data, json);
        }
      },
      fail: function(res) {
        that.loading(false);
        console.log("fail:", res);
        typeof error === 'function' && error(null, {
          code: 0,
          msg: '',
          data: null
        });
      }
    });
  },
  //构造CDN地址
  cdnurl: function(url) {
    return url.toString().match(/^https?:\/\/(.*)/i) ? url : this.globalData.config.upload.cdnurl + url;
  },
  //文本提示
  info: function(msg, cb) {
    wx.showToast({
      title: msg,
      icon: 'none',
      duration: 2000,
      complete: function() {
        typeof cb == "function" && cb();
      }
    });
  },
  //成功提示
  success: function(msg, cb) {
    wx.showToast({
      title: msg,
      icon: 'success',
      image: '/assets/images/ok.png',
      duration: 2000,
      complete: function() {
        typeof cb == "function" && cb();
      }
    });
  },
  //错误提示
  error: function(msg, cb) {
    wx.showToast({
      title: msg,
      icon: 'none',
      // image: '/assets/images/error.png',
      duration: 2000,
      complete: function() {
        typeof cb == "function" && cb();
      }
    });
  },
  //警告提示
  warning: function(msg, cb) {
    wx.showToast({
      title: msg,
      image: '/assets/images/warning.png',
      duration: 2000,
      complete: function() {
        typeof cb == "function" && cb();
      }
    });
  },
  //Loading
  loading: function(msg) {
    if (typeof msg == 'boolean') {
      if (!msg) {
        if (!this.si) {
          return;
        }
        clearTimeout(this.si);
          wx.hideLoading({
          complete:()=>{
            // your code
          }
        })
        return;
      }
    }
    msg = typeof msg == 'undefined' || typeof msg == 'boolean' ? '加载中' : msg;
    this.globalData.loading = true;
    if (this.si) {
      return;
    }
    this.si = setTimeout(function() {
      wx.showLoading({
        title: msg
      });
    }, 300);

  },
  // towxml: new Towxml(),
  //全局信息
  globalData: {
    userInfo: null,
    config: null,
    token: '',
    indexTabList: [],
    newsTabList: [],
    productTabList: [],
    apiCommonUrl:'https://tzcs.njrenzhou.cn/'
  }
})