346 lines
9.4 KiB
JavaScript
346 lines
9.4 KiB
JavaScript
// 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);
|
||
}
|
||
}
|
||
});
|