451 lines
11 KiB
JavaScript
451 lines
11 KiB
JavaScript
// pages/member/addressAdd_v2/addressAdd_v2.js
|
||
var app = getApp();
|
||
Page({
|
||
/**
|
||
* 页面的初始数据
|
||
*/
|
||
data: {
|
||
isShowStreet: false,
|
||
form: {
|
||
username: "",
|
||
mobile: "",
|
||
province: "",
|
||
city: "",
|
||
district: "",
|
||
streetName: "",
|
||
address: "",
|
||
isDefault: false,
|
||
},
|
||
addressName: "",
|
||
openDateLw: false,
|
||
provinceData: [],
|
||
cityData: [],
|
||
districtData: [],
|
||
pickerValue: [0, 0, 0],
|
||
selectAddressData: [],
|
||
districtVal: [],
|
||
opren: true,
|
||
acr: true,
|
||
is_region: 0,
|
||
},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面加载
|
||
*/
|
||
onLoad: function (options) {
|
||
//加载地址数据初始化
|
||
this._initAddressInfo();
|
||
this.getIsOpenAddress();
|
||
},
|
||
streetClose(e) {
|
||
this.setData({
|
||
streetShow: false,
|
||
opren: true,
|
||
});
|
||
},
|
||
onTransitionEnd(e) {
|
||
console.log(e);
|
||
},
|
||
/**
|
||
* 生命周期函数--监听页面初次渲染完成
|
||
*/
|
||
onReady: function () {},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面显示
|
||
*/
|
||
onShow: function () {},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面隐藏
|
||
*/
|
||
onHide: function () {},
|
||
|
||
/**
|
||
* 生命周期函数--监听页面卸载
|
||
*/
|
||
onUnload: function () {},
|
||
|
||
/**
|
||
* 页面相关事件处理函数--监听用户下拉动作
|
||
*/
|
||
onPullDownRefresh: function () {},
|
||
|
||
/**
|
||
* 页面上拉触底事件的处理函数
|
||
*/
|
||
onReachBottom: function () {},
|
||
|
||
/**
|
||
* 用户点击右上角分享
|
||
*/
|
||
onShareAppMessage: function () {},
|
||
getIsOpenAddress() {
|
||
var that = this;
|
||
let urlStr = app.getNetAddresss("member.member-address.is-region");
|
||
app._getNetWork({
|
||
url: urlStr,
|
||
success: function (resdata) {
|
||
var res = resdata.data;
|
||
if (res.result == 1 && !app._isTextEmpty(res.data)) {
|
||
that.setData({
|
||
is_region: res.data.is_region,
|
||
});
|
||
} else {
|
||
console.log(res.msg);
|
||
}
|
||
},
|
||
fail: function (res) {
|
||
console.log(res);
|
||
},
|
||
});
|
||
},
|
||
//获取街道
|
||
_getStreet(param) {
|
||
var 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,
|
||
isShowStreet: true,
|
||
});
|
||
} else {
|
||
that.setData({
|
||
isShowStreet: false,
|
||
});
|
||
}
|
||
} else {
|
||
that.setData({
|
||
isShowStreet: false,
|
||
});
|
||
}
|
||
},
|
||
fail: function (res) {
|
||
console.log(res);
|
||
},
|
||
});
|
||
},
|
||
//默认地址开关值绑定
|
||
isDefaultChange: function (e) {
|
||
let isDefault = e.detail;
|
||
this.setData({
|
||
"form.isDefault": isDefault,
|
||
});
|
||
},
|
||
//收件人输入绑定
|
||
usernameinp: function (e) {
|
||
let nameval = e.detail.value;
|
||
this.setData({
|
||
"form.username": nameval,
|
||
});
|
||
},
|
||
//联系电话输入绑定
|
||
mobileinp: function (e) {
|
||
let mobileval = e.detail.value;
|
||
this.setData({
|
||
"form.mobile": mobileval,
|
||
});
|
||
},
|
||
//详细地址绑定输入
|
||
addressinp: function (e) {
|
||
let addressval = e.detail.value;
|
||
console.log(addressval);
|
||
this.setData({
|
||
"form.address": addressval,
|
||
});
|
||
},
|
||
// 关闭选择收货地址
|
||
_closeDateLw: function () {
|
||
this.setData({
|
||
openDateLw: false,
|
||
});
|
||
},
|
||
//地址选择器数据初始化
|
||
_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);
|
||
console.log(_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,
|
||
});
|
||
},
|
||
// 收货地址滚动事件
|
||
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({
|
||
"form.streetName": "",
|
||
districtVal: "",
|
||
addressName:
|
||
seleData[0].name + " " + seleData[1].name + " " + seleData[2].name,
|
||
"form.province": seleData[0].name,
|
||
"form.city": seleData[1].name,
|
||
"form.district": seleData[2].name,
|
||
});
|
||
this._getStreet(seleData[2].id);
|
||
this._closeDateLw();
|
||
},
|
||
streetChoose() {
|
||
if (this.data.is_region == 1 && app._isTextEmpty(this.data.addressName)) {
|
||
wx.showToast({
|
||
icon: "none",
|
||
title: "请先选择所在地区",
|
||
duration: 1500,
|
||
});
|
||
} else {
|
||
this.setData({
|
||
streetShow: true,
|
||
opren: false,
|
||
});
|
||
}
|
||
},
|
||
//选择街道
|
||
streetConfirm(e) {
|
||
let strname = e.target.dataset.strname;
|
||
this.setData({
|
||
"form.streetName": strname,
|
||
streetShow: false,
|
||
});
|
||
},
|
||
appendAddress() {
|
||
let urlStr = "";
|
||
if (app._isTextEmpty(this.data.form.username)) {
|
||
wx.showToast({
|
||
icon: "none",
|
||
title: "请输入收货人姓名",
|
||
duration: 1500,
|
||
});
|
||
return;
|
||
}
|
||
if (app._isTextEmpty(this.data.form.mobile)) {
|
||
wx.showToast({
|
||
icon: "none",
|
||
title: "请输入手机机号",
|
||
duration: 1500,
|
||
});
|
||
return;
|
||
}
|
||
if (app._isMoblie(this.data.form.mobile)) {
|
||
wx.showToast({
|
||
icon: "none",
|
||
title: "请输入正确的手机号",
|
||
duration: 1500,
|
||
});
|
||
return;
|
||
}
|
||
if (this.data.is_region == 1 && app._isTextEmpty(this.data.addressName)) {
|
||
wx.showToast({
|
||
icon: "none",
|
||
title: "请选择所在区域",
|
||
duration: 1500,
|
||
});
|
||
return;
|
||
}
|
||
|
||
if (
|
||
this.data.is_region == 1 &&
|
||
this.data.isShowStreet &&
|
||
app._isTextEmpty(this.data.form.streetName)
|
||
) {
|
||
wx.showToast({
|
||
icon: "none",
|
||
title: "请选择所在街道",
|
||
duration: 1500,
|
||
});
|
||
return;
|
||
}
|
||
|
||
if (app._isTextEmpty(this.data.form.address)) {
|
||
wx.showToast({
|
||
icon: "none",
|
||
title: "请输入详细地址",
|
||
duration: 1500,
|
||
});
|
||
return;
|
||
}
|
||
let json = {};
|
||
json = {
|
||
address_id: this.data.form.address_id,
|
||
username: this.data.form.username,
|
||
mobile: this.data.form.mobile,
|
||
city: this.data.form.city,
|
||
address: this.data.form.address,
|
||
province: this.data.form.province,
|
||
isdefault: this.data.form.isDefault ? 1 : 0,
|
||
district: this.data.form.district,
|
||
street: this.data.form.streetName,
|
||
};
|
||
urlStr = app.getNetAddresss("member.member-address.store");
|
||
app._postNetWork({
|
||
url: urlStr,
|
||
showToastIn: false,
|
||
data: json,
|
||
success: function (resdata) {
|
||
var res = resdata.data;
|
||
if (res.result == 1) {
|
||
wx.showToast({
|
||
title: res.msg,
|
||
icon: "none",
|
||
duration: 1500,
|
||
success: function () {
|
||
setTimeout(function () {
|
||
//要延时执行的代码
|
||
wx.navigateBack({
|
||
delta: 1,
|
||
});
|
||
}, 1500); //延迟时间
|
||
},
|
||
});
|
||
} else {
|
||
wx.showToast({
|
||
icon: "none",
|
||
title: res.msg,
|
||
duration: 1500,
|
||
});
|
||
}
|
||
},
|
||
fail: function (res) {},
|
||
});
|
||
},
|
||
});
|