You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
332 lines
8.4 KiB
332 lines
8.4 KiB
|
5 years ago
|
// pages/user/address/add/index.js
|
||
|
|
import util from "../../../../utils/util.js"
|
||
|
|
import user from "../../../../utils/https/user.js"
|
||
|
|
import common from "../../../../utils/https/common.js"
|
||
|
|
let app = getApp()
|
||
|
|
Page({
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 页面的初始数据
|
||
|
|
*/
|
||
|
|
data: {
|
||
|
|
isDefault:true,
|
||
|
|
region: [],
|
||
|
|
customItem: '',
|
||
|
|
formData:{
|
||
|
|
},
|
||
|
|
id:null,// 为null的时候是新增,否则是编辑
|
||
|
|
multiArray: [],
|
||
|
|
multiIndex: [],
|
||
|
|
province: [],
|
||
|
|
areaList:[],
|
||
|
|
safeBottom:app.globalData.safeBottom
|
||
|
|
},
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 生命周期函数--监听页面加载
|
||
|
|
*/
|
||
|
|
onLoad: function (options) {
|
||
|
|
// 如果id存在那么需要获取地址详情
|
||
|
|
// 获取省市区列表
|
||
|
|
this.setData({
|
||
|
|
id:options.id || null
|
||
|
|
})
|
||
|
|
common._post("regionNoLogin/getRegionList").then(res=>{
|
||
|
|
this.setData({
|
||
|
|
areaList: res.data
|
||
|
|
})
|
||
|
|
|
||
|
|
if(this.data.id){
|
||
|
|
// 获取当前收货地址详情
|
||
|
|
user.user_post("memberNeedLoginController/getOneMemberConsignees",{id:this.data.id}).then(res=>{
|
||
|
|
console.log(res)
|
||
|
|
res.data.isDefault = res.data.isDefault==='DEFAULT';
|
||
|
|
this.setData({
|
||
|
|
formData:res.data
|
||
|
|
})
|
||
|
|
this.setArea(res.data.provinceId,res.data.cityId,res.data.areaId);
|
||
|
|
})
|
||
|
|
}
|
||
|
|
else {
|
||
|
|
this.initArea();
|
||
|
|
}
|
||
|
|
|
||
|
|
})
|
||
|
|
},
|
||
|
|
// 给省市区赋值
|
||
|
|
setArea:function(pid,cid,aid){
|
||
|
|
var province = [], city = [], area = [], areaList = this.data.areaList;
|
||
|
|
province = areaList.filter(item => {
|
||
|
|
return item.pid == 100000;
|
||
|
|
})
|
||
|
|
city = areaList.filter(item => {
|
||
|
|
return item.pid == pid;
|
||
|
|
})
|
||
|
|
area = areaList.filter(item => {
|
||
|
|
return item.pid == cid;
|
||
|
|
})
|
||
|
|
let provinceIndex = province.findIndex((item, index) => item.id == pid)
|
||
|
|
let cityIndex = city.findIndex((item, index) => item.id == cid && item.pid==pid)
|
||
|
|
let areaIndex = area.findIndex((item,index) =>item.id==aid && item.pid==cid)
|
||
|
|
var provinceList = province.map(item => {
|
||
|
|
return item.name
|
||
|
|
})
|
||
|
|
var cityList = city.map(item => {
|
||
|
|
return item.name;
|
||
|
|
})
|
||
|
|
var quyuList = area.map(item => {
|
||
|
|
return item.name;
|
||
|
|
})
|
||
|
|
this.setData({
|
||
|
|
multiArray: [provinceList, cityList, quyuList],
|
||
|
|
multiIndex: [provinceIndex, cityIndex, areaIndex],
|
||
|
|
province
|
||
|
|
})
|
||
|
|
},
|
||
|
|
// 初始化省市区
|
||
|
|
initArea: function (provinceId){
|
||
|
|
var province = [], city = [], area = [], areaList = this.data.areaList;
|
||
|
|
province = areaList.filter(item => {
|
||
|
|
return item.pid == 100000;
|
||
|
|
})
|
||
|
|
city = areaList.filter(item => {
|
||
|
|
return item.pid == province[0].id;
|
||
|
|
})
|
||
|
|
area = areaList.filter(item => {
|
||
|
|
return item.pid == city[0].id;
|
||
|
|
})
|
||
|
|
var provinceList = province.map(item => {
|
||
|
|
return item.name
|
||
|
|
})
|
||
|
|
var cityList = city.map(item => {
|
||
|
|
return item.name;
|
||
|
|
})
|
||
|
|
var quyuList = area.map(item => {
|
||
|
|
return item.name;
|
||
|
|
})
|
||
|
|
console.log(province)
|
||
|
|
this.setData({
|
||
|
|
multiArray: [provinceList, cityList, quyuList],
|
||
|
|
province
|
||
|
|
})
|
||
|
|
},
|
||
|
|
// 设为默认
|
||
|
|
setDefault:function(e){
|
||
|
|
var formData = this.data.formData;
|
||
|
|
formData.isDefault = e.detail.value;
|
||
|
|
this.setData({
|
||
|
|
formData: formData
|
||
|
|
})
|
||
|
|
},
|
||
|
|
// 选择省市区
|
||
|
|
bindMultiPickerChange: function (e) {
|
||
|
|
// console.log(this.data.multiArray)
|
||
|
|
console.log('picker发送选择改变,携带值为', e.detail.value)
|
||
|
|
this.setData({
|
||
|
|
multiIndex: e.detail.value
|
||
|
|
})
|
||
|
|
},
|
||
|
|
bindMultiPickerColumnChange: function (e) {
|
||
|
|
console.log('修改的列为', e.detail.column, ',值为', e.detail.value);
|
||
|
|
var areaList = this.data.areaList;
|
||
|
|
var data = {
|
||
|
|
multiArray: this.data.multiArray,
|
||
|
|
multiIndex: this.data.multiIndex
|
||
|
|
};
|
||
|
|
data.multiIndex[e.detail.column] = e.detail.value;
|
||
|
|
const provinceName = data.multiArray[0][data.multiIndex[0]];
|
||
|
|
let provinceId = "";
|
||
|
|
let province = this.data.province;
|
||
|
|
let quyuList = [], cityList = [], provinceList = [], city = [], area = [];
|
||
|
|
try {
|
||
|
|
province.forEach(item => {
|
||
|
|
if (item.name === provinceName) {
|
||
|
|
provinceId = item.id;
|
||
|
|
throw (new Error('find item'))
|
||
|
|
}
|
||
|
|
})
|
||
|
|
} catch (err) {
|
||
|
|
}
|
||
|
|
city = areaList.filter(item => {
|
||
|
|
return item.pid == provinceId;
|
||
|
|
})
|
||
|
|
if (e.detail.column == 0) {
|
||
|
|
data.multiIndex = [e.detail.value, 0, 0];
|
||
|
|
try {
|
||
|
|
area = areaList.filter(item => {
|
||
|
|
return item.pid == city[data.multiIndex[1]].id;
|
||
|
|
})
|
||
|
|
} catch (err) { }
|
||
|
|
} else if (e.detail.column == 1) {
|
||
|
|
data.multiIndex[2] = 0;
|
||
|
|
area = areaList.filter(item => {
|
||
|
|
return item.pid == city[e.detail.value].id;
|
||
|
|
})
|
||
|
|
} else {
|
||
|
|
const cityName = data.multiArray[1][data.multiIndex[1]];
|
||
|
|
let cityId = '';
|
||
|
|
try {
|
||
|
|
areaList.forEach(item => {
|
||
|
|
if (item.name === cityName) {
|
||
|
|
cityId = item.id;
|
||
|
|
throw (new Error('find item'));
|
||
|
|
}
|
||
|
|
})
|
||
|
|
} catch (err) { }
|
||
|
|
area = areaList.filter(item => {
|
||
|
|
return item.pid == cityId;
|
||
|
|
})
|
||
|
|
}
|
||
|
|
provinceList = province.map(item => {
|
||
|
|
return item.name
|
||
|
|
})
|
||
|
|
cityList = city.map(item => {
|
||
|
|
return item.name;
|
||
|
|
})
|
||
|
|
quyuList = area.map(item => {
|
||
|
|
return item.name;
|
||
|
|
})
|
||
|
|
data.multiArray = [provinceList, cityList, quyuList],
|
||
|
|
this.setData(data);
|
||
|
|
},
|
||
|
|
bindRegionChange: function (e) {
|
||
|
|
console.log('picker发送选择改变,携带值为', e.detail.value)
|
||
|
|
this.setData({
|
||
|
|
region: e.detail.value
|
||
|
|
})
|
||
|
|
},
|
||
|
|
// 输入监听 不是双向绑定啊 绝望
|
||
|
|
nameInput:function(e){
|
||
|
|
var formData = this.data.formData;
|
||
|
|
formData.username = e.detail.value;
|
||
|
|
this.setData({
|
||
|
|
formData: formData
|
||
|
|
})
|
||
|
|
},
|
||
|
|
telInput:function(e){
|
||
|
|
var formData = this.data.formData;
|
||
|
|
formData.mobile = e.detail.value;
|
||
|
|
this.setData({
|
||
|
|
formData: formData
|
||
|
|
})
|
||
|
|
},
|
||
|
|
addressInput:function(e){
|
||
|
|
var formData = this.data.formData;
|
||
|
|
formData.address = e.detail.value;
|
||
|
|
this.setData({
|
||
|
|
formData: formData
|
||
|
|
})
|
||
|
|
},
|
||
|
|
// 保存
|
||
|
|
save:function(){
|
||
|
|
// console.log()
|
||
|
|
const areaList = this.data.areaList;
|
||
|
|
let province = this.data.multiArray[0][this.data.multiIndex[0]],
|
||
|
|
city = this.data.multiArray[1][this.data.multiIndex[1]],
|
||
|
|
area = this.data.multiArray[2][this.data.multiIndex[2]];
|
||
|
|
|
||
|
|
if(!this.data.formData.username){
|
||
|
|
wx.showToast({
|
||
|
|
title: '请输入姓名!',
|
||
|
|
icon:"none"
|
||
|
|
})
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
if (!this.data.formData.mobile) {
|
||
|
|
wx.showToast({
|
||
|
|
title: '请输入手机号码!',
|
||
|
|
icon: "none"
|
||
|
|
})
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
if (!util.isTel(this.data.formData.mobile)) {
|
||
|
|
wx.showToast({
|
||
|
|
title: '请输入正确的手机号码!',
|
||
|
|
icon: "none"
|
||
|
|
})
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
if (!province || !city || !area) {
|
||
|
|
wx.showToast({
|
||
|
|
title: '请选择地区!',
|
||
|
|
icon: "none"
|
||
|
|
})
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
if (!this.data.formData.address) {
|
||
|
|
wx.showToast({
|
||
|
|
title: '请输入详细地址!',
|
||
|
|
icon: "none"
|
||
|
|
})
|
||
|
|
return false;
|
||
|
|
}
|
||
|
|
var data = this.data.formData;
|
||
|
|
data.provinceId = areaList.filter(item => item.name == province)[0].id;
|
||
|
|
data.cityId = areaList.filter(item => item.name == city && item.pid == data.provinceId)[0].id;
|
||
|
|
data.areaId = areaList.filter(item => item.name == area && item.pid == data.cityId)[0].id;
|
||
|
|
data.isDefault = data.isDefault?'DEFAULT':'NORMAL';
|
||
|
|
let service ="addMemberConsignees";
|
||
|
|
if(this.data.id){
|
||
|
|
data.consigneesId = this.data.id;
|
||
|
|
service ="updateMemberConsignees";
|
||
|
|
}
|
||
|
|
user.user_post("memberNeedLoginController/" + service,data).then(res=>{
|
||
|
|
if(res.data){
|
||
|
|
wx.showToast({
|
||
|
|
title: '保存成功',
|
||
|
|
icon:'success'
|
||
|
|
})
|
||
|
|
util.back()
|
||
|
|
}
|
||
|
|
})
|
||
|
|
},
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 生命周期函数--监听页面初次渲染完成
|
||
|
|
*/
|
||
|
|
onReady: function () {
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 生命周期函数--监听页面显示
|
||
|
|
*/
|
||
|
|
onShow: function () {
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 生命周期函数--监听页面隐藏
|
||
|
|
*/
|
||
|
|
onHide: function () {
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 生命周期函数--监听页面卸载
|
||
|
|
*/
|
||
|
|
onUnload: function () {
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 页面相关事件处理函数--监听用户下拉动作
|
||
|
|
*/
|
||
|
|
onPullDownRefresh: function () {
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 页面上拉触底事件的处理函数
|
||
|
|
*/
|
||
|
|
onReachBottom: function () {
|
||
|
|
|
||
|
|
},
|
||
|
|
|
||
|
|
/**
|
||
|
|
* 用户点击右上角分享
|
||
|
|
*/
|
||
|
|
onShareAppMessage: function () {
|
||
|
|
|
||
|
|
}
|
||
|
|
})
|