store/packageD/mycomponent/yz_addressList/yz_addressList.js

600 lines
16 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// packageH/newDraw/components/yz_addressList/yz_addressList.js
const app = getApp();
Component({
addGlobalClass: true,
/**
* 组件的属性列表
*/
properties: {
show: {
value: false,
type: Boolean
},
dispatch: {
value: '',
type: Number
},
need_lat :{
value: '',
type: Number
},
status: {
value: '',
type: Number
},
polygons: {
value: [],
type: Array
}
},
/**
* 组件的初始数据
*/
data: {
addressData: [],
form: {},
create: true,
popAddAddress: false,
addressName: {},
districtVal: '',
strShow: false,
provinceData: [],
pickerValue: [0, 0, 0],
delivery_status: 0,
selected: '',
is_point: "",
mapshow: false,
tapEditOrAdd: 1
},
pageLifetimes: {
show: function () {
// this.getAddress();
//加载地址数据初始化
this._initAddressInfo();
},
},
observers: {
'show':function(acs){
let that = this;
if(acs == true){
that.getAddress();
}
},
'dispatch': function (patch) {
this.setData({
delivery_status: patch
});
},
'status': function (num) {
this.setData({
selected: num
});
}
},
/**
* 组件的方法列表
*/
methods: {
//获取收货地址
getAddress() {
this.addressData = [];
let that = this;
let urlStr = app.getNetAddresss("member.member-address.index");
app._getNetWork({
url: urlStr,
success: function (resdata) {
var res = resdata.data;
if (res.result == 1) {
let defaultAddress = res.data;
defaultAddress = res.data.filter(function (item) {
return item.isdefault === 1;
});
that.setData({
popupSpecs: true,
addressData: res.data,
defaultAddress: defaultAddress
});
} else {
wx.showToast({
icon: 'none',
title: res.msg,
duration: 1500
});
}
},
fail: function (res) {
console.log(res);
}
});
},
showLocation() {
this.setData({
mapshow: true
});
},
goLocation_ro() {
app.getGeocoder(this.data.addressName+this.data.form.address).then(res=>{
this.setData({
is_point: res,
});
},err=> {
this.showLocation();
}).catch((err)=> {
this.showLocation();
});
},
selectAddress(e) {
let item = e.currentTarget.dataset.addr;
this.triggerEvent('confirm', item);
},
confirmSelect(e) {
if (e.detail == 'noshow') {
this.setData({
mapshow: false
});
} else {
let loc = e.detail;
this.setData({
is_point: loc,
mapshow: false
});
}
},
editAddress(e) {
let item = e.currentTarget.dataset.item;
this.setData({
"form.address_id": item.id,
"form.username": item.username,
"form.mobile": item.mobile,
"form.province": item.province,
"form.city": item.city,
"form.district": item.district,
"form.address": item.address,
"form.street": item.street,
"form.isDefault": item.isdefault === 0 ? false : true,
'is_point.lng': item.longitude,
'is_point.lat': item.latitude,
tapEditOrAdd: 1
});
// this.triggerEvent('confirm', this.data.for);
this.setData({
create: false,
popAddAddress: true,
});
this._getStreet(item.district_id);
this.setData({
addressName: this.data.form.province + " " + this.data.form.city + " " + this.data.form.district
});
},
//关闭增加地址
popAddressClose() {
this.setData({
popAddAddress: false
});
},
//收件人输入绑定
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
});
},
//默认地址开关值绑定
isDefaultChange: function (e) {
let isDefault = e.detail;
this.setData({
"form.isDefault": isDefault
});
},
//详细地址绑定输入
addressinp: function (e) {
let addressval = e.detail.value;
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)
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.street": "",
"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();
},
//获取街道
_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 (this.data.is_region == 1 && 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 strname = e.target.dataset.strname;
this.setData({
"form.street": strname,
"streetShow": false,
opren: true
});
},
//增加地址
appendAddress(e) {
let that = this;
let apptype = e.currentTarget.dataset.apptype;
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 (!/^[0-9]{1,}$/.test(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.strShow && app._isTextEmpty(this.data.form.street)) {
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 = {
username: this.data.form.username,
mobile: this.data.form.mobile,
province: this.data.form.province,
city: this.data.form.city,
district: this.data.form.district,
address: this.data.form.address,
isdefault: this.data.form.isDefault ? 1 : 0,
address_id: this.data.form.address_id
};
if (this.data.is_point) {
json.longitude = this.data.is_point.lng;
json.latitude = this.data.is_point.lat;
}
if (this.data.strShow) {
json.street = this.data.form.street;
}
let urlStr = '';
if (apptype === 'update') {
urlStr = app.getNetAddresss('member.member-address.update');
} else {
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({
icon: 'none',
title: res.msg,
duration: 1500
});
that.triggerEvent('confirm', res.data);
that.popAddressClose();
that.setData({
"form.username": '',
"form.mobile": '',
"form.province": '',
"form.city": '',
"form.district": '',
"form.street": '',
"form.address": '',
"form.isDefault": false,
addressName: '',
});
} else {
wx.showToast({
icon: 'none',
title: res.msg,
duration: 1500
});
}
},
fail: function (res) {
}
});
},
onCloseAdd() {
this.setData({
show: false
});
},
//跳转到新增地址
addAddress() {
this.setData({
is_point: '',
tapEditOrAdd: 2
});
this.getIsOpenAddress();
//新增地址 本地处理
this.showAddAddress();
},
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);
}
});
},
//显示增加地址
showAddAddress() {
this.setData({
"form.username": '',
"form.mobile": '',
"form.province": '',
"form.city": '',
"form.district": '',
"form.street": '',
"form.address": '',
"form.isDefault": false,
addressName: '',
popAddAddress: true,
create: true
});
},
}
});