<template>
							 | 
						|
									<scroll-view 
							 | 
						|
									scroll-y="true" 
							 | 
						|
									:style="{height: height}"
							 | 
						|
									@scrolltolower="moreAddress">
							 | 
						|
										<uv-radio-group v-model="selectAddress"
							 | 
						|
										@change="editDefault"
							 | 
						|
										v-if="addressList.length > 0">
							 | 
						|
											<view v-for="item in addressList" :key="item.id" class="address-item">
							 | 
						|
										
							 | 
						|
												<view class="address-item-top"
							 | 
						|
												@click="select(item)">
							 | 
						|
													<view class="img-box">
							 | 
						|
														<image src="../../static/address/icon1.png" mode="aspectFill"></image>
							 | 
						|
													</view>
							 | 
						|
										
							 | 
						|
													<view class="address-info">
							 | 
						|
														<view class="user-info">
							 | 
						|
															<text class="user-name">{{ item.name }}</text>
							 | 
						|
															<text class="user-phone">{{ item.phone }}</text>
							 | 
						|
															<text v-if="item.defaultFlag == 1" class="is-default">默认</text>
							 | 
						|
														</view>
							 | 
						|
										
							 | 
						|
														<view class="address-detail">
							 | 
						|
															{{ item.address + " " + item.addressDetails }}
							 | 
						|
														</view>
							 | 
						|
													</view>
							 | 
						|
												</view>
							 | 
						|
										
							 | 
						|
												<view class="controls"
							 | 
						|
												v-if="controls">
							 | 
						|
										
							 | 
						|
													<view class="default-checkbox">
							 | 
						|
														<uv-radio
							 | 
						|
														:name="item.id" 
							 | 
						|
														label-disabled 
							 | 
						|
														size="30rpx"
							 | 
						|
														icon-size="30rpx">
							 | 
						|
															默认地址
							 | 
						|
														</uv-radio>
							 | 
						|
													</view>
							 | 
						|
										
							 | 
						|
													<view class="edit-btn">
							 | 
						|
														<uv-icon name="edit-pen"></uv-icon>
							 | 
						|
														<text @click="editAddress(item)" class="control-title">编辑</text>
							 | 
						|
													</view>
							 | 
						|
										
							 | 
						|
													<view class="del-btn">
							 | 
						|
														<uv-icon name="trash"></uv-icon>
							 | 
						|
														<text class="control-title" @click="deleteAddress(item.id)">删除</text>
							 | 
						|
													</view>
							 | 
						|
										
							 | 
						|
												</view>
							 | 
						|
											</view>
							 | 
						|
										</uv-radio-group>
							 | 
						|
										<view
							 | 
						|
										style="padding: 100rpx 0;"
							 | 
						|
										v-else>
							 | 
						|
											<uv-empty 
							 | 
						|
											mode="history"
							 | 
						|
											textSize="28rpx"
							 | 
						|
											iconSize="100rpx"/>
							 | 
						|
										</view>
							 | 
						|
									</scroll-view>
							 | 
						|
								</template>
							 | 
						|
								
							 | 
						|
								<script>
							 | 
						|
									export default {
							 | 
						|
										props : {
							 | 
						|
											controls : {
							 | 
						|
												default : false,
							 | 
						|
												type : Boolean,
							 | 
						|
											},
							 | 
						|
											height : {
							 | 
						|
												default : 'calc(90vh - 180rpx)'
							 | 
						|
											}
							 | 
						|
										},
							 | 
						|
										data() {
							 | 
						|
											return {
							 | 
						|
												selectAddress : 0,
							 | 
						|
												queryParams: {
							 | 
						|
													pageNo: 1,
							 | 
						|
													pageSize: 10,
							 | 
						|
												},
							 | 
						|
												addressList: [],
							 | 
						|
												total : 0,
							 | 
						|
											}
							 | 
						|
										},
							 | 
						|
										methods: {
							 | 
						|
											//获取地址列表
							 | 
						|
											getAddressList() {
							 | 
						|
												return new Promise((success, fail) => {
							 | 
						|
													this.$api('getAddressPageList', this.queryParams, res => {
							 | 
						|
														if (res.code == 200) {
							 | 
						|
															this.addressList = res.result.records || [];
							 | 
						|
															this.total = res.result.total || 0;
							 | 
						|
															res.result.records.forEach(n => { //筛选默认地址
							 | 
						|
																if (n.defaultFlag == 1) {
							 | 
						|
																	this.selectAddress = n.id
							 | 
						|
																}
							 | 
						|
															})
							 | 
						|
															success(res.result)
							 | 
						|
														}
							 | 
						|
													})
							 | 
						|
												})
							 | 
						|
											},
							 | 
						|
											// 加载更多
							 | 
						|
											moreAddress(){
							 | 
						|
												if(this.queryParams.pageSize > this.total){
							 | 
						|
													return
							 | 
						|
												}
							 | 
						|
												this.queryParams.pageSize += 10
							 | 
						|
												this.getAddressList()
							 | 
						|
											},
							 | 
						|
											// 删除地址
							 | 
						|
											deleteAddress(e){
							 | 
						|
												this.$emit('deleteAddress', e)
							 | 
						|
											},
							 | 
						|
											// 修改地址
							 | 
						|
											editAddress(e){
							 | 
						|
												this.$emit('editAddress', e)
							 | 
						|
											},
							 | 
						|
											// 切换默认地址
							 | 
						|
											editDefault(e){
							 | 
						|
												this.$emit('editDefault', e)
							 | 
						|
											},
							 | 
						|
											// 选择了地址
							 | 
						|
											select(e){
							 | 
						|
												this.$emit('select', e)
							 | 
						|
											},
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
								</script>
							 | 
						|
								
							 | 
						|
								<style scoped lang="scss">
							 | 
						|
								.address-item {
							 | 
						|
									background: white;
							 | 
						|
									border-radius: 20rpx;
							 | 
						|
									overflow: hidden;
							 | 
						|
									margin-bottom: 20rpx;
							 | 
						|
									padding: 15rpx 15rpx 0rpx 15rpx;
							 | 
						|
									width: 680rpx;
							 | 
						|
								
							 | 
						|
									.address-item-top {
							 | 
						|
										border-bottom: 1px dashed #D3D1D1;
							 | 
						|
										display: flex;
							 | 
						|
										align-items: center;
							 | 
						|
										padding: 0rpx 0rpx 15rpx 0rpx;
							 | 
						|
								
							 | 
						|
										.img-box {
							 | 
						|
											width: 100rpx;
							 | 
						|
											height: 120rpx;
							 | 
						|
								
							 | 
						|
											image {
							 | 
						|
												width: 75%;
							 | 
						|
												height: 75%;
							 | 
						|
												display: block;
							 | 
						|
												margin: 12.5% auto;
							 | 
						|
											}
							 | 
						|
										}
							 | 
						|
								
							 | 
						|
										.address-info {
							 | 
						|
											width: calc(100% - 120rpx);
							 | 
						|
											height: 100%;
							 | 
						|
											display: flex;
							 | 
						|
											flex-direction: column;
							 | 
						|
											justify-content: space-between;
							 | 
						|
								
							 | 
						|
											.user-info {
							 | 
						|
												display: flex;
							 | 
						|
												align-items: center;
							 | 
						|
								
							 | 
						|
												text {
							 | 
						|
													display: block;
							 | 
						|
													line-height: 40rpx;
							 | 
						|
													margin-right: 20rpx;
							 | 
						|
												}
							 | 
						|
								
							 | 
						|
												.user-name,
							 | 
						|
												.user-phone {
							 | 
						|
													font-size: 30rpx;
							 | 
						|
												}
							 | 
						|
								
							 | 
						|
												.is-default {
							 | 
						|
													display: flex;
							 | 
						|
													align-items: center;
							 | 
						|
													justify-content: center;
							 | 
						|
													background: #FEB773;
							 | 
						|
													color: white;
							 | 
						|
													width: 80rpx;
							 | 
						|
													height: 35rpx;
							 | 
						|
													border-radius: 20rpx;
							 | 
						|
													font-size: 22rpx;
							 | 
						|
												}
							 | 
						|
											}
							 | 
						|
								
							 | 
						|
											.address-detail {
							 | 
						|
												color: #4a4a4a;
							 | 
						|
												font-size: 26rpx;
							 | 
						|
												overflow: hidden;
							 | 
						|
												display: -webkit-box;
							 | 
						|
												-webkit-box-orient: vertical;
							 | 
						|
												-webkit-line-clamp: 2;
							 | 
						|
												text-overflow: ellipsis;
							 | 
						|
											}
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
								
							 | 
						|
									.controls {
							 | 
						|
										display: flex;
							 | 
						|
										align-items: center;
							 | 
						|
										justify-content: space-between;
							 | 
						|
										align-items: center;
							 | 
						|
										font-size: 26rpx;
							 | 
						|
										padding: 15rpx 15rpx 25rpx 15rpx;
							 | 
						|
								
							 | 
						|
										.default-checkbox {
							 | 
						|
											display: flex;
							 | 
						|
								
							 | 
						|
											text {
							 | 
						|
												margin-left: 8rpx;
							 | 
						|
											}
							 | 
						|
										}
							 | 
						|
								
							 | 
						|
										.control-title {
							 | 
						|
											height: 30rpx;
							 | 
						|
											line-height: 30rpx;
							 | 
						|
											color: #666666;
							 | 
						|
										}
							 | 
						|
								
							 | 
						|
										view {
							 | 
						|
											display: flex;
							 | 
						|
											align-items: center;
							 | 
						|
										}
							 | 
						|
								
							 | 
						|
										image {
							 | 
						|
											width: 23rpx;
							 | 
						|
											height: 23rpx;
							 | 
						|
											vertical-align: middle;
							 | 
						|
											margin-right: 8rpx;
							 | 
						|
										}
							 | 
						|
									}
							 | 
						|
								}
							 | 
						|
								</style>
							 |