|                                                                                                                                                                                                                                                                                                                                                                               |  | <template>	<uv-popup ref="popup" 	:round="30" 	bgColor="#f7f7f7">		<view class="content">						<!-- 地址 -->			<view class="address"			@click="openAddress">				<image src="../../static/address/selectIcon.png" mode=""></image>				<view class="">					{{ address.name }}				</view>				<view class="">					{{ address.addressDetail }}				</view>				<view class="icon">					<uv-icon					size="30rpx"					name="arrow-right"></uv-icon>				</view>			</view>						<!-- 商品信息和数量 -->			<view class="submit-info">				<view class="title">					桌布租赁				</view>				<view class="box">					<image					class="image"					:src="unit.pic" 					mode=""></image>										<view class="info">						<view class="price">							¥<text>{{ unit.depositPrice }}</text>元						</view>						<view class="unit">							请选择规格						</view>						<view class="">							<uv-number-box v-model="num"></uv-number-box>						</view>					</view>				</view>			</view>						<!-- 规格 -->			<!-- <view class="submit-unit">				<view class="title">					规格选择				</view>				<view class="list">					<view :class="{act : unitIndex == index}" 					v-for="(item, index) in detail.hotelGoodsSkuList"					@click="selectUnit(item, index)"					:key="index">						{{ item.title }}					</view>				</view>			</view> -->												<!-- 费用明细 -->			<view class="expense-detail">				<view class="title">					费用明细				</view>				<view class="detail">					押金:¥{{ unit.depositPrice }}				</view>			</view>						<!-- 提交按钮 -->			<view class="submit-btn">				<view class="l"				@click="addCart">					加入购物车				</view>				<view class="r"				@click="orderPay">					{{ submiitTitle }}				</view>			</view>					</view>				<uv-popup ref="addressPopup" :round="30">			<addressList			ref="addressList"			height="60vh"			@select="selectAddress"			/>		</uv-popup>	</uv-popup></template>
<script>	import addressList from '../address/addressList.vue'	export default {		components : {			addressList,		},		props : {			submiitTitle : {				default : '立即购买',				type : String,			},			detail : {				default : {}			}		},		data() {			return {				unitIndex : 0,				address : {					name : '请选择联系人',					addressDetail : '',				},				num : 1,				unit : {},				addressTotal : 0,			}		},		methods: {			// 打开
			open(){				this.$refs.popup.open('bottom')				if(!this.unit.id){					this.selectUnit(this.detail.hotelGoodsSkuList[0], 0)				}								// 获取地址列表
				this.$refs.addressList.getAddressList().then(res => {					this.addressTotal = res.total					if(this.addressTotal != 0){						this.address = res.records[0]					}				})			},			// 关闭
			close(){				this.$refs.popup.close()			},			// 打开选择地址
			openAddress(){				if (this.addressTotal == 0) {					this.$refs.popup.close()					return uni.navigateTo({						url: '/pages_order/mine/address?type=back'					})				}				this.$refs.addressPopup.open('bottom')			},			// 选择地址
			selectAddress(e){				this.address = e				this.$refs.addressPopup.close()			},			// 选择规格
			selectUnit(item, index){				this.unit = item				this.unitIndex = index			},			addCart(){				this.$api('cartAdd', {					id : this.detail.id,					skuId : this.unit.id,				}, res => {					if(res.code == 200){						uni.showToast({							title: '添加成功',						});						this.$refs.popup.close()					}				})			},			orderPay(){								let data = {					id : this.detail.id,//商品id
					skuId : this.unit.id,//规格id
					addressId : this.address.id,//地址id
					sku : this.unit.title,//规格
					num : this.num,				}												if(this.$utils.verificationAll(data, {					skuId : '请选择规格',					addressId : '请选择地址',				})){					return				}								this.$api('orderPay', data, res => {					if(res.code == 200){												uni.redirectTo({							url: '/pages/index/order'						})												// uni.requestPayment({
						// 	provider: 'wxpay', // 服务提提供商
						// 	timeStamp: res.result.timeStamp, // 时间戳
						// 	nonceStr: res.result.nonceStr, // 随机字符串
						// 	package: res.result.packageValue,
						// 	signType: res.result.signType, // 签名算法
						// 	paySign: res.result.paySign, // 签名
						// 	success: function (res) {
						// 		console.log('支付成功',res);
						// 		uni.redirectTo({
						// 			url: '/pages/index/order'
						// 		})
						// 	},
						// 	fail: function (err) {
						// 		console.log('支付失败',err);
						// 		uni.showToast({
						// 			icon:'none',
						// 			title:"支付失败"
						// 		})
						// 	}
						// });
					}				})			},		}	}</script>
<style scoped lang="scss">.content{	max-height: 80vh;	overflow: hidden;	overflow-y: auto;	.address{		display: flex;		padding: 20rpx;		background-color: #fff;		image{			width: 30rpx;			height: 30rpx;			margin: 20rpx;		}		view{			margin: 20rpx;			overflow:hidden; //超出的文本隐藏
			text-overflow:ellipsis; //溢出用省略号显示
			white-space:nowrap; //溢出不换行
		}		.icon{			margin-left: auto;		}	}	.submit-info{		background-color: #fff;		padding: 30rpx;		margin-top: 20rpx;		.title{			font-size: 30rpx;			padding: 10rpx;			font-weight: 600;		}		.box{			display: flex;			margin-top: 10rpx;			.image{				width: 200rpx;				height: 200rpx;				border-radius: 20rpx;				margin-right: 20rpx;			}			.info{				flex: 1;				.unit{					font-size: 24rpx;					padding: 10rpx 20rpx;					color: #717171;					display: flex;					align-items: center;				}				.price{					color: $uni-color;					font-size: 28rpx;					padding: 10rpx 20rpx;					text{						font-size: 36rpx;						font-weight: 900;					}				}			}		}	}	.submit-unit{		padding: 30rpx;		background-color: #fff;		.title{			font-size: 28rpx;			font-weight: 600;		}		.list{			display: flex;			flex-wrap: wrap;			font-size: 22rpx;			.act{				color: $uni-color;				border: 1px solid $uni-color;				background-color: #F9E7DE;			}			view{				border-radius: 15rpx;				width: 320rpx;				background-color: #F3F3F3;				border: 1px solid #F3F3F3;				margin: 10rpx;				display: flex;				justify-content: center;				padding: 15rpx 0;			}		}	}	.expense-detail{		padding: 30rpx;		background-color: #fff;		font-size: 28rpx;		.title{			font-weight: 600;		}		.detail{			background-color: #F6F6F6;			color: #717171;			margin: 10rpx 0;			padding: 10rpx 20rpx;		}	}	.submit-btn{		width: 600rpx;		height: 80rpx;		color: #fff;		border-radius: 40rpx;		font-size: 28rpx;		margin: 20rpx auto;		display: flex;		justify-content: center;		align-items: center;		border: 1rpx solid $uni-color;		overflow: hidden;		.l{			flex: 1;			display: flex;			justify-content: center;			align-items: center;			color: $uni-color;		}		.r{			background: $uni-color;			flex: 1;			height: 100%;			display: flex;			justify-content: center;			align-items: center;		}	}}</style>
 |