recycapp/pages/exchange/orderdetail.vue

222 lines
7.0 KiB
Vue
Raw Normal View History

2025-10-22 20:28:50 +08:00
<template>
<view>
<view class="order">
<view class="order-li">
<view class="bianhao flex fsz28" style="color: #777;">
<text>订单编号:{{details.order_no||''}}</text>
<text v-if=" details.status==1">{{details.pay_status_text||''}}
<text v-if=" details.refund_status ==1">,{{details.refund_status_text||''}}</text>
<text v-if=" details.shipping_status>0">,{{details.shipping_status_text||''}}</text></text>
<text v-if=" details.status>1"><text v-if=" details.refund_status ==2">{{details.refund_status_text||''}},</text>{{details.status_text}}</text>
</view>
<view class="order-img flex">
<view class="left">
<image :src="details.goods_image" class="little-img"></image>
</view>
<view class="right fsz32">
{{details.goods_name||''}}
</view>
</view>
<view class="order-time flex fsz28">
<view class="fsz28">
<view class="">{{details.point||''}}积分+{{details.price||''}}</view>
</view>
<view class="">x{{details.number||''}}</view>
</view>
<view class="order-time flex fsz28" v-if=" details.status==1 && details.refund_status==3">
<view class="fsz28">
<view class="">退款申请结果:{{details.approve_msg||''}}</view>
</view>
</view>
</view>
<view class="order-li order-info" v-if=" details.ship_code">
<view class="fsz28">
<text>快递公司</text>{{details.ship_company||''}}
</view>
<view class="fsz28">
<text>快递单号</text>{{details.ship_code||''}}
</view>
</view>
<view class="order-li order-info">
<view class="fsz28">
<text>订单编号</text>{{details.order_no||''}}
</view>
<view class="fsz28">
<text>下单时间</text>{{details.createtime_text||''}}
</view>
<view class="fsz28" >
<text>联系人</text>{{details.contact_name||''}}
</view>
<view class="fsz28" >
<text>联系人手机号</text>{{details.contact_mobile||''}}
</view>
<view class="fsz28" >
<text>收货地址</text>{{details.contact_address||''}}
</view>
</view>
<view class="order-li">
<view class="bianhao flex fsz28 order-time">
<text>积分</text>
<text class="fsz34"> {{details.order_point||''}}</text>
</view>
<view class="bianhao flex fsz28 order-time">
<text>金额</text>
<text class="fsz34">
{{details.order_amount||''}}</text>
</view>
</view>
<view style="height:80px"></view>
</view>
<view class="order-btn fsz28" v-if="details.auth_refund == 1 || details.auth_cancel ==1 || details.auth_pay ==1 || details.auth_finish ==1">
<template v-if="details.auth_cancel ==1">
<view class="btn btn-default" @click.stop="closeorder(details)">取消订单</view>
</template>
<template v-if="details.auth_pay ==1">
<view class="btn btn-default" @click="gopay()">去支付</view>
</template>
<view class="btn btn-default" @click="gofinish()" v-if="details.auth_finish == 1">完成</view>
<view class="btn btn-default" @click="gorefund()" v-if="details.auth_refund == 1">申请退款</view>
</view>
</view>
</template>
<script>
export default{
data(){
return{
id:'',
details:{},
isshow:true,
}
},
onLoad(options) {
this.id = options.id
},
onShow() {
this.getdata()
},
methods:{
getdata(){
let data = {
id:this.id
}
this.$api.exchangeOrderinfo(data,res=>{
if(res.code == '1'){
this.details = res.data.info
}
})
},
gopay(item){
let that = this
this.$api.exchangePay({order_id:this.id},data=>{
if(data.code == '1'){
uni.requestPayment({
provider: 'wxpay',
appid:data.data.appId,
nonceStr:data.data.nonceStr,
package:data.data.package,
timeStamp: data.data.timeStamp,
signType: data.data.signType,
paySign:data.data.paySign,
success: function(e) {
this.getdata()
},
fail(err) {
console.log(err,'失败')
}
});
}else{
uni.showToast({ title: data.msg , icon: 'none' })
}
})
},
gofinish(){
uni.showModal({
title:'提示',
content: '确认完成订单吗?',
success:(ret)=>{
if(ret.confirm){
this.$api.exchangeFinish({id:this.id},res=>{
if(res.code == '1'){
uni.showToast({ title: res.msg , icon: 'success' })
this.getdata()
}else{
uni.showToast({ title: res.msg , icon: 'none' })
}
})
}
}
})
} ,
gorefund(){
uni.showModal({
title:'提示',
content: '确认申请退款吗?',
success:(ret)=>{
if(ret.confirm){
this.$api.exchangeRefund({id:this.id},res=>{
if(res.code == '1'){
uni.showToast({ title: '申请退款成功' , icon: 'success' })
this.getdata()
}else{
uni.showToast({ title: res.msg , icon: 'none' })
}
})
}
}
})
},
// 取消订单
closeorder(item){
uni.showModal({
title:'提示',
content: '确认取消订单吗?',
success:(ret)=>{
if(ret.confirm){
this.$api.exchangeCancelorder({id:item.id},res=>{
if(res.code == '1'){
uni.showToast({ title: res.msg , icon: 'success' })
this.getdata()
}else{
uni.showToast({ title: res.msg , icon: 'none' })
}
})
}
}
})
}
}
}
</script>
<style>
.order{width: 96%;margin: 0 auto;}
.order-li{background: #fff;border-radius: 10rpx;padding: 24rpx;box-sizing: border-box;box-shadow: 2px 2px 5px 2px #eee;margin-bottom: 30rpx;}
.flex{display: flex;justify-content: space-between;margin-bottom: 30rpx;}
.bianhao{color:#222222;}
.order-img .left{flex:0 0 40%;}
.order-img .right{flex:0 0 58%;font-weight: 700;overflow: hidden;height: 65px;}
.order-img .left image{width: 100%;height:150rpx;border-radius: 10rpx;}
.order-time{line-height: 50rpx;align-items: center;}
.order-time .fsz34{font-weight: 700;color:red;}
.order-time .nouse{color:#fa8a1e; float: right;}
.order-time .yiuse{ float: right;}
.order-btn{ display: flex;
position: fixed;
bottom: 0px;
padding: 10px 0px;justify-content: flex-end;
background: #fff;
width: 100%;}
/* .order-btn>view{height: 64rpx;padding: 0 34rpx;box-sizing: border-box;border: 1px solid #ddd;line-height: 64rpx;border-radius: 50rpx;margin-right: 30rpx;}
*/.content{margin-top: 30rpx;}
.order-time .fsz28{color: #222222;}
.kaipiao{position: relative;}
.kaipiao .tishi{position: absolute;width: 400rpx;background: #ddd;text-align: center;border-radius: 10rpx;top: -99rpx;left: -50%;}
.sanjiao{width: 0;height: 0;border-bottom: 18rpx solid transparent;position: absolute;border-top: 18rpx solid #ddd;border-left: 18rpx solid transparent;border-right: 18rpx solid transparent;left: 50%;transform: translateX(-50%);top: 62rpx;}
.order-info>view{line-height: 60rpx;color: #222222;}
</style>