<template>
	<view class="container clearfix">
		<view v-if="isEmpty" class="empty-container">
			<image class="empty-container-image" src="https://img.caimei365.com/group1/M00/03/71/Cmis2F3wna6AFmO1AAGxLZjSeDg040.png" mode="aspectFit"></image>
			<view class="txt">您还没有收货地址</view>
			<view class="txt">点击底部按钮添加收货地址吧~~</view>
			<view class="login-btn" @click="addAddress('add')">添加新地址</view>
		</view>
		<view v-else class="address-list" :style="{'height': scrollHeight + 'px'}">
			<scroll-view scroll-y="true" :style="{'height': scrollHeight + 'px'}">
				<view class="list" v-for="(item, index) in addressList" :key="index" @click="checkAddress(item)">
					<view class="wrapper">
						<view class="u-box">
							<text class="name">{{item.receiver}}</text>
							<text class="mobile">{{item.mobile}}</text>
						</view>
						<view class="u-box b-b">
							<text class="address">收货地址：{{item.province}}{{item.city}}{{item.town}}{{item.address}}</text>
						</view>
						<view class="u-box b-t">
							<view v-if="item.defaultFlag == 1" class="tag-left">
								<view class="tag">默认地址</view>
							</view>
							<view v-else class="tag-left"></view>
							<view class="tag-right">
								<view class="t-b"  @click.stop="deleteAddress(item.addressId)">
									<text class="iconfont icon-shanchu"></text>
									<text class="txt">删除</text>
								</view>
								<view class="t-b"  @click.stop="addAddress('edit',item)">
									<text class="iconfont icon-bianji"></text>
									<text class="txt">编辑</text>
								</view>
								
							</view>
						</view>
					</view>
				</view>
			</scroll-view>
			<view class="add-btn" @click="addAddress('add')" :style="{bottom :isIphoneX ? '68rpx' : '34rpx'}">添加新地址</view>
		</view>
	</view>
</template>

<script>
	import authorize from '@/common/config/authorize.js'	
	export default {
		data() {
			return {
				isIphoneX:this.$store.state.isIphoneX,
				isSelect:false,
				isEmpty:false,
				listQuery:{
					userId:0,
					pageNum:1,
					pageSize:10
				},
				addressList: [],
				hasNextPage:false,
				allowDataStatus:true,
				wrapperHeight:'100%',
				scrollHeight:'',
				currPage:'',//当前页面
				prevPage:''//上一个页面
			}
		},
		onLoad(option){	
			if(option.type=='select'){this.isSelect = true;}
			this.setScrollHeight();
		},
		methods: {
			setScrollHeight() {	// 窗口高度 - 底部距离
				setTimeout(()=> {
					const query = wx.createSelectorQuery().in(this);
					query.selectAll('.add-btn').boundingClientRect();
					query.exec(res => {
						if(res[0][0]){
							let winHeight = this.$api.getWindowHeight(),
								eleTop = res[0][0].top - 1;
								this.scrollHeight =  eleTop;
						}
					})
				}, 500)
			},
			getQueryAddressList(){	//初始化地址列表数据
				this.UserService.QueryAddressList(this.listQuery).then(response =>{
					let data = response.data
					if(data.list&&data.list.length > 0){
						this.isEmpty = false
						this.hasNextPage = data.hasNextPage
						this.addressList = data.list
					}else{
						this.isEmpty = true
					}
				}).catch(error =>{
					this.$util.msg(error.msg,2000)
				})
			},
			getOnReachBottomData(){// 上滑加载分页
				this.listQuery.pageNum+=1
				this.UserService.QueryAddressList(this.listQuery).then(response =>{
					let data = response.data
					if(data.list&&data.list.length > 0){
						this.hasNextPage = data.hasNextPage
						this.addressList = this.addressList.concat(data.list) 
					}
				})
				.catch(error =>{
					this.$util.msg(error.msg,2000)
				})
			},
			checkAddress(item){//选择地址
				//是否需要返回地址(从订单确认页跳过来选收货地址)
				if(!this.isSelect){return ;}
				uni.setStorageSync('selectAddress',item)
				var pages = getCurrentPages();
				var prevPage = pages[pages.length - 2];  //上一个页面	
					prevPage.setData({select:'select'})
				uni.navigateBack();
			},
			addAddress(type,item){
				uni.navigateTo({
					url: `/pages/user/address/addressManage?type=${type}&data=${JSON.stringify(item)}`
				})
			},
			deleteAddress(addressId){//删除收货地址
				this.$util.modal('','确定要删除该地址？','确定','取消',true,() =>{
					this.UserService.DeleteAddress({addressId:addressId,userId:this.listQuery.userId}).then(response =>{
						this.$util.msg('删除成功',2000,true,'success')
						setTimeout(() =>{
							this.listQuery.pageNum = 1;
							this.addressList = [];
							this.getQueryAddressList();
						},2000)
					}).catch(error =>{
						this.$util.msg(error.msg,2000);
					})
				})
			}
		},
		onReachBottom() {
			if(this.hasNextPage) {
				this.getOnReachBottomData();
			}
		},
		onShow() {
			this.$api.getStorage().then((resolve) =>{
				this.listQuery.userId = resolve.userId ? resolve.userId : 0
				this.listQuery.pageNum = 1;
				this.addressList = [];
				this.getQueryAddressList();
				var pages = getCurrentPages();
				var prevPage = pages[pages.length - 2];  //上一个页面	
					// prevPage.setData({select:''})
			})
		}
	}
</script>

<style lang='scss'>
	page {
		height: auto;
	}
	page,.container{
		/* padding-bottom: 120upx; */
		background: #F7F7F7;
		border-top: 1px solid #EBEBEB;
	}
	.container{
		position: relative;
	}
	.list{
		display: flex;
		align-items: center;
		width: 702rpx;
		height: auto;
		padding: 24rpx;
		background: #FFFFFF;
		position: relative;
		border-bottom: 1px solid #EBEBEB;
	}
	.wrapper{
		display: flex;
		flex-direction: column;
		flex: 1;
	}
	.u-box.b-b{
		
	}
	.u-box.b-b{
		margin-bottom:24rpx;
	}
	.u-box.b-t{
		margin-bottom:0;
	}
	.u-box{
		display: flex;
		align-items: center;
		font-size: $font-size-28;
		color: $text-color;
		line-height: 40rpx;
		margin-bottom: 12rpx;
		.name{
			margin-right: 40rpx;
			font-weight: bold;
		}
		.mobile{
			font-weight: bold;
		}
		.tag-left{
			flex: 6;
			.tag{
				width: 120rpx;
				height: 40rpx;
				background: $color-system;
				border-radius: 20rpx;
				font-size: $font-size-24;
				color: #FFFFFF;
				line-height: 40rpx;
				text-align: center;
				padding: 0 6rpx;
			}
		}
		.tag-right{
			flex: 4;
			display: flex;
			text-align: right;
			.t-b{
				flex: 1;
				line-height: 40rpx;
				.txt{
					font-size: $font-size-24;
					color: $text-color;
					line-height: 40rpx;
				}
			}
			.icon-shanchu{
				color:#FF2A2A ;
				margin-right: 8rpx;
			}
			.icon-bianji{
				color: #2A7AFF;
				margin-right: 8rpx;
			}
		}
		.address{
			font-size: $font-size-28;
			color: $text-color;
			line-height: 40rpx;
			-o-text-overflow: ellipsis;
			text-overflow: ellipsis;
			display: -webkit-box;
			word-break: break-all;
			-webkit-box-orient: vertical;
			-webkit-line-clamp: 2;
			overflow: hidden;
		}
	}
	.add-btn{
		position: fixed;
		left: 75rpx;
		right: 75rpx;
		bottom: 34rpx;
		z-index: 95;
		display: flex;
		align-items: center;
		justify-content: center;
		width: 600rpx;
		height: 88rpx;
		font-size: $font-size-28;
		line-height: 88rpx;
		color: #FFFFFF;
		text-align: center;
		background: $btn-confirm;
		border-radius: 44rpx;
	}
	.adds-btn{
		width: 600rpx;
		height: 88rpx;
		font-size: 28rpx;
		line-height: 88rpx;
		color: #FFFFFF;
		margin: 0 auto;
		text-align: center;
		background: #000000;
		border-radius: 44rpx;
	}
</style>

