| 
						 | 
						- <template>
 - 	<view class="address">
 - 		
 - 		<navbar title="地址管理" leftClick @leftClick="leftClick" />
 - 
 - 		<view class="address-list">
 - 			<addressList 
 - 			controls
 - 			ref="addressList"
 - 			@deleteAddress="deleteAddress"
 - 			@editAddress="editAddress"
 - 			@editDefault="editDefault"/>
 - 		</view>
 - 
 - 		
 - 		<redactAddress 
 - 		ref="addressPopup"
 - 		:addressDetail="addressDetail" 
 - 		@saveOrUpdate="saveOrUpdate" 
 - 		:title="title"></redactAddress>
 - 		
 - 
 - 		<view class="add-btn">
 - 			<view @click="addBtn" class="btn">
 - 				新增地址
 - 			</view>
 - 		</view>
 - 	</view>
 - </template>
 - 
 - <script>
 - 	import redactAddress from '../components/address/redactAddress.vue'
 - 	import addressList from '../components/address/addressList.vue'
 - 
 - 	export default {
 - 		components: {
 - 			redactAddress,
 - 			addressList
 - 		},
 - 		data() {
 - 			return {
 - 				title: '新增地址',
 - 				type : '',
 - 			}
 - 		},
 - 		onLoad(args) {
 - 			this.type = args.type
 - 			
 - 			if(this.type == 'back'){
 - 				this.addBtn()
 - 			}
 - 		},
 - 		onShow() {
 - 			this.getAddressList()
 - 		},
 - 		methods: {
 - 
 - 			//获取地址列表
 - 			getAddressList() {
 - 				this.$refs.addressList.getAddressList()
 - 			},
 - 
 - 			//获取地址详情
 - 			editAddress(address) {
 - 				this.$refs.addressPopup.open({...address})
 - 			},
 - 
 - 			//返回个人中心
 - 			leftClick() {
 - 				uni.navigateBack(-1)
 - 			},
 - 
 - 			//添加和修改地址
 - 			saveOrUpdate(addressDetail) {
 - 
 - 				let data = {
 - 					name: addressDetail.name,
 - 					phone: addressDetail.phone,
 - 					address: addressDetail.address,
 - 					addressDetail: addressDetail.addressDetail,
 - 					defaultFlag: addressDetail.defaultFlag || '0',
 - 					latitude: addressDetail.latitude,
 - 					longitude: addressDetail.longitude
 - 				}
 - 
 - 				if (addressDetail.id) {
 - 					data.id = addressDetail.id
 - 				}
 - 
 - 				this.$api('addOrEditAddress', data, res => {
 - 					if (res.code == 200) {
 - 						this.$refs.addressPopup.close()
 - 						this.getAddressList()
 - 						
 - 						if(this.type == 'back'){
 - 							uni.navigateBack(-1)
 - 						}
 - 						
 - 						uni.showToast({
 - 							title: '操作成功',
 - 							icon: 'none'
 - 						})
 - 					}
 - 				})
 - 			},
 - 
 - 			//修改默认地址
 - 			editDefault(id) {
 - 				this.$api('addressDefault', {
 - 					id: id,
 - 				}, res => {
 - 					if (res.code == 200) {
 - 						this.$refs.addressPopup.close()
 - 						uni.showToast({
 - 							title: '操作成功',
 - 							icon: 'none'
 - 						})
 - 						this.getAddressList()
 - 					}
 - 				})
 - 			},
 - 
 - 			//删除地址
 - 			deleteAddress(addressId) {
 - 				let self = this
 - 				uni.showModal({
 - 					title: '删除地址',
 - 					content: '确认删除此地址?删除后数据不可恢复',
 - 					success(e) {
 - 						if(e.confirm){
 - 							self.$api('deleteAddress', {
 - 								addressId
 - 							}, res => {
 - 								if (res.code == 200) {
 - 									uni.showToast({
 - 										title: '删除成功',
 - 										icon: 'none'
 - 									})
 - 									self.getAddressList()
 - 								}
 - 							})
 - 						}
 - 					}
 - 				})
 - 			},
 - 
 - 			//点击新增按钮
 - 			addBtn() {
 - 				this.title = '新增地址'
 - 				this.$refs.addressPopup.open({ //初始化数据
 - 					name: '',
 - 					phone: '',
 - 					address: '',
 - 					addressDetail: '',
 - 					defaultFlag: '',
 - 					latitude: '',
 - 					longitude: ''
 - 				})
 - 			},
 - 		}
 - 	}
 - </script>
 - 
 - <style lang="scss" scoped>
 - 	.address {
 - 		width: 750rpx;
 - 		margin: 0rpx auto;
 - 		background: #F5F5F5;
 - 		box-sizing: border-box;
 - 		min-height: 100vh;
 - 
 - 		.address-list {
 - 			padding: 40rpx 20rpx 120rpx 20rpx;
 - 		}
 - 
 - 		.add-btn {
 - 			position: fixed;
 - 			display: flex;
 - 			justify-content: center;
 - 			align-items: center;
 - 			left: 0;
 - 			bottom: 0;
 - 			width: 750rpx;
 - 			height: 100rpx;
 - 			background: white;
 - 
 - 			.btn {
 - 				display: flex;
 - 				align-items: center;
 - 				justify-content: center;
 - 				width: 85%;
 - 				height: 80rpx;
 - 				border-radius: 40rpx;
 - 				color: white;
 - 				text-align: center;
 - 				font-size: 28rpx;
 - 				background: $uni-color;
 - 			}
 - 		}
 - 	}
 - 
 - 	@media all and (min-width: 961px) {
 - 		.add-btn {
 - 			left: 50% !important;
 - 			transform: translateX(-50%);
 - 		}
 - 	}
 - 
 - 	//选择位置地图样式
 - 	:deep(.uni-system-choose-location) {
 - 		z-index: 99999 !important;
 - 	}
 - </style>
 
 
  |