Commit 58f4c1c2 authored by Damon's avatar Damon

feat: 支持添加多个收货地址

parent 384009e4
......@@ -35,6 +35,21 @@ let settledApiFun = function(vm){
let syncAddress = async (params = {}) => await vm.$u.post(ucenterApiUrl+'/v1/settled/sync-address', params);
//我的合同//
let Mycontract = async (params)=>await vm.$u.get(ucenterApiUrl+'/v1/settled-contract/info'+'?Authorization='+ vm.vuex_token + params)
// 我的地址-获取所有地址
let getMyAddress = async (params = {}) => await vm.$u.get(ucenterApiUrl+`/wxh-worker-rest/rest/myAddress/${vm.vuex_token}/list`, params)
// 我的地址-新增保存
let saveMyAddress = async (params = {}) => await vm.$u.post(ucenterApiUrl+`/wxh-worker-rest/rest/myAddress/${vm.vuex_token}/save`, params)
// 我的地址-删除地址
let deleteMyAddress = async (params = {}) => await vm.$u.delete(ucenterApiUrl+`/wxh-worker-rest/rest/myAddress/${vm.vuex_token}/${params.id}`)
// 我的地址-获取默认
let getDefaultAddress = async (params = {}) => await vm.$u.get(ucenterApiUrl+`/wxh-worker-rest/rest/myAddress/${vm.vuex_token}/default`, params)
// 我的地址-设置默认
let setDefaultAddress = async (params = {}) => await vm.$u.put(ucenterApiUrl+`/wxh-worker-rest/rest/myAddress/${vm.vuex_token}/default/${params.id}`)
const settledApi = {
getSettleBaseInfo,
......@@ -53,6 +68,11 @@ let settledApiFun = function(vm){
listByNotice,
syncAddress,
Mycontract,
getMyAddress,
saveMyAddress,
deleteMyAddress,
getDefaultAddress,
setDefaultAddress
}
return settledApi
}
......
......@@ -8,9 +8,9 @@
<view class="txt" @click="$u.throttle(selectSite, 500)">{{ formatAddress }}</view>
<u-icon custom-prefix="wxh" name="pen" size="32" @click="$u.throttle(editSite, 500)"></u-icon>
</view>
<view class="u-flex u-row-between default" v-show="isDefault">
<view class="u-flex u-row-between default" v-if="siteType !== 'view'">
<view @click="$u.throttle(setDefault, 500)">
<u-icon name="checkmark-circle" color="#2272FF" size="32"></u-icon>
<u-icon name="checkmark-circle" :color="isDefault ? '#2272FF' : '#999'" size="32"></u-icon>
<text class="txt">默认地址</text>
</view>
<view @click="$u.throttle(remove, 500)">
......
......@@ -67,6 +67,7 @@ export default {
location: '',
address: '',
type: '充电桩安装',
id: null,
name: '',
mobile: '',
nameStatus: true,
......@@ -107,6 +108,10 @@ export default {
this.siteType = 'edit';
}
if(e.id) {
this.id = decodeURIComponent(e.id);
}
if(e.name) {
this.name = decodeURIComponent(e.name);
}
......@@ -264,19 +269,20 @@ export default {
if(!this.validateForm()) {
return false
}
if (this.siteType === 'add') {
} else if (this.siteType === 'select') {
if (this.siteType === 'select') {
this.commitSite()
} else if (this.siteType === 'edit') {
} else {
if (this.$u.test.isEmpty(this.siteInfo)) {
let params = {
updateFlag: true,
mobile: this.mobile,
name: this.name,
provinceName: this.region[0],
cityName: this.region[1],
districtName: this.region[2],
address: this.region.join("") + this.address
};
let res = await this.$u.api.updateAddress(params);
if (this.id) params.id = this.id
let res = await this.$u.api.saveMyAddress(params);
if (res && res.code == 200) {
this.$u.route({ type: 'back' });
this.show = false
......
......@@ -2,8 +2,8 @@
<view class="u-flex address-wrap">
<w-navbar title="收货地址"></w-navbar>
<view class="lists">
<view class="body">
<w-address @editSite="toEditSite" @selectSite="selectSite" @setDefault="setDefault" @remove="remove" :info="info" :is-default="true" />
<view class="body" v-for="(item, index) in lists" :key="item.id">
<w-address @editSite="toEditSite(item)" @selectSite="selectSite(item)" @setDefault="setDefault(item, index)" @remove="remove(item)" :info="item" :is-default="item.enable === 1" />
</view>
</view>
......@@ -23,12 +23,7 @@ export default {
background: {
backgroundColor: 'none'
},
info: {
name: '',
mobile: '',
address: '',
region: [],
},
lists: [],
type: ''
};
},
......@@ -36,17 +31,6 @@ export default {
editPen() {
return process.uniEnv.qn_base_url + 'icon/edit-pen.png'
},
hasAdderss() {
return this.info.address
},
addressInfo() {
return {
name: this.name,
mobile: this.mobile,
address: this.address,
region: this.region || [],
}
},
submitBtn() {
return {
color: '#FFFFFF',
......@@ -70,19 +54,17 @@ export default {
this.getMineSite()
},
getMineSite() {
this.$u.api.getSiteAddress().then((res) => {
this.$u.api.getMyAddress().then((res) => {
const data = res.data
if(res.code == 200 && !this.$u.test.isEmpty(data)) {
let region = []
if(data.provinceName && data.cityName && data.districtName) {
region = [data.provinceName, data.cityName, data.districtName]
}
this.info = {
name: data.name,
mobile: data.mobile,
address: data.address,
region: region,
}
if (data.length > 0) {
this.lists = data.map(v => {
let region = []
if(v.provinceName && v.cityName && v.districtName) {
region = [v.provinceName, v.cityName, v.districtName]
}
v.region = region
return v
})
}
})
},
......@@ -95,7 +77,13 @@ export default {
})
},
setDefault(val) {
console.log("val", val)
this.$u.api.setDefaultAddress({id: val.id}).then((res) => {
if (res.code === 200) {
this.lists.forEach(v => {
this.$set(v, 'enable', v.id === val.id ? 1 : 0)
})
}
})
},
remove(val) {
uni.showModal({
......@@ -103,7 +91,20 @@ export default {
content: '确定要删除该收货地址?',
success: (res) => {
if (res.confirm) {
console.log("delete")
uni.showLoading({
title: '加载中',
})
this.$u.api.deleteMyAddress({id: val.id}).then((res) => {
uni.hideLoading()
if (res.code === 200) {
this.getMineSite()
} else {
uni.showToast({
icon: "none",
title: res.data.message,
})
}
})
}
}
})
......@@ -117,7 +118,8 @@ export default {
name: val.name,
mobile: val.mobile,
address: address,
region: val.region
region: val.region,
id: val.id
}
prevPage.$vm.updateSite(site)
this.$u.route({
......@@ -137,6 +139,7 @@ export default {
name: val.name,
mobile: val.mobile,
address: val.address,
id: val.id
}
})
}
......
......@@ -40,7 +40,7 @@
<view class="more" @click="toAddress">更多地址></view>
</view>
<view class="body">
<w-address :info="addressInfo" @editSite="editSite" @selectSite="editSite" />
<w-address :info="addressInfo" @editSite="editSite" @selectSite="editSite" siteType="view" />
</view>
</view>
</view>
......@@ -104,7 +104,7 @@ export default {
this.loadOrderInfo()
},
loadAddress() {
this.$u.api.getSiteAddress().then((res) => {
this.$u.api.getDefaultAddress().then((res) => {
if(res.code == 200 && res.data) {
this.addressInfo.name = res.data.name
this.addressInfo.mobile = res.data.mobile
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment