Commit 58f4c1c2 authored by Damon's avatar Damon

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

parent 384009e4
...@@ -36,6 +36,21 @@ let settledApiFun = function(vm){ ...@@ -36,6 +36,21 @@ let settledApiFun = function(vm){
//我的合同// //我的合同//
let Mycontract = async (params)=>await vm.$u.get(ucenterApiUrl+'/v1/settled-contract/info'+'?Authorization='+ vm.vuex_token + 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 = { const settledApi = {
getSettleBaseInfo, getSettleBaseInfo,
getSettleArea, getSettleArea,
...@@ -53,6 +68,11 @@ let settledApiFun = function(vm){ ...@@ -53,6 +68,11 @@ let settledApiFun = function(vm){
listByNotice, listByNotice,
syncAddress, syncAddress,
Mycontract, Mycontract,
getMyAddress,
saveMyAddress,
deleteMyAddress,
getDefaultAddress,
setDefaultAddress
} }
return settledApi return settledApi
} }
......
...@@ -8,9 +8,9 @@ ...@@ -8,9 +8,9 @@
<view class="txt" @click="$u.throttle(selectSite, 500)">{{ formatAddress }}</view> <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> <u-icon custom-prefix="wxh" name="pen" size="32" @click="$u.throttle(editSite, 500)"></u-icon>
</view> </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)"> <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> <text class="txt">默认地址</text>
</view> </view>
<view @click="$u.throttle(remove, 500)"> <view @click="$u.throttle(remove, 500)">
......
...@@ -67,6 +67,7 @@ export default { ...@@ -67,6 +67,7 @@ export default {
location: '', location: '',
address: '', address: '',
type: '充电桩安装', type: '充电桩安装',
id: null,
name: '', name: '',
mobile: '', mobile: '',
nameStatus: true, nameStatus: true,
...@@ -107,6 +108,10 @@ export default { ...@@ -107,6 +108,10 @@ export default {
this.siteType = 'edit'; this.siteType = 'edit';
} }
if(e.id) {
this.id = decodeURIComponent(e.id);
}
if(e.name) { if(e.name) {
this.name = decodeURIComponent(e.name); this.name = decodeURIComponent(e.name);
} }
...@@ -264,19 +269,20 @@ export default { ...@@ -264,19 +269,20 @@ export default {
if(!this.validateForm()) { if(!this.validateForm()) {
return false return false
} }
if (this.siteType === 'add') { if (this.siteType === 'select') {
} else if (this.siteType === 'select') {
this.commitSite() this.commitSite()
} else if (this.siteType === 'edit') { } else {
if (this.$u.test.isEmpty(this.siteInfo)) { if (this.$u.test.isEmpty(this.siteInfo)) {
let params = { let params = {
updateFlag: true, mobile: this.mobile,
name: this.name,
provinceName: this.region[0], provinceName: this.region[0],
cityName: this.region[1], cityName: this.region[1],
districtName: this.region[2], districtName: this.region[2],
address: this.region.join("") + this.address 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) { if (res && res.code == 200) {
this.$u.route({ type: 'back' }); this.$u.route({ type: 'back' });
this.show = false this.show = false
......
...@@ -2,8 +2,8 @@ ...@@ -2,8 +2,8 @@
<view class="u-flex address-wrap"> <view class="u-flex address-wrap">
<w-navbar title="收货地址"></w-navbar> <w-navbar title="收货地址"></w-navbar>
<view class="lists"> <view class="lists">
<view class="body"> <view class="body" v-for="(item, index) in lists" :key="item.id">
<w-address @editSite="toEditSite" @selectSite="selectSite" @setDefault="setDefault" @remove="remove" :info="info" :is-default="true" /> <w-address @editSite="toEditSite(item)" @selectSite="selectSite(item)" @setDefault="setDefault(item, index)" @remove="remove(item)" :info="item" :is-default="item.enable === 1" />
</view> </view>
</view> </view>
...@@ -23,12 +23,7 @@ export default { ...@@ -23,12 +23,7 @@ export default {
background: { background: {
backgroundColor: 'none' backgroundColor: 'none'
}, },
info: { lists: [],
name: '',
mobile: '',
address: '',
region: [],
},
type: '' type: ''
}; };
}, },
...@@ -36,17 +31,6 @@ export default { ...@@ -36,17 +31,6 @@ export default {
editPen() { editPen() {
return process.uniEnv.qn_base_url + 'icon/edit-pen.png' 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() { submitBtn() {
return { return {
color: '#FFFFFF', color: '#FFFFFF',
...@@ -70,19 +54,17 @@ export default { ...@@ -70,19 +54,17 @@ export default {
this.getMineSite() this.getMineSite()
}, },
getMineSite() { getMineSite() {
this.$u.api.getSiteAddress().then((res) => { this.$u.api.getMyAddress().then((res) => {
const data = res.data const data = res.data
if(res.code == 200 && !this.$u.test.isEmpty(data)) { if (data.length > 0) {
this.lists = data.map(v => {
let region = [] let region = []
if(data.provinceName && data.cityName && data.districtName) { if(v.provinceName && v.cityName && v.districtName) {
region = [data.provinceName, data.cityName, data.districtName] region = [v.provinceName, v.cityName, v.districtName]
}
this.info = {
name: data.name,
mobile: data.mobile,
address: data.address,
region: region,
} }
v.region = region
return v
})
} }
}) })
}, },
...@@ -95,7 +77,13 @@ export default { ...@@ -95,7 +77,13 @@ export default {
}) })
}, },
setDefault(val) { 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) { remove(val) {
uni.showModal({ uni.showModal({
...@@ -103,7 +91,20 @@ export default { ...@@ -103,7 +91,20 @@ export default {
content: '确定要删除该收货地址?', content: '确定要删除该收货地址?',
success: (res) => { success: (res) => {
if (res.confirm) { 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 { ...@@ -117,7 +118,8 @@ export default {
name: val.name, name: val.name,
mobile: val.mobile, mobile: val.mobile,
address: address, address: address,
region: val.region region: val.region,
id: val.id
} }
prevPage.$vm.updateSite(site) prevPage.$vm.updateSite(site)
this.$u.route({ this.$u.route({
...@@ -137,6 +139,7 @@ export default { ...@@ -137,6 +139,7 @@ export default {
name: val.name, name: val.name,
mobile: val.mobile, mobile: val.mobile,
address: val.address, address: val.address,
id: val.id
} }
}) })
} }
......
...@@ -40,7 +40,7 @@ ...@@ -40,7 +40,7 @@
<view class="more" @click="toAddress">更多地址></view> <view class="more" @click="toAddress">更多地址></view>
</view> </view>
<view class="body"> <view class="body">
<w-address :info="addressInfo" @editSite="editSite" @selectSite="editSite" /> <w-address :info="addressInfo" @editSite="editSite" @selectSite="editSite" siteType="view" />
</view> </view>
</view> </view>
</view> </view>
...@@ -104,7 +104,7 @@ export default { ...@@ -104,7 +104,7 @@ export default {
this.loadOrderInfo() this.loadOrderInfo()
}, },
loadAddress() { loadAddress() {
this.$u.api.getSiteAddress().then((res) => { this.$u.api.getDefaultAddress().then((res) => {
if(res.code == 200 && res.data) { if(res.code == 200 && res.data) {
this.addressInfo.name = res.data.name this.addressInfo.name = res.data.name
this.addressInfo.mobile = res.data.mobile 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