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.
161 lines
3.4 KiB
161 lines
3.4 KiB
<template>
|
|
<view class="container">
|
|
<view class="main">
|
|
<view
|
|
v-if="addressList.length===0"
|
|
class="empty"
|
|
>
|
|
<view class="img">
|
|
<image src="http://jiales.gz-yami.com/addr.png" />
|
|
</view>
|
|
<view class="txt">
|
|
您还没有收货地址
|
|
</view>
|
|
</view>
|
|
<radio-group class="radio-group">
|
|
<block
|
|
v-for="(item, index) in addressList"
|
|
:key="index"
|
|
>
|
|
<view class="address">
|
|
<view
|
|
class="personal"
|
|
@tap="selAddrToOrder(item)"
|
|
>
|
|
<view class="info-tit">
|
|
<text class="name">
|
|
{{ item.receiver }}
|
|
</text>
|
|
<text class="tel">
|
|
{{ item.mobile }}
|
|
</text>
|
|
<image
|
|
src="@/static/images/icon/revise.png"
|
|
:data-addrid="item.addrId"
|
|
@tap.stop="toEditAddress"
|
|
/>
|
|
</view>
|
|
<view class="addr">
|
|
<text class="addr-get">
|
|
{{ item.province }}{{ item.city }}{{ item.area }}{{ item.addr }}
|
|
</text>
|
|
</view>
|
|
</view>
|
|
<view
|
|
class="select-btn"
|
|
:data-addrid="item.addrId"
|
|
@tap="onDefaultAddr"
|
|
>
|
|
<view class="box">
|
|
<radio
|
|
:value="item.prodId"
|
|
:checked="item.commonAddr==1"
|
|
color="#eb2444"
|
|
:data-addrid="item.addrId"
|
|
@tap="onDefaultAddr"
|
|
/>
|
|
设为默认地址
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</block>
|
|
</radio-group>
|
|
</view>
|
|
<view
|
|
class="footer"
|
|
@tap="onAddAddr"
|
|
>
|
|
<text>新增收货地址</text>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script setup>
|
|
const order = ref(-1)
|
|
onLoad((option) => {
|
|
if (option.order) {
|
|
order.value = option.order
|
|
}
|
|
})
|
|
|
|
const addressList = ref([])
|
|
/**
|
|
* 加载地址列表
|
|
*/
|
|
onShow(() => {
|
|
onGetList()
|
|
})
|
|
|
|
/**
|
|
* 获取收获列表接口
|
|
*/
|
|
const onGetList = () => {
|
|
uni.showLoading()
|
|
http.request({
|
|
url: '/p/address/list',
|
|
method: 'GET'
|
|
})
|
|
.then(({ data }) => {
|
|
addressList.value = data
|
|
uni.hideLoading()
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 新增收货地址
|
|
*/
|
|
const onAddAddr = () => {
|
|
uni.navigateTo({
|
|
url: '/pages/editAddress/editAddress'
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 设置为默认地址
|
|
*/
|
|
const onDefaultAddr = (e) => {
|
|
const addrId = e.currentTarget.dataset.addrid
|
|
uni.showLoading()
|
|
http.request({
|
|
url: '/p/address/defaultAddr/' + addrId,
|
|
method: 'PUT',
|
|
data: {
|
|
addrId
|
|
}
|
|
})
|
|
.then(() => {
|
|
uni.hideLoading()
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 修改地址
|
|
*/
|
|
const toEditAddress = (e) => {
|
|
const addrId = e.currentTarget.dataset.addrid
|
|
uni.navigateTo({
|
|
url: '/pages/editAddress/editAddress?addrId=' + addrId
|
|
})
|
|
}
|
|
|
|
/**
|
|
* 选择地址 跳转回提交订单页
|
|
*/
|
|
const selAddrToOrder = (item) => {
|
|
if (order.value == 0) {
|
|
const pages = getCurrentPages() // 当前页面
|
|
const prevPage = pages[pages.length - 2] // 上一页面
|
|
prevPage.item = item // 直接给上一页面赋值
|
|
prevPage.selAddress = 'yes'
|
|
// 返回
|
|
uni.navigateBack({
|
|
delta: 1
|
|
})
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style scoped lang="scss">
|
|
@use './delivery-address.scss';
|
|
</style>
|