2022-04-19 17:58:39 +08:00
|
|
|
|
<template>
|
2022-05-01 22:39:54 +08:00
|
|
|
|
<view class="container">
|
|
|
|
|
<view class="address-list" v-for="(item, index) in addressList" :key="item.id">
|
|
|
|
|
<view class="address-item" @click="handleClick" @longpress="handleLongPress(item)">
|
|
|
|
|
<view class="left">
|
|
|
|
|
<u-avatar :text="item.name ? item.name.slice(0, 1) : 'U'" fontSize="18" randomBgColor></u-avatar>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="middle">
|
|
|
|
|
<view class="info">
|
|
|
|
|
<view class="name">{{ item.name }}</view>
|
|
|
|
|
<view class="mobile">{{ item.mobile }}</view>
|
|
|
|
|
<u-tag class="type" v-if="item.type === 1" text="默认" plain size="mini" type="success"></u-tag>
|
|
|
|
|
</view>
|
|
|
|
|
<view class="detail">
|
|
|
|
|
<u--text :lines="2" size="14" color="#939393" :text="item.detailAddress"></u--text>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
<navigator class="right" :url="`/pages/address/update?addressId=${item.id}`" open-type="navigate" hover-class="none">
|
|
|
|
|
<u-icon name="edit-pen" size="28"></u-icon>
|
|
|
|
|
</navigator>
|
|
|
|
|
</view>
|
|
|
|
|
</view>
|
|
|
|
|
|
|
|
|
|
<navigator class="fixed-btn-box" url="/pages/address/create" open-type="navigate" hover-class="none">
|
|
|
|
|
<u-button type="primary" size="large" text="新增地址"></u-button>
|
|
|
|
|
</navigator>
|
|
|
|
|
<u-safe-bottom customStyle="background: #ffffff"></u-safe-bottom>
|
|
|
|
|
</view>
|
2022-04-19 17:58:39 +08:00
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script>
|
2022-05-01 22:39:54 +08:00
|
|
|
|
import { getAddressList, deleteAddress } from '../../api/address'
|
|
|
|
|
|
2022-04-19 17:58:39 +08:00
|
|
|
|
export default {
|
|
|
|
|
data() {
|
|
|
|
|
return {
|
2022-05-01 22:39:54 +08:00
|
|
|
|
addressList: []
|
2022-04-19 17:58:39 +08:00
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
onLoad() {},
|
2022-05-01 22:39:54 +08:00
|
|
|
|
onShow() {
|
|
|
|
|
this.loadAddressListData()
|
|
|
|
|
},
|
|
|
|
|
methods: {
|
|
|
|
|
loadAddressListData() {
|
|
|
|
|
getAddressList().then(res => {
|
|
|
|
|
this.addressList = res.data
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
handleLongPress(item) {
|
|
|
|
|
uni.showModal({
|
|
|
|
|
title: '提示',
|
|
|
|
|
content: `删除收件人[${item.name}${item.mobile}]\n地址:${item.detailAddress.slice(0, 5)}......${item.detailAddress.slice(-6)}?`,
|
|
|
|
|
success: res => {
|
|
|
|
|
if (res.confirm) {
|
|
|
|
|
deleteAddress({ id: item.id }).then(res => {
|
|
|
|
|
uni.$u.toast('地址已删除')
|
|
|
|
|
this.loadAddressListData();
|
|
|
|
|
})
|
|
|
|
|
} else if (res.cancel) {
|
|
|
|
|
//console.log('用户点击取消')
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
})
|
|
|
|
|
},
|
|
|
|
|
handleClick(){
|
|
|
|
|
// TODO 提交订单时选择地址逻辑
|
|
|
|
|
}
|
|
|
|
|
}
|
2022-04-19 17:58:39 +08:00
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
2022-05-01 22:39:54 +08:00
|
|
|
|
<style lang="scss" scoped>
|
|
|
|
|
.address-list {
|
|
|
|
|
.address-item {
|
|
|
|
|
padding: 10rpx 0;
|
|
|
|
|
border-bottom: $custom-border-style;
|
|
|
|
|
@include flex-space-between;
|
|
|
|
|
.left {
|
|
|
|
|
margin: 20rpx;
|
|
|
|
|
}
|
|
|
|
|
.middle {
|
|
|
|
|
flex: 1;
|
|
|
|
|
margin: 20rpx;
|
|
|
|
|
@include flex(column);
|
|
|
|
|
.info {
|
|
|
|
|
@include flex-left;
|
|
|
|
|
.name {
|
|
|
|
|
font-size: 30rpx;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
}
|
|
|
|
|
.mobile {
|
|
|
|
|
font-size: 28rpx;
|
|
|
|
|
margin-left: 15rpx;
|
|
|
|
|
}
|
|
|
|
|
.type {
|
|
|
|
|
margin-left: 15rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.detail {
|
|
|
|
|
margin-top: 10rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
.right {
|
|
|
|
|
margin: 20rpx;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.fixed-btn-box {
|
|
|
|
|
position: fixed;
|
|
|
|
|
bottom: 0;
|
|
|
|
|
left: 0;
|
|
|
|
|
width: 750rpx;
|
|
|
|
|
}
|
|
|
|
|
</style>
|