138 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Vue
		
	
	
			
		
		
	
	
			138 lines
		
	
	
		
			5.5 KiB
		
	
	
	
		
			Vue
		
	
	
| <template>
 | |
| 	<view>
 | |
| 		<status-container titlet="订单详情" returnc="#FFFFFF">
 | |
| 			<view slot="content" style="margin-top: -20rpx;" v-if="orderDetail">
 | |
| 				<view class="bacf disjcac fc pad-sx40 boxshow2">
 | |
| 					<view v-if="orderDetail.status=='waiting'" class="fon28 mar-x20">待付款</view>
 | |
| 					<view v-if="orderDetail.status=='shipped' || orderDetail.status=='paid'" class="fon28 mar-x20">待收货</view>
 | |
| 					<view v-if="orderDetail.status=='completed'" class="fon28 mar-x20">已完成</view>
 | |
| 					<view @tap="goPay" v-if="orderDetail.status=='waiting'" class="fon26 radius30 disjcac" style="background-color:#f37717;border: 2rpx solid #f37717;color: #FFFFFF;width: 204rpx;height: 62rpx;">去付款</view>
 | |
| 					<view @tap="confirmReceipt(orderDetail.id)" v-if="orderDetail.status=='shipped' || orderDetail.status=='paid'" class="fon26 radius30 disjcac" style="border: 2rpx solid #f37717;color: #f37717;border-color:#f37717;width: 204rpx;height: 62rpx;">确认收货</view>
 | |
| 				</view>
 | |
| 				<view class="bacf mar-s20 pad-x20 boxshow2">
 | |
| 					<view @tap="$toolAll.tools.goPage(`/pagesB/shop-detail/shop-detail?id=${item.spu_id}`)" class="bbot disac pad30 col26" v-for="(item,index) in orderDetail.skus" :key="index">
 | |
| 						<image class="flexs mar-y20" :src="item.spu_cover" style="width: 192rpx;height: 134rpx;" mode="aspectFill" lazy-load></image>
 | |
| 						<view class="fon24 width100 disjbac fc" style="height: 134rpx;">
 | |
| 							<view class="dis width100">
 | |
| 								<view class="clips2 width100">{{item.spu_name}}</view>
 | |
| 								<view class="mar-z50 flexs">x{{item.num}}</view>
 | |
| 							</view>
 | |
| 							<view class="width100 disje">
 | |
| 								<view class="">实付:¥{{item.price}}</view>
 | |
| 							</view>
 | |
| 						</view>
 | |
| 					</view>
 | |
| 					<view class="col26 fon24 line-h46 pad-zy30 pad-sx20 bbot">
 | |
| 						<view class="">订单编号:<span style="color:#707070;">{{orderDetail.coding}}</span></view>
 | |
| 						<view class="">下单时间:<span style="color:#707070;">{{orderDetail.created_at}}</span></view>
 | |
| 						<view class="">支付时间:<span style="color:#707070;">{{orderDetail.paid_at || '-'}}</span></view>
 | |
| 						<view class="">快递公司:<span style="color:#707070;">{{orderDetail.express_name || '-'}}</span></view>
 | |
| 						<view class="">快递单号:<span style="color:#707070;">{{orderDetail.express_number || '-'}}</span></view>
 | |
| 					</view>
 | |
| 					<view class="col26 fon24 line-h46 pad-zy30 pad-sx20 bbot">
 | |
| 						<view class="disjbac">订单总额<span class="colb">¥{{orderDetail.original_price}}</span></view>
 | |
| 						<view class="disjbac">运费<span class="colb">+¥{{orderDetail.freight}}</span></view>
 | |
| 						<!-- <view class="disjbac">优惠券抵扣<span class="colb">-¥{{orderDetail.coupon_price}}</span></view> -->
 | |
| 						<view class="disjbac">积分抵扣<span class="colb" >-¥{{orderDetail.score_deduct_price}}</span></view>
 | |
| 					</view>
 | |
| 					<view class="col26 fon24 line-h46 pad-zy30 pad-s30 pad-x20">
 | |
| 						<view class="disjbac">实付金额<span class="colb">¥{{orderDetail.price}}</span></view>
 | |
| 					</view>
 | |
| 				</view>
 | |
| 			</view>
 | |
| 		</status-container>
 | |
| 		<dynamic-frame ref="refFrame" :showType="showType" :tipsTitle="tipsTitle"></dynamic-frame>
 | |
| 	</view>
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| 	import dynamicFrame from '@/components/dynamic-frame.vue';
 | |
| 	export default {
 | |
| 		components:{dynamicFrame},
 | |
| 		data() {
 | |
| 			return {
 | |
| 				orderDetail:'',
 | |
| 				flag:true,
 | |
| 				showType:-1,
 | |
| 				tipsTitle:'提示信息',
 | |
| 			}
 | |
| 		},
 | |
| 		onLoad(op) {
 | |
| 			this.getOrderDetail(op.id);
 | |
| 		},
 | |
| 		methods: {
 | |
| 			// 按钮点击
 | |
| 			clickBtn(index){
 | |
| 				this.tipsTitle = index==2?'物流信息':'提示信息';
 | |
| 				this.showType = [2,3,1][index];
 | |
| 				this.$refs.refFrame.ifLogistics = true;
 | |
| 				this.$refs.refFrame.ifAnimated = true;
 | |
| 			},
 | |
| 			// 获取订单详情
 | |
| 			getOrderDetail(id){
 | |
| 				this.$requst.get('/api/user/order-detail',{id}).then(res=>{
 | |
| 					if(res.code==0){
 | |
| 						this.orderDetail = res.data;
 | |
| 					}
 | |
| 				})
 | |
| 			},
 | |
| 			// 确认收货
 | |
| 			confirmReceipt(id){
 | |
| 				this.$requst.post('/api/order/accepted',{order_id:id}).then(res=>{
 | |
| 					if(res.code==0){
 | |
| 						this.clickBtn(0);
 | |
| 						this.getOrderDetail(id);
 | |
| 					}
 | |
| 				})
 | |
| 			},
 | |
| 			// 去支付
 | |
| 			goPay(){
 | |
| 				if(this.flag){
 | |
| 					this.flag = false;
 | |
| 					this.$requst.post('/api/order/pay',{order_coding:this.orderDetail.coding}).then(res=>{
 | |
| 						if(res.code==0){
 | |
| 							let info = res.data;
 | |
| 							if(info.status!='completed'){
 | |
| 								uni.requestPayment({
 | |
| 									provider: 'wxpay',
 | |
| 									appId:info.payment_params.appId,//appId
 | |
| 									timeStamp: info.payment_params.timeStamp,//时间戳
 | |
| 									nonceStr: info.payment_params.nonceStr,//随机字符串
 | |
| 									package: info.payment_params.package,//package
 | |
| 									signType: info.payment_params.signType,//MD5
 | |
| 									paySign: info.payment_params.sign,//签名
 | |
| 									success:(result)=> {
 | |
| 										this.$requst.post('/api/order/paid',{order_coding:this.orderDetail.coding}).then(res=>{
 | |
| 											if(res.code==0){
 | |
| 												this.clickBtn(1);
 | |
| 												this.getOrderDetail(this.orderDetail.id);
 | |
| 											} else this.$toolAll.tools.showToast(res.msg);
 | |
| 										})
 | |
| 									},
 | |
| 									fail:()=> {
 | |
| 										this.$toolAll.tools.showToast('支付已取消o(╥﹏╥)o');
 | |
| 									},
 | |
| 									complete:()=> {
 | |
| 										this.flag = true;
 | |
| 									}
 | |
| 								});
 | |
| 							} else {
 | |
| 								this.$toolAll.tools.showToast('支付成功(*^▽^*)');
 | |
| 								setTimeout(()=>{
 | |
| 									uni.navigateTo({
 | |
| 										url:'/pagesA/my-order/my-order'
 | |
| 									})
 | |
| 								},1000)
 | |
| 							}
 | |
| 						} else {
 | |
| 							this.flag = true;
 | |
| 						}
 | |
| 					})
 | |
| 				}
 | |
| 			}
 | |
| 		}
 | |
| 	}
 | |
| </script>
 | |
| 
 | |
| <style></style>
 |