let config = require("../../config/config.js");
let Http = require("../../utils/HttpBasics");
let Util = require("../../utils/util");
let app = getApp();
Page({
  data: {
    park: null,
    carList: [],
    payList: [],
    addCar: null,
    tcq: 2,
    flag: "",
    extraData: {},
    desc: '',
    title: '',
    indicatorDots: true,
    autoplay: false,
    interval: 5000,
    duration: 1000,
    current: 0,
    stopFees: {},
    scroll:true,
    canIUse: wx.canIUse("navigator")
  },
  /**
   * 车牌轮播滑动
   */
  onSlideChangeEnd: function(e) {
    var that = this;
    /**
     * 获得当前的车牌号码
     */
    var listCardNum = (that.data.carList)[e.detail.current].carNumber;
    that.setData({
      listCardNum: listCardNum
    });
    /**
     * 获得停车费用
     */
    if(that.data.scroll){
      that.getStopFee(listCardNum);
    }
  },
  gotomange: function() {
    wx.navigateTo({
      url: '/pages/managelicenseplate/managelicenseplate',
    })
  },
  bindfail:function(res){
    console.log(res)
  },
  gotoetcp:function(){
    console.log(this.data.extraData)
    // wx.navigateToMiniProgram({
    //   appId:'wx192b7d2e8dcbefd0',
    //   extraData: this.data.extraData,
    //   envVersion:'release',
    //   path:"pages/main/main",
    // })
    wx.navigateToMiniProgram({
      appId:'wxc07f9d67923d676d',
      extraData: this.data.extraData,
      envVersion:'release',
      path: "pages/main/main",
    })
  },
  showquan: function() {
    wx.navigateTo({
      url: '/pages/passCar/couponList/couponList',
    })
  },
  gotodetail: function(e) {
    wx.showModal({
      title: '缴费规则',
      content: e.target.dataset.rule,
      showCancel: false,
    })
  },
  onShow: function(options) {
    var that = this;
    if (app.globalData.token) {
      that.getList();
      that.init();
    }else{
      that.init();
    }    
    /**
     * 只有用户选择了优惠券
     * 才会进行券和车牌的绑定
     */
    if (wx.getStorageSync("chosed") && that.data.quanid) {
      that.bindCoupon(that.data.quanid);
      wx.setStorage({
        key: 'chosed',
        data: '',
      })
    };
    if (app.globalData.token) {
      that.initUsrCarList();
    }
    
    if (that.data.addCar) {
      // 绑车牌
      if (app.globalData.carLogin) {
        that.bindCar(that.data.addCar);
      } else {
        that.bindCar(that.data.addCar);
      }
      that.setData({
        addCar: null
      });
    }
  },
  onLoad: function(options) {
    var that = this;
    /**
     * 获得分享小程序的
     * title 
     * desc
     */
    Http.get({
        url: config.api.getWeapNote,
        data: {
          appId: config.weapp.AppId,
        }
      })
      .then(res => {
        let weapNote = JSON.parse(res.data.weapNote);
        that.setData({
          desc: weapNote.carpage.desc,
          title: weapNote.carpage.title
        })
      })
      .catch(err => {
        console.log(err);
      })
    // 登录
    var scene = decodeURIComponent(options.scene);
    that.setData({
      scene: scene
    });
    if (app.globalData.token){}else{
      app.getLocation();
      that.userLogin()
    }
  },
  /**
  * 用户登录
  */
  userLogin: function () {
    var that = this;
    // 登录
    wx.login({
      success: ({
        code
      }) => {
        wx.getSystemInfo({
          success: function (res) {
            that.setData({
              systemInfo: JSON.stringify(res)
            })
          }
        })
        var usrdata = {
          appId: config.weapp.AppId,
          code: code,
          sceneAddress: app.globalData.sceneAddress,
          scene: that.data.scene,
          systemInfo: that.data.systemInfo
        };
        if (app.globalData.locationInfo) {
          usrdata = {
            appId: config.weapp.AppId,
            code: code,
            sceneAddress: app.globalData.sceneAddress,
            latitude: "" + app.globalData.locationInfo.latitude,
            longitude: "" + app.globalData.locationInfo.longitude,
            scene: that.data.scene,
            systemInfo: that.data.systemInfo
          };
        }
        Http.post({
          url: config.api.login,
          data: usrdata
        })
          .then(res => {
            app.globalData.token = res.data.token;
            Http.setToken(res.data.token);
            that.checkUserCarStatus();
            that.getUserInfo();
            that.getList();
            that.init();
            that.initUsrCarList();
            return Http.post({
              url: config.api.checkUserStatus,
              data: {}
            });
          })
          .then(res => {
          })
          .catch(err => {
            if (err.code == 11004) {
              // 用户昵称未授权
              wx.redirectTo({
                url: "/pages/getuserinfo/index"
              });
            }else{
              wx.showModal({
                title: '提示',
                content: err.errMsg,
                showCancel:false
              })
            }
          });
      }
    });
  },
  /**
     * 检查用户是否有车
     */
  checkUserCarStatus: function () {
    var that = this;
    Http.get({
      url: config.api.userCarCount,
      data: {}
    }).then(res => {
      if (res.data > 0) {
        // 用户名下有车
        app.globalData.phone = res.data.phone;
        app.globalData.supportCar = true;
        // 共同登录
        that.userCarLogin();
      }
    })
    .catch(err => {
    })
  },
  /**
     * 获取用户信息
     */
  getUserInfo: function () {
    // 获取用户信息
    wx.getSetting({
      success: res => {
        if (res.authSetting["scope.userInfo"]) {
          // 已经授权，可以直接调用 getUserInfo 获取头像昵称，不会弹框
          wx.getUserInfo({
            success: res => {
              // 可以将 res 发送给后台解码出 unionId
            }
          });
        }
      }
    })
  },
  jumpToAdd: function() {
    wx.navigateTo({
      url: `/pages/addPark/addPark?flags=managepalte`
    });
  },
  passc: function() {
    wx.navigateTo({
      url: '/pages/ques/ques',
    })
  },


  /**
   * 券绑定车牌
   */
  bindCoupon: function(quanid) {
    var that = this;
    /**
     * etcp
     */
    var etcpData = {
      etcpToken: app.globalData.etcpToken,
      carNumber: that.data.listCardNum,
      couponOrderId: quanid
    };
    /**
     * 停简单
     */
    var tjdData = {
      carNumber: that.data.listCardNum
    };
    var postCouponData = app.globalData.parkVendor == 1 ? etcpData : tjdData;
    Http.post({
        url: config.api.getCarCoupon,
        data: postCouponData
      })
      .then(res => {
        that.initUsrCarList();
      })
      .catch(err => {
        wx.showToast({
          title: err.message,
          icon: 'none',
          duration: 2000,
          mask: false
        });
      })
  },
  /**
   * 选择优惠券
   */
  gotoquan: function() {
    let that = this;
    if (that.data.quanid) {
      wx.navigateTo({
        url: `/pages/passCar/choicecoupon/choicecoupon?quanid=${that.data.quanid}`,
      })
    } else {
      wx.navigateTo({
        url: '/pages/passCar/choicecoupon/choicecoupon',
      })
    }

  },

  //获取名下停车券列表
  getList() {
    var that = this;
    Http.get({
      url: config.api.couponOrderCarList + "?type=5&couponOrderStatus=0",
      data: {
        pageNum: 1,
        pageSize: 8,
        couponOrderStatus: 0
      }
    }).then(res => {
      that.setData({
        couponList: res.data.list
      });
    })
    .catch(err => {
     console.log(err)
    })
  },


  /**
   * 共同登录
   */
  init: function(carNumber) {
    var that = this;
    app.parkInitCallback = token => {
      that.initPark();
      that.getParkStatus();
      if (!app.globalData.carLogin) {
        /**
         * 判断是否授权手机号
         */
        Http.post({
            url: config.api.checkPhoneStatus,
            data: {}
          })
          .then(res => {
            Http.post({
              url: config.api.carInit,
              data: {
                phone: app.globalData.phone
              }
            }).then(res => {
              app.globalData.carLogin = true;
              app.globalData.parkVendor = res.data.vendor;
              if (res.data.token) {
                app.globalData.etcpToken = res.data.token;
              }
              /**
               * 获得停车费用
               */
              that.initUsrCarList("flags");
            });
          })
          .catch(err => {
            if (err.code == 11005) {
              // 用户手机未授权
              /**
               * 将值传到用户手机号授权的页面
               *
               */
              wx.redirectTo({
                url: "/pages/getphoneInfo/index"
              });
            } else if (err.code == 11006) {
              // 用户手机已加密
              wx.redirectTo({
                url: "/pages/phoneinput/phoneinput"
              });
            }else{
              wx.showToast({
                title: err.errMsg,
                icon: 'none',
                duration: 2000,
                mask: false
              });
            }
          })
      }
    };
    if (app.globalData.token && app.globalData.token != null) {
      app.parkInitCallback(app.globalData.token);
    }
  },

  bindCar: function (carNum) {
    var that = this;
    // ETCP
    var etcpData = {
      etcpToken: app.globalData.etcpToken,
      carNumber: carNum
    };
    var tjdData = {
      carNumber: carNum
    };
    var postData = app.globalData.parkVendor == 1 ? etcpData : tjdData;
    Http.post({
      url: config.api.bindCar,
      data: postData
    })
      .then(res => {
        that.setData({
          addCar: null
        });
        that.initUsrCarList();
        wx.showModal({
          title: "提示",
          showCancel: false,
          content: "绑车牌成功！",
          success: function () { }
        });
      })
      .catch(error => {
        wx.showModal({
          title: "提示",
          showCancel: false,
          content: error.data.message,
          success: function () { }
        });
      });
  },
  /**
   * 车场信息获取
   */
  initPark: function() {
    var that = this;
    Http.get({
      url: config.api.getParkInfo,
      data: {}
    })
    .then(res => {
      that.setData({
        park: res.data
      })
    })
    .catch(err => {
      console.log(err);
      // wx.showToast({
      //   title: err.message,
      //   icon: 'none',
      //   duration: 2000,
      //   mask: false
      // });
    })
  },

  /**
   * 车场状态获取
   */
  getParkStatus: function() {
    var that = this;
    Http.get({
      url: config.api.getParkStatus,
    })
    .then(res => {
    })
    .catch(err => {
    })
  },


  /**
   * 绑定车获取
   */
  initUsrCarList: function(flag) {
    var that = this;
    Http.get({
      url: config.api.getUserCarList,
      data: {}
    }).then(res => {
      that.setData({
        carList: res.data
      });
      /**
       * flag ==flags 
       * 表示从首页onShow进来的
       */
      if (flag == "flags" && res.data.length > 0) {
        var listCardNum = res.data[0].carNumber;
        that.setData({
          listCardNum: listCardNum
        })
        /**
         * 获得停车费用
         */
        that.getStopFee(listCardNum);
      }
    })
    .catch(err => {
      wx.showToast({
        title: err.message,
        icon: 'none',
        duration: 2000,
        mask: false
      });
    })
  },

  /**
   * 获得停车费用修改
   */
  getStopFee: function(carNumber) {
    let that = this;
    let postData =
      app.globalData.parkVendor == 1 ? {
        etcpToken: app.globalData.etcpToken,
        carNumber: carNumber
      } : {
        carNumber: carNumber,
        outCarId: outCarId
      };
    console.log(postData)
    Http.post({
        url: config.api.getCarStopFee,
        data: postData
      })
      .then(res => {
        var extraDataStr = {
          params: {
            token: app.globalData.etcpToken,
            syncId: res.data.orderId,
            payType: 6, // 小程序支付
            CarNumber: carNumber,
            returnUrl: "https://admin.malls.iformall.com/api/carCallback/etcpPaidCallback",
            source: "FUMAO-001",
            actionId: "1" //操作ID，1:小程序支付
          }
        };
        that.setData({
          extraData: extraDataStr,
          stopFees: res.data,
          timecha: Util.timecha(res.data.exitTime, res.data.entranceTime)          
        });
        that.setData({
          scroll:true
        })           
      })
      .catch(error => {
        console.log(error)
        wx.showModal({
          title: '提示',
          content: error.message,
          showCancel: false
        })
        that.setData({
          stopFees: {},
          scroll: true
        })
      });
  },

  /**
   * 下拉刷新
   */
  onPullDownRefresh: function(e) {
    let that = this;
    that.initUsrCarList("flags");
    wx.stopPullDownRefresh();
  },
  // 用户点击右上角分享
  onShareAppMessage: function() {
    return {
      title: this.data.title,
      desc: this.data.desc,
      success: function(res) {
        wx.showToast({
          title: "分享成功",
          duration: 1000,
          icon: "success"
        });
      }
    }
  }
});