地址bug修复
This commit is contained in:
@@ -19,9 +19,9 @@
|
||||
|
||||
<u-form-item label="所在地区 :" prop="">
|
||||
<view class="add_arrow" @click="addreShow=true">{{addressForm.areaidpathtext}}</view>
|
||||
<u-picker @cancel="addcancel" :show="addreShow" ref="uPicker" :columns="columns" keyName="UName" -->
|
||||
@confirm="addconfirm" @change="changeHandler" ></u-picker>
|
||||
</u-form-item>
|
||||
<u-picker @cancel="addcancel" :show="addreShow" ref="uPicker" :columns="columns" keyName="UName"
|
||||
@confirm="addconfirm" @change="changeHandler" ></u-picker>
|
||||
</u-form-item>
|
||||
<u-form-item label="详细地址 :" prop="useraddress">
|
||||
<u-input type="string" v-model="addressForm.useraddress" placeholder="小区楼栋/乡村名称" clearable
|
||||
border="surround" />
|
||||
@@ -50,6 +50,7 @@
|
||||
</template>
|
||||
|
||||
<script>
|
||||
|
||||
import musicPlay from '@/components/music.vue'
|
||||
import $http from '@/config/requestConfig.js';
|
||||
import addressList1 from "@/static/json/address.json"
|
||||
@@ -63,14 +64,14 @@
|
||||
// indexp:0,
|
||||
// indexq:0,
|
||||
// indexc:0,
|
||||
playData: {},
|
||||
playData:{},
|
||||
addreShow: false, //是否显示
|
||||
columns: [], //省份数据显示,三级联动需要三维数组,展示初始数据
|
||||
columnData: [], //市数据
|
||||
columnDatas: [], //区地址
|
||||
switchTrue: true,
|
||||
switchFalse: false,
|
||||
addressChanged: false, // 地址修改标记
|
||||
addressChanged:false, // 地址修改标记
|
||||
navName: '', // 顶部导航栏标题
|
||||
provId: '', // 存储省id
|
||||
cityId: '', // 存储市id
|
||||
@@ -90,51 +91,6 @@
|
||||
isShowDel: false,
|
||||
editIndex: 0,
|
||||
deleteShow: false,
|
||||
list: [{
|
||||
value: 1,
|
||||
label: '中国',
|
||||
children: [{
|
||||
value: 2,
|
||||
label: '广东',
|
||||
children: [{
|
||||
value: 3,
|
||||
label: '深圳'
|
||||
},
|
||||
{
|
||||
value: 4,
|
||||
label: '广州'
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
value: 5,
|
||||
label: '广西',
|
||||
children: [{
|
||||
value: 6,
|
||||
label: '南宁'
|
||||
},
|
||||
{
|
||||
value: 7,
|
||||
label: '桂林'
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
value: 8,
|
||||
label: '美国',
|
||||
children: [{
|
||||
value: 9,
|
||||
label: '纽约',
|
||||
children: [{
|
||||
value: 10,
|
||||
label: '皇后街区'
|
||||
}]
|
||||
}]
|
||||
}
|
||||
|
||||
],
|
||||
rules: {
|
||||
username: [{
|
||||
required: true,
|
||||
@@ -181,10 +137,10 @@
|
||||
this.getAddress()
|
||||
}
|
||||
this.initDataPicker() //初始化省份列表
|
||||
|
||||
|
||||
},
|
||||
onShow() {
|
||||
|
||||
|
||||
},
|
||||
computed: {
|
||||
...mapState(['userInfo']),
|
||||
@@ -192,113 +148,113 @@
|
||||
onReady() {
|
||||
this.$refs.addForm.setRules(this.rules)
|
||||
},
|
||||
components: {
|
||||
musicPlay
|
||||
components:{
|
||||
musicPlay
|
||||
},
|
||||
methods: {
|
||||
methods: {
|
||||
// 三级联动
|
||||
initDataPicker() {
|
||||
// console.log(this.addressList,'addressList')
|
||||
// this.$http
|
||||
// .post('api/province/getProvince')
|
||||
// .then(res => {
|
||||
// if (res.code == 0) {
|
||||
// this.addressList = res.provinceEntity
|
||||
//此处的province主要用作数据的初始化,即刚打开就需要进行展示的数据,这个跟第一条省份数据相关,我的第一条是北京市,所以需要columns中的三维数组,第一维度是省份数据数组,第二维度是市数据数组,第三维度是区数据数组
|
||||
let province = []; //初始数据需要展示的省份
|
||||
let province1 = [{
|
||||
"cityId": this.addressList[0].cityList[0].cityId,
|
||||
"provId": this.addressList[0].cityList[0].provId,
|
||||
"cityName": this.addressList[0].cityList[0].cityName,
|
||||
"UName": this.addressList[0].cityList[0].cityName,
|
||||
"createDate": this.addressList[0].cityList[0].createDate,
|
||||
"regionCode": this.addressList[0].cityList[0].regionCode,
|
||||
"countyList": this.addressList[0].cityList[0].countyList
|
||||
}]; //因为第一个市北京市,所以就直接添加北京市下辖的直辖市了 也即初始数据需要展示的市,北京市只有一个市辖区
|
||||
let province2 = []; //初始数据需要展示的区域数据,也即是 北京市市辖区内的区
|
||||
// .post('api/province/getProvince')
|
||||
// .then(res => {
|
||||
// if (res.code == 0) {
|
||||
// this.addressList = res.provinceEntity
|
||||
//此处的province主要用作数据的初始化,即刚打开就需要进行展示的数据,这个跟第一条省份数据相关,我的第一条是北京市,所以需要columns中的三维数组,第一维度是省份数据数组,第二维度是市数据数组,第三维度是区数据数组
|
||||
let province = []; //初始数据需要展示的省份
|
||||
let province1 = [{
|
||||
"cityId": this.addressList[0].cityList[0].cityId,
|
||||
"provId": this.addressList[0].cityList[0].provId,
|
||||
"cityName": this.addressList[0].cityList[0].cityName,
|
||||
"UName": this.addressList[0].cityList[0].cityName,
|
||||
"createDate": this.addressList[0].cityList[0].createDate,
|
||||
"regionCode": this.addressList[0].cityList[0].regionCode,
|
||||
"countyList": this.addressList[0].cityList[0].countyList
|
||||
}]; //因为第一个市北京市,所以就直接添加北京市下辖的直辖市了 也即初始数据需要展示的市,北京市只有一个市辖区
|
||||
let province2 = []; //初始数据需要展示的区域数据,也即是 北京市市辖区内的区
|
||||
|
||||
|
||||
for (let i = 0; i < this.addressList.length; i++) {
|
||||
this.addressList[i].UName = this.addressList[i].provName
|
||||
if (this.addressList[i].cityList == null) {
|
||||
this.addressList[i].cityList = [{
|
||||
"cityId": this.addressList[i].provId,
|
||||
"provId": this.addressList[i].provId,
|
||||
"cityName": this.addressList[i].provName,
|
||||
"UName": this.addressList[i].provName,
|
||||
"createDate": this.addressList[i].createDate,
|
||||
"regionCode": this.addressList[i].regionCode,
|
||||
"countyList": [{
|
||||
"countyId": this.addressList[i].provId,
|
||||
"cityId": this.addressList[i].provId,
|
||||
"countyName": this.addressList[i].provName,
|
||||
"UName": this.addressList[i].provName,
|
||||
"createDate": this.addressList[i].createDate,
|
||||
"regionCode": this.addressList[i].regionCode
|
||||
}]
|
||||
}]
|
||||
} else {
|
||||
for (let j = 0; j < this.addressList[i].cityList.length; j++) {
|
||||
this.addressList[i].cityList[j].UName = this.addressList[i].cityList[j]
|
||||
.cityName
|
||||
for (let k = 0; k < this.addressList[i].cityList[j].countyList.length; k++) {
|
||||
this.addressList[i].cityList[j].countyList[k].UName = this.addressList[i]
|
||||
.cityList[j].countyList[k].countyName
|
||||
for (let i = 0; i < this.addressList.length; i++) {
|
||||
this.addressList[i].UName = this.addressList[i].provName
|
||||
if (this.addressList[i].cityList == null) {
|
||||
this.addressList[i].cityList = [{
|
||||
"cityId": this.addressList[i].provId,
|
||||
"provId": this.addressList[i].provId,
|
||||
"cityName": this.addressList[i].provName,
|
||||
"UName": this.addressList[i].provName,
|
||||
"createDate": this.addressList[i].createDate,
|
||||
"regionCode": this.addressList[i].regionCode,
|
||||
"countyList": [{
|
||||
"countyId": this.addressList[i].provId,
|
||||
"cityId": this.addressList[i].provId,
|
||||
"countyName": this.addressList[i].provName,
|
||||
"UName": this.addressList[i].provName,
|
||||
"createDate": this.addressList[i].createDate,
|
||||
"regionCode": this.addressList[i].regionCode
|
||||
}]
|
||||
}]
|
||||
} else {
|
||||
for (let j = 0; j < this.addressList[i].cityList.length; j++) {
|
||||
this.addressList[i].cityList[j].UName = this.addressList[i].cityList[j]
|
||||
.cityName
|
||||
for (let k = 0; k < this.addressList[i].cityList[j].countyList.length; k++) {
|
||||
this.addressList[i].cityList[j].countyList[k].UName = this.addressList[i]
|
||||
.cityList[j].countyList[k].countyName
|
||||
}
|
||||
}
|
||||
}
|
||||
province.push(this.addressList[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
province.push(this.addressList[i]);
|
||||
}
|
||||
|
||||
|
||||
this.addressList[0].cityList[0].countyList.map(item => {
|
||||
province2.push(item);
|
||||
});
|
||||
this.addressList[0].cityList[0].countyList.map(item => {
|
||||
province2.push(item);
|
||||
});
|
||||
|
||||
//省数据 因为要做数据初始化,所以是三维数组
|
||||
// 数据格式 [ [所有的省份数据:{},{}] , [第一个省份下的所有的市:{},{},{}] , [第一个市下面所有的区:{},{},{}] ]
|
||||
this.columns.push(province);
|
||||
this.columns.push(province1);
|
||||
this.columns.push(province2);
|
||||
//省数据 因为要做数据初始化,所以是三维数组
|
||||
// 数据格式 [ [所有的省份数据:{},{}] , [第一个省份下的所有的市:{},{},{}] , [第一个市下面所有的区:{},{},{}] ]
|
||||
this.columns.push(province);
|
||||
this.columns.push(province1);
|
||||
this.columns.push(province2);
|
||||
|
||||
// console.log(6666666,this.columns)
|
||||
// console.log(6666666,this.columns)
|
||||
|
||||
// 市数据数组,筛选address.json文件,将全国所有省下面的市数据放入数组
|
||||
// 格式[ [第一个省下面所有市,{},{},{}] , [第二个省下面所有市{},{},{}] , [第三个省下面所有市{},{},{}] ] 注意,以上的第一第二对应着 columns[0] 的数据
|
||||
// 市数据数组,筛选address.json文件,将全国所有省下面的市数据放入数组
|
||||
// 格式[ [第一个省下面所有市,{},{},{}] , [第二个省下面所有市{},{},{}] , [第三个省下面所有市{},{},{}] ] 注意,以上的第一第二对应着 columns[0] 的数据
|
||||
|
||||
this.addressList.map(item => {
|
||||
let city = [];
|
||||
item.cityList.map(item1 => {
|
||||
city.push(item1);
|
||||
});
|
||||
this.columnData.push(city);
|
||||
});
|
||||
this.addressList.map(item => {
|
||||
let city = [];
|
||||
item.cityList.map(item1 => {
|
||||
city.push(item1);
|
||||
});
|
||||
this.columnData.push(city);
|
||||
});
|
||||
|
||||
//区数据数组
|
||||
//数据格式: [ 所有省下面所有市的所有区 [ 第一个省下面所有市的区:[ [第一个省下面第一个市的所有区] , [第一个省下面第二个市的所有区] ,] , [ 第二个省下面所有市的区:[ [第二个省下面第一个市的所有区] , [第二个省下面第二个市的所有区] ,] ]
|
||||
//区数据数组
|
||||
//数据格式: [ 所有省下面所有市的所有区 [ 第一个省下面所有市的区:[ [第一个省下面第一个市的所有区] , [第一个省下面第二个市的所有区] ,] , [ 第二个省下面所有市的区:[ [第二个省下面第一个市的所有区] , [第二个省下面第二个市的所有区] ,] ]
|
||||
|
||||
let area = [];
|
||||
this.addressList.map((item, index) => {
|
||||
let area1 = []; //省下面所有市的初始化
|
||||
item.cityList.map(item1 => {
|
||||
area = []; //市下面的区初始化
|
||||
item1.countyList.map(item2 => {
|
||||
area.push(item2);
|
||||
});
|
||||
area1.push(area); // 每循环一个市,添加该市下面的所有区
|
||||
});
|
||||
this.columnDatas.push(area1); // 每循环一个省,添加该省下面的所有市
|
||||
});
|
||||
let area = [];
|
||||
this.addressList.map((item, index) => {
|
||||
let area1 = []; //省下面所有市的初始化
|
||||
item.cityList.map(item1 => {
|
||||
area = []; //市下面的区初始化
|
||||
item1.countyList.map(item2 => {
|
||||
area.push(item2);
|
||||
});
|
||||
area1.push(area); // 每循环一个市,添加该市下面的所有区
|
||||
});
|
||||
this.columnDatas.push(area1); // 每循环一个省,添加该省下面的所有市
|
||||
});
|
||||
|
||||
// };
|
||||
// }).catch(e => {
|
||||
// console.log(e,'e')
|
||||
// })
|
||||
// };
|
||||
// }).catch(e => {
|
||||
// console.log(e,'e')
|
||||
// })
|
||||
|
||||
},
|
||||
changeHandler(e) { //城市选择时触发
|
||||
console.log(e, '变化了', this.columnData, this.columnDatas)
|
||||
this.addressChanged = true
|
||||
// console.log(e,'变化了',this.columnData, this.columnDatas)
|
||||
this.addressChanged = true
|
||||
const {
|
||||
columnIndex, //当前选择的列,省 / 市 / 区
|
||||
value, // 当前选择的数组内容
|
||||
@@ -310,7 +266,7 @@
|
||||
// 当第一列值发生变化时,变化第二列和第三列的值(省份变更,市和区跟着变更)
|
||||
if (columnIndex === 0) { // 判断当前变更的是省还是市还是区
|
||||
// picker为选择器this实例,变化第二列对应的选项
|
||||
|
||||
|
||||
picker.setColumnValues(1, this.columnData[
|
||||
index]); //设置市为该省下面的所有市,index是当前省在省份数组的下标,对应市数组中的下表就是 该省下面的所有市 的数据
|
||||
picker.setColumnValues(2, this.columnDatas[index][0]); // 设置区域为该省下面第一个市下面的所有区域
|
||||
@@ -322,7 +278,7 @@
|
||||
},
|
||||
|
||||
addconfirm(e) { //点击确定按钮
|
||||
console.log(e, '选中的值')
|
||||
// console.log(e,'选中的值')
|
||||
this.addressChanged = true
|
||||
this.addreShow = false;
|
||||
this.addressForm.areaidpathtext = e.value[0].UName + '-' + e.value[1].UName + '-' + e.value[2].UName
|
||||
@@ -330,7 +286,7 @@
|
||||
this.cityId = e.value[1].cityId
|
||||
this.countyId = e.value[2].regionCode
|
||||
},
|
||||
|
||||
|
||||
addcancel() { //点击取消按钮
|
||||
this.addreShow = false;
|
||||
},
|
||||
@@ -358,7 +314,7 @@
|
||||
// this.addressForm.consigneePhone = this.addressForm.userphone
|
||||
// this.addressForm.consigneeName = this.addressForm.username
|
||||
// this.addressForm.regionCode = ''
|
||||
|
||||
|
||||
// // this.addressForm.userid = this.userInfo.id
|
||||
// if(this.addressChanged){ // 如果修改过地址区域,就重新赋值,否则保持不变
|
||||
// this.addressForm.areaidpath = `${this.provId}_${this.cityId}_${this.countyId}`
|
||||
@@ -369,15 +325,15 @@
|
||||
|
||||
// let data = this.addressForm
|
||||
let data = {
|
||||
'id': this.addressForm.addressid,
|
||||
'detailAddress': this.addressForm.useraddress,
|
||||
'regionCode': this.countyId,
|
||||
'userId': this.userInfo.id,
|
||||
'consigneePhone': this.addressForm.userphone,
|
||||
'id':this.addressForm.addressid,
|
||||
'detailAddress' : this.addressForm.useraddress,
|
||||
'regionCode':this.countyId,
|
||||
'userId':this.userInfo.id,
|
||||
'consigneePhone':this.addressForm.userphone,
|
||||
'consigneeName': this.addressForm.username,
|
||||
'isDefault': this.addressForm.isDafault ? 1 : 0
|
||||
'isDefault':this.addressForm.isDafault ? 1 : 0
|
||||
}
|
||||
console.log(data, '保存参数')
|
||||
console.log(data,'保存参数')
|
||||
$http.request({
|
||||
url: link_add,
|
||||
method: "POST", // POST、GET、PUT、DELETE,具体说明查看官方文档
|
||||
@@ -419,17 +375,16 @@
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
this.addressForm = {
|
||||
'useraddress': res.list[this.editIndex].detailAddress,
|
||||
'userphone': res.list[this.editIndex].consigneePhone,
|
||||
'username': res.list[this.editIndex].consigneeName,
|
||||
'isdefault': res.list[this.editIndex].isDefault,
|
||||
'isDafault': res.list[this.editIndex].isDefault == 1 ? true : false,
|
||||
'areaidpathtext': res.list[this.editIndex].province + '-' + res.list[this
|
||||
.editIndex].city + '-' + res.list[this.editIndex].county,
|
||||
'addressid': res.list[this.editIndex].id
|
||||
'useraddress':res.list[this.editIndex].detailAddress,
|
||||
'userphone':res.list[this.editIndex].consigneePhone,
|
||||
'username':res.list[this.editIndex].consigneeName,
|
||||
'isdefault':res.list[this.editIndex].isDefault,
|
||||
'isDafault':res.list[this.editIndex].isDefault == 1 ? true : false,
|
||||
'areaidpathtext':res.list[this.editIndex].province +'-'+ res.list[this.editIndex].city +'-'+ res.list[this.editIndex].county
|
||||
,'addressid':res.list[this.editIndex].id
|
||||
}
|
||||
this.countyId = res.list[this.editIndex].regionCode
|
||||
// this.addressForm = res.list[this.editIndex]
|
||||
// this.addressForm = res.list[this.editIndex]
|
||||
if (this.addressForm.isdefault == 1) {
|
||||
this.addressForm.isDafault = true
|
||||
}
|
||||
@@ -444,15 +399,15 @@
|
||||
this.deleteShow = false
|
||||
this.$http
|
||||
.get(`book/userAddress/delete?id=${this.addressForm.addressid}`)
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
uni.showToast({
|
||||
title: '地址删除成功',
|
||||
duration: 1000,
|
||||
});
|
||||
uni.navigateBack()
|
||||
}
|
||||
})
|
||||
.then(res => {
|
||||
if (res.code == 0) {
|
||||
uni.showToast({
|
||||
title: '地址删除成功',
|
||||
duration: 1000,
|
||||
});
|
||||
uni.navigateBack()
|
||||
}
|
||||
})
|
||||
},
|
||||
|
||||
},
|
||||
@@ -461,19 +416,10 @@
|
||||
</script>
|
||||
|
||||
<style lang="scss" scoped>
|
||||
.flexbox {
|
||||
display: flex;
|
||||
.flexbox{display: flex;}
|
||||
.selectAdd{ justify-content: space-between;
|
||||
.addItem{ display: block;width: 30%}
|
||||
}
|
||||
|
||||
.selectAdd {
|
||||
justify-content: space-between;
|
||||
|
||||
.addItem {
|
||||
display: block;
|
||||
width: 30%
|
||||
}
|
||||
}
|
||||
|
||||
.add_arrow {
|
||||
height: 28px;
|
||||
line-height: 28px;
|
||||
@@ -549,4 +495,4 @@
|
||||
background-image: linear-gradient(90deg, #bf0c0c 0%, #95110c 100%)
|
||||
}
|
||||
}
|
||||
</style>
|
||||
</style>
|
||||
|
||||
Reference in New Issue
Block a user