const app = getApp(); const webSocket = require('../../utils/websocket.js'); Page({ data: { multiArray: [], // 地址-数据 step: 0, // 地址 multiIndex: [0, 0, 0], // 地址-下标 CityRecord: '', //城市记录 areaRecord: '', //区域记录 CityRecordid: [], //下标记录 UsedRecord: false, //是否初次 provincename:'', // 省 cityname: '', // 市 areaname: '', // 区 heightid: 0, heightArray: [], // 身高-数据 heightindex: [0, 0], // 身高-下标 Ageid: 0, AgeArray: [], // 年龄-数据 AgeIndex: [0, 0], // 年龄-下标 MarriageArray: [], // 婚史-数据 Marriageindex: '', // 婚史-下标 EducationArray: [], // 学历-数据 Educationindex: '', // 学历-下标 nickname: '',//ID sex: 0, // 性别 age: 0, // 年龄 height: 0, // 身高 province: 0, // 省 city: 0, // 市 area: 0, // 区 education: 0, // 学历 marry: 0, // 婚史 income:0, // income: '', // 收入 // occupation: '', // 职业 // home: '', //列表信息 // tab: [true, true, true, true], home: [], //定义列表信息数组 // tabTxt: ['性别', '年龄', '婚史', '特色'],//tab文案 page: 1,//当前页码 limit: 10,//获取条数 morehide: false, //暂无更多信息显示隐藏 moreTxt: '', }, onLoad: function (options) { webSocket.connectSocket(); }, onShow: function (options) { var that = this; that.setData({ page: 1,//当前页码 }) getApp().showLoading(); //提示加载中 // console.log(app.globalData.height); // console.log(app.globalData.marry); // console.log(app.globalData.education); // console.log(app.globalData.income); var _Selection = app.globalData.Selection // 是否选中 1选中 0没选中 // console.log(_Selection); var _income = app.globalData.income // 收入 that.setData({ UsedRecord: false, CityRecord: '', areaRecord:'', multiIndex: [0, 0, 0], // 地址-下标 step: 0, }) if (app.globalData.income){ that.setData({ income: _income, }) } else if (app.globalData.income == 0 && _Selection == 1) { //判断筛选页面 是否清空数据 同时 是否选中,而不是返回 that.setData({ income: _income, }) } // console.log(that.data.provincename); // console.log(that.data.cityname); // console.log(that.data.areaname); var _province = app.globalData.province // 省 var _city = app.globalData.city // 市 var _area = app.globalData.area // 区 if (_province && _city && _area) { that.setData({ province: _province, city: _city, area: _area, }) // console.log(_province); // console.log(_city); // console.log(_area); } else if (_city == 0 && _Selection == 1) { //判断筛选页面 是否清空数据 同时 是否选中,而不是返回 that.setData({ province: _province, city: _city, area: _area, }) } var _provincename = app.globalData.provincename // 省 var _cityname = app.globalData.cityname // 市 var _areaname = app.globalData.areaname // 区 if (_provincename && _cityname && _areaname) { that.setData({ provincename: _provincename, cityname: _cityname, areaname: _areaname, step : 0, }) // console.log(_provincename); // console.log(_cityname); // console.log(_areaname); } else if (_cityname == 0 && _Selection == 1) { //判断筛选页面 是否清空数据 同时 是否选中,而不是返回 that.setData({ provincename: _provincename, cityname: _cityname, areaname: _areaname, step: 0, }) } // that.setData({ // // nickname: that.options.nickname, //姓名 // age: that.options.age, // 年龄 // height: that.options.height, // 身高 // // province: that.options.province, // 市 // // city: that.options.city, // 市 // // area: that.options.area, // 区 // education: that.options.education, // 学历 // income: that.options.income, // 收入 // }); // 年龄 ajax let Age_url = 'public/paramsgather?type=age'; let Age_data = {}; if (app.globalData.age){ //判断 是否从筛选页面传来的参数 // console.log(app.globalData.age); var _age = app.globalData.age // 年龄 var agenewArry = _age.split("-"); //转成数组 var _age_min = agenewArry[0] var _age_max = agenewArry[1] // console.log(_age_min) // console.log(_age_max) that.setData({ Ageid: 0, age: _age }) } else if (app.globalData.age == 0 && _Selection == 1) { //判断筛选页面 是否清空数据 同时 是否选中,而不是返回 var _age = app.globalData.age // 年龄 that.setData({ age: _age, Ageid :0, AgeIndex: ['', ''] }) } app.postRequest(Age_url, Age_data, function (res) { // 年龄 ajax if (res.code == 201) { if (app.globalData.age){ for (let i = 0; i < res.data.length; i++) { //已选中的数据处理 if (res.data[i] == _age_min) { var _min = i; } if (res.data[i] == _age_max) { var _max = i; } 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' }; if (app.globalData.height) { //判断 是否从筛选页面传来的参数 // console.log(app.globalData.height); var _height = app.globalData.height // 身高 var heightnewArry = _height.split("-"); //转成数组 var heightSmall = heightnewArry[0] var heightlarge = heightnewArry[1] // console.log(heightSmall) // console.log(heightlarge) that.setData({ height: _height, heightid:0 }) } else if (app.globalData.height == 0 && _Selection == 1) { //判断筛选页面 是否清空数据 同时 是否选中,而不是返回 var _height = app.globalData.height // 身高 that.setData({ height: _height, heightid: 0, heightindex: ['', ''], // 身高-下标 }) } app.postRequest(height_url, height_data, function (res) { // 身高 ajax if (res.code == 201) { if (app.globalData.height) { for (let i = 0; i < res.data.length; i++) { //已选中的数据处理 // console.log(res.data[i]) if (res.data[i] == heightSmall) { var _min = i; } if (res.data[i] == heightlarge) { var _max = i; } 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 Marriage_url = 'public/paramsgather?type=marriage'; let Marriage_data = {}; if (app.globalData.marry) { //判断 是否从筛选页面传来的参数 // console.log(app.globalData.marry); var _marry = app.globalData.marry // 婚姻 that.setData({ marry: _marry }) } else if (app.globalData.marry == 0 && _Selection == 1) { //判断筛选页面 是否清空数据 同时 是否选中,而不是返回 var _marry = app.globalData.marry // 婚姻 that.setData({ marry: _marry, Marriageindex: "", // 身高-下标 }) } app.postRequest(Marriage_url, Marriage_data, function (res) { // 婚史 ajax if (res.code == 201) { if (app.globalData.marry) { for (let i = 0; i < res.data.length; i++) { //已选中的数据处理 if (i == _marry) { that.setData({ Marriageindex: i, }) } } } that.setData({ MarriageArray: res.data }) } }) // 学历 ajax let Education_url = 'public/paramsgather?type=xueli'; let Education_data = {}; if (app.globalData.education) { //判断 是否从筛选页面传来的参数 // console.log(app.globalData.marry); var _education = app.globalData.education // 学历 that.setData({ education: _education }) } else if (app.globalData.education == 0 && _Selection == 1) { //判断筛选页面 是否清空数据 同时 是否选中,而不是返回 var _education = app.globalData.education // 学历 that.setData({ education: _education, Educationindex: "", // 学历-下标 }) } app.postRequest(Education_url, Education_data, function (res) { // 学历 ajax if (res.code == 201) { if (app.globalData.education) { for (let i = 0; i < res.data.length; i++) { //已选中的数据处理 if (res.data[i].id == _education) { that.setData({ Educationindex: i, }) } } } that.setData({ EducationArray: res.data }) } }) that.getProvince(); //地址 ajax that.list(); }, // 会员编码 getPhone: function (e) { var nickname = e.detail.value; console.log(nickname); this.setData({ nickname: nickname }); }, // 会员编码查询 Code: function (e) { var that = this; // 判断会员编码是否存在 if (that.data.nickname){ that.showLoading(); //提示加载中 // 列表信息 let home_url = 'circle/friend/home'; let home_data = { page: that.data.page, limit: that.data.limit, number: that.data.nickname, // 性别 }; app.postRequest(home_url, home_data, function (res) { if (res.code == 201) { // console.log(res.data); that.setData({ home: res.data, }) that.cancelLoading(); //数据加载完关闭 return; } that.cancelLoading(); //数据加载完关闭 that.setData({ home_code: res.code, morehide: true, moreTxt: '暂无更多数据。' }) }) }else{ var fail = '请输入会员编号' //调用提示框 getApp().Tips(fail) } }, 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 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); var heightdata = heightSmall + '-' + heightlarge; // console.log(heightdata) this.setData({ heightindex: e.detail.value, height: heightdata, heightid: 1, }) that.list(); }, // 年龄双选 AgeEvent: function (e) { var that = this; // console.log('picker发送选择改变,携带值为', 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); var Agedata = Small + '-' + large; // console.log(Agedata); this.setData({ AgeIndex: e.detail.value, age: Agedata, Ageid: 1, page:1, }) that.list(); //调用筛选 }, MarriageEvent: function (e) { // 婚史 单项选择器 var that = this; // 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, page: 1, }) that.list(); //调用筛选 }, EducationEvent: function (e) { // 学历 单项选择器 var that = this; // 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, page: 1, }) that.list(); //调用筛选 }, // 列表切换 // filterTab: function (e) { // var data = [true, true, true, true], qhid = e.currentTarget.dataset.qhid; // // console.log(e.currentTarget.dataset.qhid); // data[qhid] = !this.data.tab[qhid]; // // console.log(!this.data.tab[qhid]); // this.setData({ // tab: data, // }) // }, getProvince() { // 多项选择器 let _this = this; let d_url = 'public/citypid'; app.postRequest(d_url, { pid: '0' }, function (res) { 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); // console.log(_this.data.CityRecord) // 方便取消事件调用 getProvince 判断 如果选择过城市 传选择过的城市 if (_this.data.CityRecord) { // console.log('有'); var defaultCode = _this.data.CityRecord if (defaultCode) { _this.setData({ currnetProvinceKey: defaultCode }) _this.getCity(defaultCode) } } else { //如果没有选择过 , 传第一个城市 // console.log('无'); var defaultCode = 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 }) // 方便取消事件调用 getProvince 判断 如果选择过城市 传选择过的城市 if (_this.data.areaRecord && _this.data.cancelID == false) { // console.log('有'); var defaultCode = _this.data.areaRecord // console.log(_this.data.areaRecord); if (defaultCode) { _this.setData({ currnetProvinceKey: defaultCode }) _this.getArea(defaultCode) } } else { //如果没有选择过 , 传第一个城市 // console.log('无'); var defaultCode = cityList[0]['area_id'] // console.log(defaultCode); 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, }) _this.setData({ cancelID: true, }) }) }, 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) // 更新数据 // console.log(this.data.step) }, pickchange(e) { var that =this; // console.log(that.data.multiIndex); // console.log(that.data.provinceList[e.detail.value[0]].area_id); // console.log(that.data.cityList[e.detail.value[1]].area_id); // console.log(that.data.areaList[e.detail.value[2]].area_id); that.setData({ step: 1, // 更新,用来选择用户选中的门店 multiIndex: e.detail.value, // 更新下标字段 province: that.data.provinceList[e.detail.value[0]].area_id, // 市 city: that.data.cityList[e.detail.value[1]].area_id, // 市 area: that.data.areaList[e.detail.value[2]].area_id, // 区 provincename: that.data.provinceList[e.detail.value[0]].area_name, // 市 cityname: that.data.cityList[e.detail.value[1]].area_name, // 市 areaname: that.data.areaList[e.detail.value[2]].area_name, // 区 CityRecord: that.data.provinceList[e.detail.value[0]].area_id, // 省 areaRecord: that.data.cityList[e.detail.value[1]].area_id, // 市 CityRecordid: that.data.multiIndex, UsedRecord: true, //已使用过 }) that.list(); }, // 城市取消 cancel: function (e) { var _this = this; if (_this.data.UsedRecord == true) { _this.setData({ multiIndex: _this.data.CityRecordid, cancelID: false }) // console.log(_this.data.CityRecordid); _this.getProvince(); //地址 ajax } }, // 上拉加载更多 onReachBottom() { var that = this; that.showLoading(); //提示加载中 // 列表信息 let home_url = 'circle/friend/home'; let home_data = { page: (that.data.page++) + 1, limit: that.data.limit, height: that.data.height, // 身高 age: that.data.age, // 年龄 marry: that.data.marry, // 婚史 education: that.data.education, // 学历 // province: that.data.province, // 市 city: that.data.city, // 市 // area: that.data.area, // 区 }; app.postRequest(home_url, home_data, function (res) { if (res.code == 201) { // console.log(res.data); var home = that.data.home var moreTxt = ''; if (0 < (res.data.length < 10)) { moreTxt = '暂无更多数据。' console.log('无') } else { moreTxt = '' console.log('有') } // 设置数据 for (var i = 0; i < res.data.length; i++) { home.push(res.data[i]); } that.setData({ home: home, morehide: true, moreTxt: moreTxt, }) that.cancelLoading(); //数据加载完关闭 return; } that.cancelLoading(); //数据加载完关闭 that.setData({ home_code: res.code, morehide: true, moreTxt:"暂无更多数据。" }) }) }, More:function(){ var that = this; // console.log(that.data.age); wx.navigateTo({ url: '/pages/index_screen/index_screen?age=' + that.data.age + '&height=' + that.data.height + '&marry=' + that.data.marry + '&education=' + that.data.education + '&income=' + that.data.income + '&province=' + that.data.province + '&city=' + that.data.city + '&area=' + that.data.area + '&provincename=' + that.data.provincename + '&cityname=' + that.data.cityname + '&areaname=' + that.data.areaname + '' }) }, list: function () { var that = this; that.showLoading(); //提示加载中 // 列表信息 let home_url = 'circle/friend/home'; let home_data = { page: that.data.page, limit: that.data.limit, age: that.data.age, // 年龄 height: that.data.height, // 身高 marry: that.data.marry, // 婚史 education: that.data.education, // 学历 income: that.data.income, //收入 // province: that.data.province , // 市 city: that.data.city, // 市 // area: that.data.area, // 区 }; app.postRequest(home_url, home_data, function (res) { if (res.code == 201) { var moreTxt = ''; if (res.data.length < 10) { moreTxt = '暂无更多数据。' } else { moreTxt = '' } console.log(res.data); that.setData({ home: res.data, moreTxt: moreTxt, home_code: res.code, }) that.cancelLoading(); //数据加载完关闭 return; } that.cancelLoading(); //数据加载完关闭 that.setData({ home: res.data, morehide: true, moreTxt: '暂无更多数据。' }) }) }, // 加载 showLoading: function () { wx.showToast({ title: '加载中', icon: 'loading' }); }, // 关闭加载 cancelLoading: function () { wx.hideToast(); } })