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.

94 lines
2.0 KiB

<template>
<div>
<headerNav title="修改地址"/>
<van-address-edit
:area-list="areaList"
:showDelete="showDelete"
show-set-default
@save="onSave"
@delete="onDelete"
:addressInfo="info"
/>
</div>
</template>
<script>
import areaList from '../../../data/area';
import {GetAddressById, SaveAddress, UpdateAddress, DelAddress} from "../../../api/user.js";
import {AddressEdit} from 'vant';
export default {
components: {
[AddressEdit.name]: AddressEdit,
},
data() {
return {
areaList,
showDelete: false,
info: {
},
}
},
methods: {
onSave(data) {
const params = {
...data,
address: data.addressDetail,
areaNo: data.areaCode,
city: data.city,
county: data.county,
country: data.country,
mobile: data.tel,
name: data.name,
hasDefault: data.isDefault ? 2 : 1,
};
if (data.id) {
UpdateAddress(params).then(response => {
this.$toast('更新成功');
this.$router.go(-1);
})
} else {
SaveAddress(params).then(response => {
this.$toast('保存成功');
this.$router.go(-1);
})
}
},
onDelete(data) {
const params = {
id: data.id,
};
DelAddress(params).then(response => {
this.$toast('删除成功');
this.$router.go(-1);
})
},
},
created: function () {
const id = this.$route.query.id;
if (id > 0) {
this.showDelete = true;
GetAddressById(id).then(response => {
this.info = {
...response,
addressDetail: response.address,
tel: response.mobile,
areaCode: response.areaNo,
isDefault: 0,
};
})
}
}
}
</script>
<style>
.van-picker__toolbar {
font-size: 16px;
}
</style>