<template>
|
|
<view class="select-address">
|
|
<view class="default-address">
|
|
<u-cell @click="select" class="celi" :title="(defaultAddress.region || '') + ' ' + (defaultAddress.detailAddress || '')" isLink
|
|
:value="$t('page.address.select_address')">
|
|
<view class="address-info" slot="label">
|
|
{{ (defaultAddress.name || '') + ' ' + (defaultAddress.phone || '') }}
|
|
</view>
|
|
</u-cell>
|
|
</view>
|
|
<u-popup :show="showAddressList" @close="closeAddressList" :round="10">
|
|
<view class="address-list">
|
|
<u-list @scrolltolower="scrolltolower" height="auto">
|
|
<u-list-item v-for="(item,index) in addressList" :key="index">
|
|
<view @click="selectAddress(item)" class="address-item">
|
|
<view class="address-info">
|
|
<view class="user-info">
|
|
<text class="name">{{ item.name }}</text>
|
|
<text class="phone">{{ item.phone }}</text>
|
|
<u-tag v-if="item.default_flag == 1" text="默认" shape="circle" bgColor="#e68534"
|
|
borderColor="#e68534" size="mini"></u-tag>
|
|
</view>
|
|
<view class="address-detail">
|
|
<text class="body">{{ item.region }}</text>
|
|
<text class="detail">{{ item.detailAddress }}</text>
|
|
</view>
|
|
</view>
|
|
<view class="icon">
|
|
<u-icon name="checkbox-mark" @click="selectAddress(item)" size="40rpx"></u-icon>
|
|
</view>
|
|
</view>
|
|
</u-list-item>
|
|
<u-list-item>
|
|
<view @click="addAddress" class="address-item">
|
|
<view class="add-address">
|
|
{{ $t('page.address.addAddress') }}
|
|
</view>
|
|
<view class="icon">
|
|
<!-- <u-icon name="edit-pen" size="40rpx"></u-icon> -->
|
|
</view>
|
|
</view>
|
|
</u-list-item>
|
|
</u-list>
|
|
</view>
|
|
</u-popup>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
export default {
|
|
data() {
|
|
return {
|
|
showAddressList: false,
|
|
addressList: [],
|
|
defaultAddress: {},
|
|
status: 'nomore',
|
|
queryParams: {
|
|
pageSize: 9999,
|
|
currentPage: 0
|
|
}
|
|
}
|
|
},
|
|
created() {
|
|
this.getAddressList();
|
|
},
|
|
methods: {
|
|
getAddressList() {
|
|
this.request("addressPage", {}, this.queryParams).then(res => {
|
|
this.addressList = res.result.records;
|
|
this.selectAddress(res.result.records[0] || {})
|
|
if (this.addressList.length === res.result.total) {
|
|
this.nomore = true;
|
|
}
|
|
})
|
|
},
|
|
clickListStop(e){
|
|
|
|
},
|
|
addAddress(){
|
|
this.$emit('toAdd')
|
|
},
|
|
scrolltolower() { //滑动到了底部
|
|
// this.queryParams.pageSize += 10;
|
|
// this.getAddressList();
|
|
},
|
|
selectAddress(addressItem) { //用户选择了地址
|
|
this.defaultAddress = addressItem;
|
|
this.showAddressList = false;
|
|
this.$emit('selectAddress', addressItem.id);
|
|
},
|
|
select(){
|
|
this.showAddressList = true;
|
|
},
|
|
closeAddressList(){
|
|
this.showAddressList = false;
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.select-address {
|
|
.default-address{
|
|
.celi {
|
|
background-color: #F8F8F8;
|
|
border-radius: 10px;
|
|
margin: 10px 0;
|
|
}
|
|
}
|
|
.address-item {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
padding: 15px 10px;
|
|
border-bottom: 1px solid rgba(0, 0, 0, .1);
|
|
|
|
.user-info {
|
|
display: flex;
|
|
|
|
}
|
|
|
|
.icon {
|
|
// width: ;
|
|
}
|
|
|
|
text {
|
|
margin-right: 10rpx;
|
|
}
|
|
|
|
}
|
|
.add-address{
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
}
|
|
}
|
|
</style>
|