// packageD/member/myOrder/refund/components/editAddressPop/editAddressPop.js
const app = getApp();
Component({
  /**
   * 组件的属性列表
   */
  properties: {

  },

  /**
   * 组件的初始数据
   */
  data: {
    popShow:false,
    username: "",
    mobile: "",
    address: "",

    province: "",
    city: "",
    district: "",
    street: "",

    addressName: "",
    districtVal: '',
    strShow: false,
    provinceData: [],
    pickerValue: [0, 0, 0],

    province_id:0,
    city_id:0,
    district_id:0,
    street_id:0
  },

  lifetimes:{
    attached(){
      this._initAddressInfo();
    }
  },

  /**
   * 组件的方法列表
   */
  methods: {
    //关闭增加地址
    setPopShow(){
      this.setData({
        popShow:!this.data.popShow
      });
    },
    setFormData(obj){
      let changeData={};
      changeData.street = "";
      changeData.districtVal = "";

      changeData.addressName = obj.province + " " + obj.city + " " + obj.district;

      changeData.province = obj.province;
      changeData.city = obj.city;
      changeData.district = obj.district;

      changeData.street = obj.street;
      changeData.address = obj.address;

      changeData.username = obj.realname;
      changeData.mobile = obj.mobile;

      changeData.province_id = obj.province_id;
      changeData.city_id = obj.city_id;
      changeData.district_id = obj.district_id;
      changeData.street_id = obj.street_id;
      this.setData(changeData);
      this.callback();
      this._getStreet(obj.district_id);
    },
    //地址选择器数据初始化
    _initAddressInfo: function () {
      var that = this;
      var _keyName = 'provinceData';
      wx.getStorage({
        key: _keyName,
        success: function (res) {
          console.log("地址信息准备就绪");
          that._getProvinceData();
        },
        fail: function (res) {
          console.log("省fail");
          app._getNetWork({
            url: app.getNetAddresss("member.member-address.address"),
            success: function (res) {
              var response = res.data;
              var province = response.data.province;
              var city = response.data.city;
              var district = response.data.district;
              wx.setStorage({
                key: 'provinceData',
                data: province
              });
              wx.setStorage({
                key: 'cityData',
                data: city
              });
              wx.setStorage({
                key: 'districtData',
                data: district
              });
              that._initAddressInfo();
            },
            fail: function (res) {},
            state: true
          });
        }
      });
    },
    // 读取省key
    _getProvinceData: function () {
      var that = this;
      var _keyName = 'provinceData';
      wx.getStorage({
        key: _keyName,
        success: function (res) {
          // console.log("省读取成功", res.data);
          that.setData({
            provinceData: res.data
          });
          that.setData({
            "selectAddressData[0].name": res.data[that.data.pickerValue[0]].areaname,
            "selectAddressData[0].id": res.data[that.data.pickerValue[0]].id,
            "selectAddressData[0].index": that.data.pickerValue[0]
          });
          that._getCityData();
        }
      });
    },
    // 读取城市key，筛选城市data
    _getCityData: function () {
      var _data = this.data.selectAddressData[0];
      // console.log("城市", "_data", _data);
      var that = this;
      var _keyName = 'cityData';
      wx.getStorage({
        key: _keyName,
        success: function (res) {
          // console.log("城市读取成功", res);

          var _json = [];
          for (var i = 0; i < res.data.length; i++) {
            if (res.data[i].parentid == _data.id) {
              _json.push(res.data[i]);
            }
          }
          // console.log("城市数据筛选", _json);
          that.setData({
            cityData: _json
          });
          that.setData({
            "selectAddressData[1].name": _json[that.data.pickerValue[1]].areaname,
            "selectAddressData[1].id": _json[that.data.pickerValue[1]].id,
            "selectAddressData[1].index": that.data.pickerValue[1]
          });
          that._getDistrictData();
        }
      });
    },
    // 读取地区key，筛选地区data
    _getDistrictData: function () {
      var _data = this.data.selectAddressData[1];
      // console.log("地区", "_data", _data)
      var that = this;
      var _keyName = 'districtData';
      wx.getStorage({
        key: _keyName,
        success: function (res) {
          console.log("地区读取成功");
          var _json = [];
          for (var i = 0; i < res.data.length; i++) {
            if (res.data[i].parentid == _data.id) {
              _json.push(res.data[i]);
            }
          }
          // console.log("地区数据筛选", _json);
          that.setData({
            districtData: _json
          });
          // console.log("districtData", _json);
          that.setData({
            "selectAddressData[2].name": _json[that.data.pickerValue[2]].areaname,
            "selectAddressData[2].id": _json[that.data.pickerValue[2]].id,
            "selectAddressData[2].index": that.data.pickerValue[2]
          });
          // console.log("over", that.data.selectAddressData);
        }
      });
    },
    //打开地址选择器
    openDateLwtbtn: function () {
      this.setData({
        openDateLw: true
      });
    },
    // 关闭选择收货地址
    _closeDateLw: function () {
      this.setData({
        openDateLw: false
      });
    },
    // 收货地址滚动事件
    bindChange: function (e) {
      var val = e.detail.value;
      if (this.data.pickerValue[0] != val[0]) {
        val[1] = 0;
        val[2] = 0;
      }
      if (this.data.pickerValue[1] != val[1]) {
        val[2] = 0;
      }
      this.setData({
        "pickerValue[0]": val[0],
        "pickerValue[1]": val[1],
        "pickerValue[2]": val[2]
      });
      this._initAddressInfo();
    },
    // 确定选择收货地址
    _okAddress: function () {
      let seleData = this.data.selectAddressData;
      this.setData({
        "street": "",
        "districtVal": "",
        "addressName": seleData[0].name + ' ' + seleData[1].name + ' ' + seleData[2].name,
        "province": seleData[0].name,
        "city": seleData[1].name,
        "district": seleData[2].name,
        "province_id": seleData[0].id,
        "city_id": seleData[1].id,
        "district_id": seleData[2].id
      });
      this._getStreet(seleData[2].id);
      this._closeDateLw();
    },
    //获取街道
    _getStreet(param) {
      let that = this;
      let urlStr = app.getNetAddresss("member.memberAddress.street");
      urlStr += "&district_id=" + param;
      app._getNetWork({
        url: urlStr,
        success: function (resdata) {
          var res = resdata.data;
          if (res.result == 1 && !app._isTextEmpty(res.data)) {
            if (!app._isTextEmpty(res.data) && res.data.length > 0) {
              that.setData({
                districtVal: res.data,
                strShow: true
              });
            } else {
              that.setData({
                strShow: false
              });
            }
          } else {
            that.setData({
              strShow: false
            });
          }
        },
        fail: function (res) {
          that.setData({
            strShow: false
          });
          console.log(res);
        }
      });
    },
    streetChoose() {
      if (app._isTextEmpty(this.data.addressName)) {
        wx.showToast({
          icon: 'none',
          title: '请先选择所在地区',
          duration: 1500
        });
      } else {
        this.setData({
          streetShow: true,
          opren: false
        });
      }
    },
    //关闭选择街道弹窗
    streetClose: function () {
      this.setData({
        streetShow: false,
        opren: true
      });
    },
    //选择街道
    streetConfirm(e) {
      let item = e.target.dataset.item;
      this.setData({
        "street": item.areaname,
        "street_id": item.id,
        "streetShow": false,
        opren: true
      });
    },
    appendAddress(){
      if (app._isTextEmpty(this.data.username)) {
        return app.tips('请输入收货人姓名');
      }
      if (app._isTextEmpty(this.data.mobile)) {
        return app.tips('请输入联系电话');
      }
      if (!/^[0-9]{1,}$/.test(this.data.mobile)) {
        return app.tips('请输入联系电话');
      }
      if (app._isTextEmpty(this.data.addressName)) {
        return app.tips('请选择所在区域');
      }
      if (this.data.strShow && app._isTextEmpty(this.data.street)) {
        return app.tips('请选择所在街道');
      }
      if (app._isTextEmpty(this.data.address)) {
        return app.tips('请输入详细地址');
      }
      this.callback();
      this.setPopShow();
    },
    callback(){
      let obj = {
        pick_up_name : this.data.username,
        pick_up_tel : this.data.mobile,
        pick_up_province : this.data.province_id,
        pick_up_city : this.data.city_id,
        pick_up_district : this.data.district_id,
        pick_up_street : this.data.street_id,
        pick_up_address : this.data.address,
        street: this.data.street||'',
        addressName:this.data.addressName
      };
      this.triggerEvent("confirm",obj);
    }
  }
});
