const app = getApp();

Page({

  data: {

    // selectArray: [], // 性别-数据
    // index: '',  // 性别-下标、
    heightid:0,
    heightArray: [], // 身高-数据
    heightindex: [0, 0],  // 身高-下标

    EducationArray: [], // 学历-数据
    Educationindex: '',  // 学历-下标

    MarriageArray: [], // 婚史-数据
    Marriageindex: '',  // 婚史-下标

    incomeid:0,
    incomeArray: [], // 收入-数据
    incomeindex: [0, 0],  // 收入-下标

    OccupationArray: [], // 职业-数据
    Occupationindex: '',  // 职业-下标

    // contactArray: [], // 允许有意者联系我-数据
    // contactindex: '',  // 允许有意者联系我-下标

    multiArray: [],   // 地址-数据
    step: 0,  // 地址
    multiIndex: [0, 0, 0],  // 地址-下标


    // sex: '',     //  性别  
    age: '',      //  年龄  
    height: '',      //  身高  
    province: '',     // 省
    city: '',     // 市
    area: '',     // 区
    education: '',    //  学历  
    marry: '',    //   婚史 
    income: '',     //  收入 
    occupation: '',     //  职业  



    Ageid:0,
    AgeArray: [],    //  年龄-数据
    AgeIndex: [0, 0],    //  年龄-下标


  },






  onLoad: function () {
    var that = this
 
    //  获取择偶信息
    let personal_url = 'my/personaloption/optioninfo';
    let personal_data = {
    };
    app.postRequest(personal_url, personal_data, function (res) {
      if (res.code == 201) {
        
        that.setData({
          personal: res.data,    //获取全部数据
      
        })
      }
    })





    //  默认择偶信息
    let editinfo_url = 'my/personaloption/editoption';
    let editinfo_data = {
    };
    app.postRequest(editinfo_url, editinfo_data, function (res) {     



      //  年龄 ajax
      let Age_url = 'public/paramsgather?type=age';
      let Age_data = {
        // pid: '0'
      };

      let _age_min = res.data.age_min;
      let _age_max = res.data.age_max;
      // console.log(_age_min);
      // console.log(_age_max);
      app.postRequest(Age_url, Age_data, function (res) {   //  年龄 ajax
              if (res.code == 201) {

                let min = data_processing(res.data, _age_min);      //已选中的数据处理  min
                let max = data_processing(res.data, _age_max);   //已选中的数据处理  max

                that.setData({
                  AgeIndex: [min, max]
                })

                let dictObject = res.data;    //对象不能直接使用  以下转成数组
                  // 对象转成数组
                  var createArr = []
                  for (let i in dictObject) {
                    createArr.push(dictObject[i] + "岁");
                  }
                  that.setData({
                    AgeArray: [createArr, createArr],
                  })

                            // console.log(createArr);           
                }

      })



      //  身高 ajax
      let height_url = 'public/paramsgather?type=height';
      let height_data = {
        pid: '0'
      };

      let _height_min = res.data.height_min;
      let _height_max = res.data.height_max;
      // console.log(_height_min);
      // console.log(_height_max);
      app.postRequest(height_url, height_data, function (res) {      //  身高 ajax
                if (res.code == 201) {

                  let min = data_processing(res.data, _height_min);      //已选中的数据处理  min
                  let max = data_processing(res.data, _height_max);   //已选中的数据处理  max

                  that.setData({
                    heightindex: [min, max]
                  })
   

                        let dictObject = res.data;        //对象不能直接使用  以下转成数组
                        // 对象转成数组
                        var createArr = []
                        for (let i in dictObject) {
                          createArr.push(dictObject[i] + "cm");
                        }
                        // console.log(createArr);
                        that.setData({                
                          heightArray: [createArr, createArr],
                        })


                }


      })





      //  学历 ajax
      let Education_url = 'public/paramsgather?type=xueli';
      let Education_data = {
        // pid: '0'
      };

      let _education = res.data.education;
      app.postRequest(Education_url, Education_data, function (res) {      //  学历 ajax
        if (res.code == 201) {
          
                for (let i = 0; i < res.data.length; i++) {   //已选中的数据处理

                  if (res.data[i].id == _education) {

                    // console.log(res.data[i].id)
                    that.setData({
                      Educationindex: i
                    })
                  }
                }

                that.setData({
                  EducationArray: res.data
                })
        }
      })





      //  婚史 ajax
      let Marriage_url = 'public/paramsgather?type=marriage';
      let Marriage_data = {
        pid: '0'
      };

  
      app.postRequest(Marriage_url, Marriage_data, function (res) {      //  婚史 ajax
        if (res.code == 201) {
                that.setData({
                  MarriageArray: res.data
                })

        }

      })

      //  收入 ajax
      let income_url = 'public/paramsgather?type=shouru1';
      let income_data = {
        // pid: '0'
      };
      let _income_min = res.data.income_min;
      let _income_max = res.data.income_max;
      // console.log(_income_min);
      // console.log(_income_max);
      app.postRequest(income_url, income_data, function (res) {      //  收入 ajax
        if (res.code == 201) {
    

          var min = data_processing(res.data, _income_min);      //已选中的数据处理  min
          var max = data_processing(res.data, _income_max);   //已选中的数据处理  max

            that.setData({
              incomeindex: [min, max]
            })
          

            that.setData({
              incomeArray: [res.data, res.data],
            })
        }

      })

      //  职业 ajax 
      let Occupation_url = 'public/paramsgather?type=zhiye';
      let Occupation_data = {
        // pid: '0'
      };

      let _occupation = res.data.occupation;
      
      app.postRequest(Occupation_url, Occupation_data, function (res) {      //  职业 ajax
          if (res.code == 201) {
            // console.log(res);


                    for (let i = 0; i < res.data.length; i++) {      //已选中的数据处理

                      if (res.data[i].id == _occupation) {

                        // console.log(res.data[i].id)
                        that.setData({
                          Occupationindex: i
                        })
                      }
                    }


                    that.setData({
                      OccupationArray: res.data
                    })
          }
      })

    
      if (res.code == 201) {
   
        that.setData({
          
          // sex: res.data.sex,     //  性别  
          age: res.data.age_min + '-' + res.data.age_max,      //  年龄  
          height: res.data.height_min + '-' + res.data.height_max,      //  身高  
          province: res.data.province,     // 市
          city: res.data.city,     // 市
          area: res.data.area,     // 区
          education: res.data.education,    //  学历  
          marry: res.data.marry,    //   婚史 
          income: res.data.income_min + '-' + res.data.income_max,     //  收入 
          occupation: res.data.occupation,     //  职业

        
          Marriageindex: res.data.marry,    //   婚史 


          personacodel: res,    //获取全部数据


        })

      }

      that.getProvince();   //地址  ajax

    })



    //  性别 ajax
    // let p_url = 'public/paramsgather?type=sex';
    // let p_data = {
    //   // pid: '0'
    // };
    // app.postRequest(p_url, p_data, function (res) {      //  性别 ajax
    //   if (res.code == 201) {
    //     // console.log(res.data);
    //     that.setData({
    //       selectArray: res.data
    //     })

    //   }


    // })





    //  允许有意者联系我 ajax

    // let contact_url = 'public/citypid';
    // let contact_data = {
    //   pid: '0'
    // };
    // app.postRequest(contact_url, contact_data, function (res) {      //  允许有意者联系我 ajax
    //   // console.log(res);
    //   that.setData({
    //     contactArray: res.data
    //   })
    // })




  },

  // GenderEvent: function (e) {   //  性别    单项选择器
  //   // console.log(this);
  //   // console.log(e);
  //   // console.log(this.data.selectArray[e.detail.value]);
  //   // console.log('picker发送选择改变，携带值为', e.detail.value)
  //   this.setData({
  //     index: e.detail.value,
  //     sex: e.detail.value
  //   })
  // },


  // 年龄双选
  AgeEvent: function (e) {
    var that =this;
    console.log('picker发送选择改变，携带值为', e.detail.value)
    var _value = e.detail.value;  //发送选择改变，携带值为
    var Small = this.data.AgeArray[0][e.detail.value[0]].substring(0, 2);
    var large = this.data.AgeArray[1][e.detail.value[1]].substring(0, 2);


    if (Small > large && Small != '不限' && large != '以上') {     //判断  最小值  大于  最大值  数据互换
      //  console.log('调换')
      var Agedata = large + '-' + Small;
      that.Exchange(_value);    // 调用数组调换

    } else {

      var Agedata = Small + '-' + large;    //否则正常选中

    }


    console.log(Agedata);

    this.setData({
      AgeIndex: _value,
      age: Agedata,
      Ageid: 1,
    })
  },


  heightEvent: function (e) {   //  身高    单项选择器
    var that = this;
    // console.log(this);
    // console.log(e);
    // console.log(this.data.heightArray[e.detail.value]);
    // console.log('picker发送选择改变，携带值为', e.detail.value)
    var _value = e.detail.value;  //发送选择改变，携带值为
    var heightSmall = this.data. heightArray[0][e.detail.value[0]].substring(0, 3);
    var heightlarge = this.data. heightArray[1][e.detail.value[1]].substring(0, 3);
 

    // console.log(heightdata)
    if (heightSmall > heightlarge && heightSmall != '不限' && heightlarge != '以上') {     //判断  最小值  大于  最大值  数据互换
      //  console.log('调换')
      var heightdata = heightlarge + '-' + heightSmall;
      that.Exchange(_value);    // 调用数组调换

    } else {

      var heightdata = heightSmall + '-' + heightlarge;

    }


    this.setData({
      heightindex: _value,
      height: heightdata,
      heightid: 1,
    })
  },

  EducationEvent: function (e) {   //  学历    单项选择器
    console.log(this);
    // console.log(e);
    console.log(this.data.EducationArray[e.detail.value].id);
    // console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      Educationindex: e.detail.value,
      education: this.data.EducationArray[e.detail.value].id
    })
  },

  MarriageEvent: function (e) {   //  婚史    单项选择器
    // console.log(this);
    // console.log(e);
    // console.log(this.data.MarriageArray[e.detail.value]);
    // console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      Marriageindex: e.detail.value,
      marry: e.detail.value
    })
  },

  incomeEvent: function (e) {   //  收入    单项选择器
    var that = this;
    // console.log(this);
    // console.log(e);
    // console.log(this.data.incomeArray[e.detail.value].id);
    // console.log('picker发送选择改变，携带值为', e.detail.value)
    var _value = e.detail.value;  //发送选择改变，携带值为
    var srSmall = this.data.incomeArray[0][e.detail.value[0]];
    var srlarge = this.data.incomeArray[1][e.detail.value[1]];

    if (srSmall > srlarge && srSmall != '不限' && srlarge != '以上') {     //判断  最小值  大于  最大值  数据互换
      //  console.log('调换')
      var srdata = srlarge + '-' + srSmall;
      that.Exchange(_value);    // 调用数组调换

    } else {

      var srdata = srSmall + '-' + srlarge;  //否则正常选中

    }

    // console.log(srdata);
    this.setData({
      incomeindex: _value,
      income: srdata,
      incomeid:1,
    })
  },

  OccupationEvent: function (e) {   //  职业    单项选择器
    // console.log(this);
    // console.log(e);
    // console.log(this.data.OccupationArray[e.detail.value].id);
    // console.log('picker发送选择改变，携带值为', e.detail.value)
    this.setData({
      Occupationindex: e.detail.value,
      occupation: this.data.OccupationArray[e.detail.value].id
    })
  },

  // 数组数据调换
  Exchange: function (data) {
    for (var i = 0; i < data.length / 2; i++) {
      var data_i = data[i];
      data[i] = data[data.length - 1 - i];
      data[data.length - 1 - i] = data_i;
    }
    return;
  },


  // contactEvent: function (e) {   //  允许有意者联系我    单项选择器
  //   // console.log(this.data.selectArray[e.detail.value].area_name)
  //   // console.log('picker发送选择改变，携带值为', e.detail.value)
  //   console.log(this);
  //   console.log(e);
  //   console.log(this.data.contactArray[e.detail.value]);
  //   console.log('picker发送选择改变，携带值为', e.detail.value)
  //   this.setData({
  //     contactindex: e.detail.value
  //   })
  // },


  getProvince() {    //  多项选择器

    let _this = this;
    let d_url = 'public/citypid';

    app.postRequest(d_url, { pid: '0' }, function (res) {

      // console.log(res.data);

      if (res.code == '201') {


        var provinceList = res.data;
        var provinceArr = [];
        provinceArr = _this.mapArray(res.data);
        _this.setData({
          multiArray: [provinceArr, [], []],
          provinceList,
          provinceArr,
        })

        // console.log(provinceList);
        // console.log(provinceArr);
        var defaultCode = provinceList[0]['area_id']
        // console.log(provinceList[0]['area_id']);
        if (defaultCode) {
          _this.setData({
            currnetProvinceKey: defaultCode
          })
          _this.getCity(defaultCode)
        }
      }


    })


  },

  getCity(codes) {
    //  多项选择
    let _this = this;
    let d_url = 'public/citypid';

    app.postRequest(d_url, { pid: codes }, function (res) {
      var cityList = res.data;
      var cityArr = [];
      if (res.code == '201') {
        cityArr = _this.mapArray(res.data);
        _this.setData({
          multiArray: [_this.data.provinceArr, cityArr, []],
          cityArr,
          cityList

        })

        var defaultCode = cityList[0]['area_id']

        if (defaultCode) {
          _this.setData({
            currnetProvinceKey: defaultCode
          })
          _this.getArea(defaultCode)
        }
      }

    })
  },
  getArea(codes) {
    //  多项选择
    let _this = this;
    let d_url = 'public/citypid';
    app.postRequest(d_url, { pid: codes }, function (res) {
      var areaList = res.data;
      var areaArr = [];
      if (res.code == '201') {
        areaArr = _this.mapArray(res.data);
      }
  
      // console.log(areaList);
      // console.log(areaArr);

      _this.setData({
        multiArray: [_this.data.provinceArr, _this.data.cityArr, areaArr],
        areaList,
        areaArr
      })

  

    })
  },
  mapArray: function (data) {
    let cityArray = []
    if (data) {
      for (let i = 0; i < data.length; i++) {
        if (data[i].area_name) {
          cityArray[i] = data[i].area_name;

        }
      }
    }



    return cityArray;
  },
  columnchange(e) {  // 滚动选择器 触发的事件
    var column = e.detail.column  // 当前改变的列
    // console.log(column);
    // console.log(this.data.multiIndex);
    // console.log(JSON.parse(JSON.stringify(this.data.multiIndex)));
    var data = {
      multiIndex: this.data.multiIndex,
      multiArray: this.data.multiArray
    }
    data.multiIndex[column] = e.detail.value;  // 第几列改变了就是对应multiIndex的第几个，更新它
    switch (column) { // 处理不同的逻辑
      case 0:   // 第一列更改 就是省级的更改
        var currentProvinceKey = this.data.provinceList[e.detail.value].area_id
        if (currentProvinceKey != this.data.currnetProvinceKey) {  // 判断当前的key是不是真正的更新了
          this.getCity(currentProvinceKey)  // 获取当前key下面的市级数据
        }
        data.multiIndex[1] = 0  // 将市默认选择第一个
        break;
      case 1:  // 市发生变化
        var currentCitykey = this.data.cityList[e.detail.value].area_id
        if (currentCitykey != this.data.currnetCityKey) {  // 同样判断
          this.getArea(currentCitykey)   // 获取门店
        }
        data.multiIndex[2] = 0
        break;
    }
    this.setData(data)  // 更新数据
  },
  pickchange(e) {
    // console.log(this.data.provinceList[e.detail.value[0]].area_id);
    // console.log(this.data.cityList[e.detail.value[1]].area_id);
    // console.log(this.data.areaList[e.detail.value[2]].area_id);
    this.setData({
      step: 1,  // 更新，用来选择用户选中的门店
      multiIndex: e.detail.value,  // 更新下标字段

      province: this.data.provinceList[e.detail.value[0]].area_id,  // 市
      city: this.data.cityList[e.detail.value[1]].area_id,  // 市
      area: this.data.areaList[e.detail.value[2]].area_id   // 区
    })
  },









  //下一步事件
  register: function (e) {

        // console.log(this.data.sex);                 //  性别  
        // console.log(this.data.age);              //  年龄 
        // console.log(this.data.height);           //  身高 
        // console.log(this.data.education);      //  学历  
        // console.log(this.data.marry);          //   婚史 
        // console.log(this.data.income);        //  收入 
        // console.log(this.data.province);       //  省 
        // console.log(this.data.city);              //  市 
        // console.log(this.data.area);              //  区 
        // console.log(this.data.occupation);     //  职业 



        // var sex = this.data.sex                     //  性别  
        var age = this.data.age                     //  年龄  
        var height = this.data.height             //  身高  
        var province = this.data.province      // 省
        var city = this.data.city                       // 市
        var area = this.data.area                     // 区
        var education = this.data.education  //  学历  
        var marry = this.data.marry                 //   婚史 
        var income = this.data.income             //  收入 
        var occupation = this.data.occupation  //  职业

        if (age == '') {
          var _age = '请选择年龄'
          getApp().Tips(_age)
        } else if (province == '' && city == '' && area == '') {
          var _province = '请选择地址'
          getApp().Tips(_province)
        } else if (height == '') {
          var _height = '请选择身高'
          getApp().Tips(_height)
        } else if (marry == '') {
          var _marry = '请选择婚史'
          getApp().Tips(_marry)
        } else if (income == '') {
          var _income = '请选择收入'
          getApp().Tips(_income)
        } else if (education == '') {
          var _education = '请选择学历'
          getApp().Tips(_education)
        } else if (occupation == '') {
          var _occupation = '请选择职业'
          getApp().Tips(_occupation)
        } else{

                  //  修改择偶信息
                  let editinfoform_url = 'my/personaloption/editoptionform';
                  let editinfoform_data = {

                    age: this.data.age,      //  年龄  
                    height: this.data.height,      //  身高  
                    province: this.data.province,     // 市
                    city: this.data.city,     // 市
                    area: this.data.area,     // 区
                    education: this.data.education,    //  学历  
                    marry: this.data.marry,    //   婚史 
                    income: this.data.income,     //  收入 
                    occupation: this.data.occupation,     //  职业

                  };
                  app.postRequest(editinfoform_url, editinfoform_data, function (res) {

                    if (res.code == 201) {
                      wx.showToast({
                        title: '修改成功',
                        icon: 'success',
                        duration: 2000
                      })
                       return;
                    }


                    var fail = '修改失败'    //调用提示框
                    getApp().Tips(fail)

                  })


        }



  },

})

var data_processing = function (data, min_max, ) {
  for (let i = 0; i < data.length; i++) {    //已选中的数据处理
    if (data[i] == min_max) {
      return i;
    }
  }
}
