| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667 | <template>	<view class="content">		<view class="inner">			<!-- 时间、价格 -->			<view class="time-price">				<text class="time">请在{{payLimitTime}}前完成支付</text>				<view class="price-box">					<text class="unit">¥</text>					<text class="num" >{{payMoney.toFixed(2)}}</text>				</view>				<text class="desc" v-if="payType==2">代收金额{{payDelivery.toFixed(2)}},请您在收到快递后支付尾款给快递人员。</text>				<text class="desc" v-if="payType==3">货到付款金额{{payDelivery.toFixed(2)}},请您在收到快递后支付给快递人员。</text>			</view>			<!-- 支付方式 -->			<view class="pay-type">				<view class="title">支付方式</view>				<!-- 改价订单只能选择微信支付和物流代收 -->				<radio-group  @change="payTypeChange" v-if="order.isEditMoney!=null&&order.isEditMoney==1">					<view class="item"  >						<view class="left"  >							<image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/shopping/wecha_pay.png" mode=""></image>							<text class="text">微信支付</text>						</view>						<label>							<radio :value="1" :checked="order.payType=='1'" />						</label>					</view>					<view class="item"  >						<view class="left">							<image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/shopping/pay_de.png" mode=""></image>							<text class="text">物流代收</text>						</view>						<label>							<radio  :value="2" :checked="order.payType=='2'" />						</label>					</view>				</radio-group>				 				<radio-group @change="payTypeChange" v-else-if="order.orderCreateType!=null&& order.orderCreateType==3">					<view class="item"  >						<view class="left" >							<image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/shopping/wecha_pay.png" mode=""></image>							<text class="text">微信支付</text>						</view>						<label>							<radio :value="1" :checked="order.payType=='1'" />						</label>					</view>					<view class="item" >						<view class="left">							<image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/shopping/pay_de.png" mode=""></image>							<text class="text">物流代收</text>						</view>						<label>							<radio  :value="2" :checked="order.payType=='2'" />						</label>					</view>					<view class="item" v-if="user!=null&&user.level==1 ">						<view class="left">							<image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/shopping/pay_1.png" mode=""></image>							<text class="text">货到付款</text>						</view>						<label>							<radio  :value="3" :checked="order.payType=='3'" />						</label>					</view>				</radio-group>				<radio-group @change="payTypeChange" v-else-if="order.orderCreateType!=null&& order.orderCreateType==2">					<view class="item" v-if="payType==1||payType==4" >						<view class="left" >							<image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/shopping/wecha_pay.png" mode=""></image>							<text class="text">微信支付</text>						</view>						<label>							<radio :value="1" :checked="order.payType=='1'" />						</label>					</view>					<view class="item" v-if="payType==2||payType==4">						<view class="left" >							<image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/shopping/pay_de.png" mode=""></image>							<text class="text">物流代收</text>						</view>						<label>							<radio  :value="2" :checked="order.payType=='2'" />						</label>					</view>					<view class="item" v-if="user!=null&&user.level==1 ">						<view class="left">							<image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/shopping/pay_1.png" mode=""></image>							<text class="text">货到付款</text>						</view>						<label>							<radio  :value="3" :checked="order.payType=='3'" />						</label>					</view>				</radio-group>				<radio-group @change="payTypeChange" v-else-if="order.orderCreateType!=null&&(order.orderCreateType==1)">					<view class="item"  >						<view class="left" >							<image src="https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/shopping/wecha_pay.png" mode=""></image>							<text class="text">微信支付</text>						</view>						<label>							<radio :value="1" checked />						</label>					</view>				</radio-group>			</view>			<!-- 订单详情查看 -->			<view class="order-info">				<view class="title">订单信息</view>				<view class="item">					<text class="label">订单编号</text>					<view class="sn-box">						<view>							<view class="text" v-for="item in order.orderCodes" :key="item">{{item}}</view>						</view>						<view class="copy-btn" @click="copyOrderSn(orderCode)">复制</view>					</view>				</view>				<view class="item">					<text class="label">下单时间</text>					<text class="text">{{order.createTime}}</text>				</view>				<view class="item">					<text class="label">订单金额</text>					<text class="text" v-if="order!=null">{{order.payPrice.toFixed(2)}}</text>				</view>				 				<!-- <view class="item">					<text class="label">支付方式</text>					<text class="text">微信支付</text>				</view> -->				 			</view>					</view>		<view class="btn-box">			<view class="btn" @click="payOrder()">去支付</view>			<view class="other-btn" >				亲友代付				<button  class="share" data-name="shareBtn" open-type="share">分享</button>			</view>		</view>	</view></template><script>	import {getUserInfo} from '@/api/user'		import {getStoreConfig} from './api/common.js'	import {editPayType,pay,getStoreOrderById,payByCombinationId,getStoreOrderByCombinationId,editPayTypeByCombinationId} from '@/api/myStoreOrder.js'	export default {		data() {			return {				orderId:null,				payDelivery:0,				payMoney:0,				config:null,				payType:1,				payLimitTime:null,				order:null,				user:null,				combinationOrderId: '',				orderCode: "",				// 需要开处方的订单id				prescribeOrder: ""			}		},		onLoad(option) {			this.combinationOrderId = option.combinationOrderId ? decodeURIComponent(option.combinationOrderId) : ''			this.orderId=option.orderId ? JSON.parse(option.orderId) : '';			uni.showShareMenu({				withShareTicket:true,				//小程序的原生菜单中显示分享按钮,才能够让发送给朋友与分享到朋友圈两个按钮可以点击				menus:["shareAppMessage"] //不设置默认发送给朋友			})		},		onShow() {			this.$isLogin().then(res => {				if(res){					if(this.combinationOrderId) {						this.getStoreOrderByCombinationId()					} else {						this.getStoreOrderById();					}					this.getStoreConfig();					this.getUserInfo();				} else {					uni.navigateTo({						url:'/pages/auth/login',					})				}			})		},		//发送给朋友		onShareAppMessage(res) {			const combinationOrderId = this.combinationOrderId ? `&combinationOrderId=${encodeURIComponent(this.combinationOrderId)}` : ''			return {				title: "帮TA支付",				path: '/pages_shopping/user/otherPaymentOrder?orderId='+this.orderId + combinationOrderId,				imageUrl: 'https://bjyjb-1362704775.cos.ap-chongqing.myqcloud.com/app/newImages/sharelogo.png' //分享图标,路径可以是本地文件路径、代码包文件路径或者网络图片路径.支持PNG及JPG。显示图片长宽比是 5:4			}					},		methods: {			getUserInfo(){				getUserInfo().then(					res => {						if(res.code==200){							if(res.user!=null){								this.user=res.user;							}						}else{							uni.showToast({								icon:'none',								title: "请求失败",							});						}					},					rej => {}				);			},			getStoreConfig(){				getStoreConfig().then(					res => {						if(res.code==200){							this.config=res.data							console.log(this.config);						}					},					rej => {}				);							},			payTypeChange(e){				this.editPayType(e.detail.value)			},			copyOrderSn(text) {				// 复制方法				uni.setClipboardData({					data:text,					success:()=>{						uni.showToast({							title:'内容已成功复制到剪切板',							icon:'none'						})					}				});			},			getStoreOrderById(){				var data = {orderId:this.orderId};				var that=this;				uni.showLoading();				getStoreOrderById(data).then(					res => {						if(res.code==200){							console.log(res);							uni.hideLoading();							that.order=res.order;							that.payLimitTime=res.payLimitTime;							//套餐订单处理							if(res.productPackage!=null){								this.payType=res.productPackage.payType;								console.log(this.payType)								if(this.order.payType==4){									this.order.payType=1;								}							}							if(that.order.paid!=1) {								// 1支付成功就不用调用这个接口								this.editPayType(this.order.payType)							}													}else{							uni.showToast({								icon:'none',								title: res.msg,							});						}					},					rej => {}				);							},			editPayType(payType){				var data = {orderId:this.orderId,payType:payType};				var that=this;				uni.showLoading();				editPayType(data).then(					res => {						if(res.code==200){							console.log(res);							uni.hideLoading();							that.order=res.order;							//this.payType=this.order.payType							this.payMoney=this.order.payMoney;							this.payDelivery=this.order.payDelivery;						}else{							uni.showToast({								icon:'none',								title: res.msg,							});						}					},					rej => {}				);							},			getStoreOrderByCombinationId() {				var data = {combinationId:this.combinationOrderId};				var that=this;				uni.showLoading();				getStoreOrderByCombinationId(data).then(					res => {						if(res.code==200){							console.log(res);							uni.hideLoading();							that.order=res.order;							that.orderCode = res.order.orderCodes ? res.order.orderCodes.join(',') : "";							that.payLimitTime=res.payLimitTime;							//套餐订单处理							if(res.productPackage!=null){								this.payType=res.productPackage.payType;								console.log(this.payType)								if(this.order.payType==4){									this.order.payType=1;								}							}							that.prescribeOrder = res.prescribeOrder;							this.editPayTypeByCombinationId(this.order.payType)													}else{							uni.showToast({								icon:'none',								title: res.msg,							});						}					},					rej => {}				);			},			editPayTypeByCombinationId(payType){				var data = {combinationOrderId:this.combinationOrderId,payType:payType};				var that=this;				uni.showLoading();				editPayTypeByCombinationId(data).then(					res => {						if(res.code==200){							console.log(res);							uni.hideLoading();							that.order=res.order;							that.orderCode = res.order.orderCodes ? res.order.orderCodes.join(',') : "";							//this.payType=this.order.payType							this.payMoney=this.order.payMoney;							this.payDelivery=this.order.payDelivery;							that.prescribeOrder = res.prescribeOrder;						}else{							uni.showToast({								icon:'none',								title: res.msg,							});						}					},					rej => {}				);							},			payOrder(){				if(this.combinationOrderId) {					let data = {combinationOrderId:this.combinationOrderId,payType:this.order.payType,appId: getApp().globalData.appId};					let that=this;					uni.showLoading();					payByCombinationId(data).then(						res => {							if(res.code==200){								this.payfun(res)							}else{								uni.showToast({									icon:'none',									title: res.msg,								});							}						},						rej => {}					);				} else {					let data = {orderId:this.order.id,payType:this.order.payType,appId: getApp().globalData.appId};					let that=this;					uni.showLoading();					pay(data).then(						res => {							if(res.code==200){								this.payfun(res)							}else{								uni.showToast({									icon:'none',									title: res.msg,								});							}						},						rej => {}					);				}			},			payfun(res) {				const that = this				console.log(res.result);				if(res.payType==1||res.payType==2){					 uni.requestPayment({						provider: 'wxpay',						timeStamp: res.result.timeStamp,						nonceStr: res.result.nonceStr,						// package: res.result.packageValue,						package: res.result.packageStr,						signType: res.result.signType,						paySign: res.result.paySign,						success: function(res) {							 uni.hideLoading();							  uni.redirectTo({								url:"/pages_shopping/success?order="+JSON.stringify(that.order)							  }) 						},						fail: function(err) {							uni.showToast({								icon:'none',								title:'fail:' + JSON.stringify(err),							});							console.log('fail:' + JSON.stringify(err));							uni.hideLoading();						}					 });				}				else if(res.payType==3){					 uni.hideLoading();					 if(that.order.isPrescribe){						 //如果是处方订单开处方						// uni.redirectTo({						// 	url:"prescribe?orderId="+that.order.id						// })						uni.redirectTo({							url:"/pages_shopping/prescribe?orderId="+that.prescribeOrder+"&combinationOrderId="+encodeURIComponent(that.order.combinationOrderId)						})					 }					 else{						//如果是普通订单						uni.redirectTo({							url:"/pages_shopping/success?order="+JSON.stringify(that.order)						}) 					 }				}			}		}	}</script><style lang="scss">	page{		height: 100%;	}	.content{		height: 100%;		display: flex;		flex-direction: column;		justify-content: space-between;		.inner{			padding: 20upx;			.time-price{				box-sizing: border-box;				padding: 50upx 0upx;				background: #FFFFFF;				border-radius: 16upx;				display: flex;				flex-direction: column;				align-items: center;				.time{					font-size: 32upx;					font-family: PingFang SC;					font-weight: 500;					color: #222222;					line-height: 1;					text-align: center;				}				.desc{					margin: 30upx 0upx 15upx;					font-size: 26upx;					font-family: PingFang SC;					color: #999999;					line-height: 1;					text-align: center;				}				.price-box{					display: flex;					align-items: flex-end;					margin-top: 28upx;					.unit{						font-size: 32upx;						font-family: PingFang SC;						font-weight: bold;						color: #FF6633;						line-height: 1.3;						margin-right: 10upx;					}					.num{						font-size: 56upx;						font-family: PingFang SC;						font-weight: bold;						color: #FF6633;						line-height: 1;					}				}			}			.pay-type{				box-sizing: border-box;				background: #FFFFFF;				border-radius: 16upx;				margin-top: 20upx;				padding: 40upx 30upx;				display: flex;				flex-direction: column;				justify-content: space-between;				.title{					font-size: 28upx;					font-family: PingFang SC;					font-weight: 500;					color: #999999;					line-height: 1;					margin-bottom: 10upx;				}				.item{					padding: 15upx 0upx;					display: flex;					align-items: center;					justify-content: space-between;					.left{						display: flex;						align-items: center;						image{							width: 44upx;							height: 44upx;							margin-right: 20upx;						}						.text{							font-size: 30upx;							font-family: PingFang SC;							font-weight: bold;							color: #222222;							line-height: 1;						}					}				}			}			.order-info{				margin-top: 20upx;				background: #FFFFFF;				border-radius: 16upx;				padding: 40upx 30upx;				.title{					font-size: 30upx;					font-family: PingFang SC;					font-weight: bold;					color: #222222;					line-height: 1;				}				.item{					margin-top: 40upx;					display: flex;					align-items: center;					justify-content: space-between;					.label{						font-size: 26upx;						font-family: PingFang SC;						font-weight: 500;						color: #666666;						line-height: 1;					}					.text{						font-size: 26upx;						font-family: PingFang SC;						font-weight: 500;						color: #222222;						line-height: 32upx;					}					.cont-text{						font-size: 26upx;						font-family: PingFang SC;						font-weight: 500;						color: #666666;						.bold{							color: #111111;						}					}					.sn-box{						display: flex;						align-items: center;						.copy-btn{							width: 58upx;							height: 32upx;							line-height: 32upx;							text-align: center;							font-size: 22upx;							font-family: PingFang SC;							font-weight: 500;							color: #222222;							background: #F5F5F5;							border-radius: 4upx;							margin-left: 24upx;						}					}					 				}				.line{					width: 100%;					height: 1px;					background: #F0F0F0;					margin-top: 30upx;				}			}		}		.btn-box{			height: 242upx;			background: #FFFFFF;			display: flex;			align-items: center;			justify-content: center;			flex-direction: column;			.btn{				width: 91.73%;				height: 88upx;				line-height: 88upx;				font-size: 30upx;				font-family: PingFang SC;				font-weight: bold;				color: #FFFFFF;				text-align: center;				background: #2583EB;				border-radius: 44upx;				margin-bottom: 10rpx;			}			.other-btn{				width: 91.73%;				height: 88upx;				line-height: 88upx;				font-size: 30upx;				font-family: PingFang SC;				font-weight: bold;				color: #2583EB;				border: 1rpx solid #2583EB;				text-align: center;				background: #FFFFFF;				border-radius: 44upx;				margin-bottom: 10rpx;				position: relative;				.share{					display: inline-block;					position: absolute;					top: 0;					left: 0;					width: 100%;					height: 100%;					opacity: 0;				}			}		}	}	</style>
 |