<template>
|
|
<view class="address">
|
|
<u-navbar :title="$t('page.address.address')" @leftClick="leftClick"></u-navbar>
|
|
<view v-if="list.length > 0" class="address-list">
|
|
<u-radio-group v-model="radiovalue1" placement="column">
|
|
<view class="address-item" v-for="(item, index) in list">
|
|
<div class="radio">
|
|
<u-radio :name="item.id" :key="index" activeColor="#e68534"></u-radio>
|
|
</div>
|
|
<view class="address-info">
|
|
<view class="user-info">
|
|
<text>{{ item.name }}</text>
|
|
<text>{{ item.phone }}</text>
|
|
<u-tag v-if="item.defaultFlag == 'true'" text="默认" size="mini" type="warning"
|
|
shape="circle"></u-tag>
|
|
</view>
|
|
<view class="address-detail">
|
|
{{ item.region }}
|
|
{{ item.detail_address }}
|
|
</view>
|
|
</view>
|
|
<view class="icon">
|
|
<u-icon name="edit-pen" color="#ccc" size="28" @click="toAdd(item.id)"></u-icon>
|
|
<u-icon name="trash" color="#ccc" size="28" @click="del(item.id)"></u-icon>
|
|
</view>
|
|
</view>
|
|
</u-radio-group>
|
|
</view>
|
|
|
|
<view v-else class="no-product">
|
|
<view class="box">
|
|
<view class="no-product-title">{{ $t('page.address.no-address') }}</view>
|
|
</view>
|
|
</view>
|
|
|
|
<view class="address-bottom">
|
|
<u-button @click="toAdd" type="primary" shape="circle" color="#ED7A2F"
|
|
:text="$t('page.address.addAddress')"></u-button>
|
|
</view>
|
|
|
|
<u-modal :show="delShow" @confirm="confirm" ref="uModal" :title="$t('myToactTitle')" @cancel="delCancel"
|
|
:showCancelButton="true" :confirmText="$t('page.address.confirm')" :cancelText="$t('page.address.cancel')"
|
|
:asyncClose="true">
|
|
<view class="slot-content">
|
|
<rich-text :nodes="$t('page.address.del_content')"></rich-text>
|
|
</view>
|
|
</u-modal>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
radiovalue1: '',
|
|
total: 0,
|
|
list: [],
|
|
delShow: false,
|
|
delId: ''
|
|
}
|
|
},
|
|
onShow() {
|
|
this.getAddressList();
|
|
},
|
|
methods: {
|
|
getAddressList() { //获取地址列表
|
|
this.request('addressPage', {}, {
|
|
"pageSize": 10,
|
|
"pageNo": 0
|
|
}).then(res => {
|
|
this.total = res.result.total
|
|
this.list = res.result.records;
|
|
})
|
|
},
|
|
toAdd(id) {
|
|
uni.navigateTo({
|
|
url: '/pages/user/address/addAddres?id=' + id
|
|
})
|
|
},
|
|
leftClick() {
|
|
uni.switchTab({
|
|
url: '/pages/user/user'
|
|
})
|
|
},
|
|
del(id) {
|
|
this.delShow = true;
|
|
this.delId = id
|
|
},
|
|
confirm() {
|
|
this.request('deleAddress', {
|
|
id: this.delId
|
|
}).then(res => {
|
|
this.delShow = false;
|
|
if (res.code == 200) {
|
|
this.getAddressList();
|
|
uni.$u.toast(this.$t('success-operation'))
|
|
}
|
|
})
|
|
},
|
|
delCancel() {
|
|
this.delShow = false;
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.address {
|
|
.address-list {
|
|
margin-top: 54px;
|
|
|
|
.address-item {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
background: white;
|
|
border-radius: 10rpx;
|
|
box-sizing: border-box;
|
|
padding: 15px 15px;
|
|
font-size: 25rpx;
|
|
border-bottom: 1px solid #eaeaea;
|
|
|
|
&:nth-last-child(1) {
|
|
border: none;
|
|
}
|
|
|
|
.radio {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.address-info {
|
|
width: calc(100% - 60px);
|
|
|
|
.user-info {
|
|
display: flex;
|
|
align-items: center;
|
|
|
|
text {
|
|
margin-right: 10rpx;
|
|
}
|
|
}
|
|
}
|
|
|
|
.icon {
|
|
display: flex;
|
|
width: 70px;
|
|
justify-content: space-between;
|
|
}
|
|
}
|
|
}
|
|
|
|
.no-product {
|
|
height: calc(100vh - 124px);
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
box-sizing: border-box;
|
|
padding: 0px 15px;
|
|
|
|
.box {
|
|
font-size: 26rpx;
|
|
text-align: center;
|
|
|
|
.to-home {
|
|
padding: 20rpx 140rpx;
|
|
border: 1px solid #ccc;
|
|
border-radius: 5px;
|
|
text-align: center;
|
|
margin: 20rpx 0px;
|
|
}
|
|
}
|
|
}
|
|
|
|
.address-bottom {
|
|
display: flex;
|
|
align-items: center;
|
|
position: fixed;
|
|
left: 0;
|
|
bottom: 0;
|
|
width: 100%;
|
|
height: 80px;
|
|
background: white;
|
|
box-shadow: -1px -1px 1px rgba(0, 0, 0, .1);
|
|
box-sizing: border-box;
|
|
padding: 0px 15px;
|
|
|
|
&::v-deep .u-button {
|
|
height: 70%;
|
|
}
|
|
}
|
|
}
|
|
</style>
|