378 lines
12 KiB
Vue
378 lines
12 KiB
Vue
<template>
|
|
<view class="app" v-if="order">
|
|
<view class="time" style="" v-if="order.orderStatus=='WAIT_PAY'">
|
|
剩余付款时间:
|
|
<u-count-down style='' :timestamp="timestamp">
|
|
</u-count-down>
|
|
</view>
|
|
<view class="OrderStatus" v-if="order.orderStatus=='REFUNDED'||order.orderStatus=='CANCEL'">
|
|
订单已关闭
|
|
</view>
|
|
<!-- <custom-nav nav='To' Url="/pagesB/CommodityOrder/CommodityOrder" title='商品订单'></custom-nav> -->
|
|
<view class="content">
|
|
<view class="name">
|
|
{{order.orderTime}}
|
|
<image src="../../static/huijiantou.png" mode=""></image>
|
|
</view>
|
|
<view class="details">
|
|
<view class="detailslist">
|
|
<image :src="baseurl+order.personPictureUrl" mode=""
|
|
v-if="order.orderType =='HEALTH_CONSULTATION'&&order.personPictureUrl"></image>
|
|
<image src="@/static/docHead.png" mode=""
|
|
v-if="order.orderType =='HEALTH_CONSULTATION'&&!order.personPictureUrl"></image>
|
|
<image :src="baseurl+order.attributePitureUrl" mode=""
|
|
v-if="order.orderType !='HEALTH_CONSULTATION'"></image>
|
|
<view class="model">
|
|
<view class="top">
|
|
<span v-if="order.orderType =='HEALTH_CONSULTATION'">健康咨询</span>
|
|
<span v-else>{{order.goodsName}}</span>
|
|
<span v-if="order.orderType=='DIRECT_BUY'">¥{{order.goodsPrice}}</span>
|
|
</view>
|
|
<view class="bottom" v-if="order.orderType !='HEALTH_CONSULTATION'">
|
|
<span class="box">型号:{{order.goodsAttributeName}}</span>
|
|
<span class="box">X{{order.goodsCount}}</span>
|
|
</view>
|
|
<view class="bottom" v-if="order.orderType !='HEALTH_CONSULTATION'&&order.discountPrice>0">
|
|
<span class="box" style='width:40%'>优惠金额:</span>
|
|
<span class="box">-¥{{order.discountPrice}}</span>
|
|
</view>
|
|
<view class="refund"
|
|
v-if="order.orderStatus != 'WAIT_PAY'&& order.orderStatus!='CANCEL'&&order.orderStatus!='WAIT_REFUND'&&order.orderStatus!='REFUNDED'&&order.orderStatus!='RETURNED_GOODS'&&order.orderStatus!='WAIT_RETURNED_GOODS'">
|
|
<text @tap='gorefundType' v-if="order.orderType=='INTEGRAL_EXCHANGE'">取消兑换</text>
|
|
<text @tap='gorefundType' v-if="order.orderType=='DIRECT_BUY'">申请退款</text>
|
|
<text @tap='gorefundType'
|
|
v-if="order.orderType=='HEALTH_CONSULTATION'&&order.orderStatus=='WAIT_RECEIVED_GOODS'">取消咨询</text>
|
|
</view>
|
|
<view class="refund" style="border: 1rpx solid #969394;" v-if="order.orderStatus=='WAIT_REFUND'"
|
|
@tap='goAftersalesdetails(order)'>
|
|
退款中
|
|
</view>
|
|
<view class="refund" style="border: 1rpx solid #969394;" v-if="order.orderStatus=='REFUNDED'">
|
|
退款成功
|
|
</view>
|
|
<view class="refund" style="border: 1rpx solid #969394;"
|
|
v-if="order.orderStatus=='WAIT_RETURNED_GOODS'">
|
|
待退货
|
|
</view>
|
|
<view class="refund" style="border: 1rpx solid #969394;" v-if="order.orderStatus=='CANCEL'">
|
|
已取消
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<!-- <view class="payinfo" style="bottom:90rpx">
|
|
<text class="pay" style="color: #969394;">优惠金额</text>
|
|
<text class="pay" style="float: right; color: #969394;">-¥{{order.discountPrice}}</text>
|
|
</view> -->
|
|
<view class="payinfo">
|
|
<text class="pay">实付款</text>
|
|
<text class="price"
|
|
v-if="order.orderType=='DIRECT_BUY'||order.orderType =='HEALTH_CONSULTATION'">¥{{order.totalPrice}}</text>
|
|
<text class="price"
|
|
v-if="order.orderType=='INTEGRAL_EXCHANGE'">{{order.integralExchangeSill}}积分</text>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
<view class="info">
|
|
<span>收货人:<text>{{order.receiver}}</text></span>
|
|
<span>联系电话:<text>{{order.phone}}</text></span>
|
|
<span v-if="order.orderType =='HEALTH_CONSULTATION'">咨询医生:<text>{{order.hospitalPersonName}}</text></span>
|
|
<span v-if="order.orderType =='HEALTH_CONSULTATION'">咨询时间:<text>{{order.healthAppointDate}}</text></span>
|
|
<span v-if="order.orderType !='HEALTH_CONSULTATION'">收货地址:<text>{{order.receiveAddress}}</text></span>
|
|
<span>订单编号:<text>{{order.goOrderNo}}</text></span>
|
|
<span>下单时间:<text>{{order.orderTime}}</text></span>
|
|
<span
|
|
v-if="order.orderStatus=='REFUNDED'&&order.orderType=='DIRECT_BUY'">退款时间:<text>{{order.updateTime}}</text></span>
|
|
<span
|
|
v-if="order.orderStatus=='REFUNDED'&&order.orderType=='INTEGRAL_EXCHANGE'">退款时间:<text>{{order.appleTime}}</text></span>
|
|
</view>
|
|
<view class="buy" v-if="order.orderStatus == 'WAIT_PAY'" @tap='pay'>
|
|
<view class="pay">
|
|
去支付
|
|
</view>
|
|
</view>
|
|
<view class="buy" v-if="order.orderStatus == 'EVALUATED'" @tap='golookrate'>
|
|
<view class="pay" style="background-color: #26A888;">
|
|
查看评价
|
|
</view>
|
|
</view>
|
|
<view class="buy" v-if="order.orderStatus == 'RECEIVED_GOODS'" @tap='rate'>
|
|
<view class="pay" style="background-color: #26A888;">
|
|
去评价
|
|
</view>
|
|
</view>
|
|
<view class="buy" v-if="order.orderStatus == 'WAIT_RECEIVED_GOODS'&&order.orderType !='HEALTH_CONSULTATION'">
|
|
<view class="logistics" style="" @tap='gologistics'>查看物流
|
|
</view>
|
|
<view class="pay" style="background-color: #26A888;" @tap='Receipt'>
|
|
确认收货
|
|
</view>
|
|
</view>
|
|
<view class="buy" v-if="order.orderStatus == 'WAIT_RECEIVED_GOODS'&&order.orderType =='HEALTH_CONSULTATION'">
|
|
<view class="pay" style="background-color: #26A888;" @tap='Receipt'>
|
|
咨询完成
|
|
</view>
|
|
</view>
|
|
<u-toast ref="uToast" />
|
|
<!-- //收货 -->
|
|
<view class="frame">
|
|
<u-popup v-model="show" mode="bottom" length="45%" border-radius="30" :closeable='true'>
|
|
<view class="payment">
|
|
<span v-if="order.orderType =='HEALTH_CONSULTATION'">确认咨询完成了吗</span>
|
|
<span v-else>确认收到货了吗</span>
|
|
</view>
|
|
<view class="chat">
|
|
<view class="image" style="height:182rpx">
|
|
<image :src="baseurl+order.attributePitureUrl" mode=""
|
|
v-if="order.orderType !='HEALTH_CONSULTATION'"></image>
|
|
<view class="blackground" v-if="order.orderType !='HEALTH_CONSULTATION'">共1件</view>
|
|
</view>
|
|
<view class="word" v-if="order.orderType =='HEALTH_CONSULTATION'">为了保证您的售后权益,请确认健康咨询无误后再确认完成
|
|
</view>
|
|
<view class="word" v-else>为了保证您的售后权益,请收到商品确认无误后再确认收货</view>
|
|
</view>
|
|
<view class="submits" @tap='Receipts'>确定</view>
|
|
</u-popup>
|
|
</view>
|
|
</view>
|
|
</template>
|
|
|
|
<script>
|
|
import {
|
|
appletGoodsOrderPay
|
|
} from '@/api/pagesB/confirmOrder/index.js'
|
|
import {
|
|
confirmReceipt,
|
|
ssgoodsOrder,
|
|
} from '@/api/pagesB/CommodityOrder/index.js'
|
|
import {
|
|
handCloseOrder
|
|
} from '@/api/pagesB/ServiceDetails/ServiceDetails.js'
|
|
import baseurl from '@/api/baseurl.js'
|
|
export default {
|
|
data() {
|
|
return {
|
|
baseurl: '',
|
|
order: null,
|
|
show: false, //收货
|
|
timestamp: 0,
|
|
timecount: undefined,
|
|
Timers: null,
|
|
orderTypeList: {
|
|
goodsOrderId: null,
|
|
patientId: '',
|
|
openid: null,
|
|
// 健康咨询
|
|
orderType: '',
|
|
orderStatus: '',
|
|
|
|
|
|
orderTypeList: [
|
|
|
|
],
|
|
// orderStatus: '',
|
|
pageSize: 15,
|
|
pageNum: 1,
|
|
goodsName: '',
|
|
},
|
|
}
|
|
},
|
|
onUnload() {
|
|
clearInterval(this.Timers); //清除该函数
|
|
},
|
|
watch: { //监听
|
|
timecount() {
|
|
if (this.timecount <= 0) {
|
|
clearInterval(this.Timers); //清除该函数
|
|
handCloseOrder().then(res => {
|
|
this.order.orderStatus = 'CANCEL'
|
|
})
|
|
}
|
|
},
|
|
},
|
|
methods: {
|
|
//查看评价
|
|
golookrate() {
|
|
uni.navigateTo({
|
|
url: `/pagesB/lookrate/lookrate?item=${JSON.stringify(this.order)}`
|
|
})
|
|
},
|
|
//收货
|
|
Receipts() {
|
|
confirmReceipt(this.order.goOrderNo).then(res => {
|
|
if (res.code == 200) {
|
|
this.$refs.uToast.show({
|
|
title: '完成订单成功',
|
|
type: 'success',
|
|
duration: '1000'
|
|
})
|
|
this.show = false
|
|
uni.setStorageSync("Refresh", 'Refresh')
|
|
this.goodsOrderinfo()
|
|
setTimeout(e => {
|
|
uni.navigateTo({
|
|
url: `/pagesB/goodsorderRate/goodsorderRate?item=${JSON.stringify(this.order)}&delta=${2}`
|
|
})
|
|
}, 1000)
|
|
} else {
|
|
this.$refs.uToast.show({
|
|
title: '完成订单失败',
|
|
type: 'error',
|
|
duration: '1000'
|
|
})
|
|
this.show = false
|
|
}
|
|
})
|
|
},
|
|
//收货
|
|
Receipt() {
|
|
this.show = true
|
|
},
|
|
//看物流信息
|
|
gologistics() {
|
|
uni.navigateTo({
|
|
url: `/pagesB/logistics/logistics?item=${JSON.stringify(this.order)}`
|
|
})
|
|
},
|
|
//评价
|
|
rate() {
|
|
uni.navigateTo({
|
|
url: `/pagesB/goodsorderRate/goodsorderRate?item=${JSON.stringify(this.order)}&delta=${2}`
|
|
})
|
|
},
|
|
//支付
|
|
pay() {
|
|
var that = this
|
|
let paydata = this.order
|
|
paydata.openid = this.orderTypeList.openid
|
|
paydata.payType = "WECHAT_PAY"
|
|
paydata.paymentPrice = this.order.totalPrice
|
|
paydata.orderChannel = 'WECHAT_APPLET'
|
|
paydata.orderNo = this.order.goOrderNo
|
|
appletGoodsOrderPay(paydata).then(response => {
|
|
if (response.code == 200) {
|
|
uni.requestPayment({
|
|
timeStamp: response.data.timeStamp,
|
|
nonceStr: response.data.nonceStr,
|
|
package: response.data.prepayId,
|
|
signType: response.data.signType,
|
|
paySign: response.data.paySign,
|
|
success: function(res) {
|
|
uni.setStorageSync("Refresh", 'Refresh')
|
|
that.goodsOrderinfo()
|
|
that.$refs.uToast.show({
|
|
title: '支付成功',
|
|
type: 'success',
|
|
duration: 1500,
|
|
url: `/pagesB/paysuccess/paysuccess?delta=${2}`
|
|
})
|
|
},
|
|
fail: function(err) {
|
|
that.$refs.uToast.show({
|
|
title: '取消支付',
|
|
type: 'error',
|
|
duration: 1500
|
|
})
|
|
}
|
|
});
|
|
} else {
|
|
that.$refs.uToast.show({
|
|
title: response.msg,
|
|
type: 'error',
|
|
duration: 1500
|
|
})
|
|
}
|
|
})
|
|
},
|
|
//退款页面
|
|
gorefundType() {
|
|
uni.navigateTo({
|
|
url: `/pagesB/refundType/refundType?order=${JSON.stringify(this.order)}`
|
|
})
|
|
},
|
|
goodsOrderinfo() {
|
|
ssgoodsOrder(this.orderTypeList).then(
|
|
res => {
|
|
this.order = res.rows[0]
|
|
var ordertimes = this.order.orderTime.replaceAll(/\-/gi, "/")
|
|
var time = new Date(ordertimes).getTime() / 1000 + (60 * 60 * 2)
|
|
var times = new Date().getTime() / 1000
|
|
this.timestamp = time - times
|
|
if (this.timestamp >= 0) {
|
|
this.timecount = this.timestamp
|
|
this.Timers = setInterval(() => {
|
|
this.timecount--;
|
|
}, 1000)
|
|
}
|
|
})
|
|
},
|
|
//跳转售后详情
|
|
goAftersalesdetails(item) {
|
|
uni.navigateTo({
|
|
url: `/pagesB/Aftersalesdetails/Aftersalesdetails?goodsOrderId=${this.order.goodsOrderId}`
|
|
})
|
|
},
|
|
},
|
|
onShow() {
|
|
this.goodsOrderinfo()
|
|
},
|
|
onLoad(options) {
|
|
//2健康咨询 1商品
|
|
if(options.delta=='2'){
|
|
this.orderTypeList={
|
|
goodsOrderId: null,
|
|
patientId: '',
|
|
openid: null,
|
|
// 健康咨询
|
|
orderType: 'HEALTH_CONSULTATION',
|
|
orderStatus: 'WAIT_PAY',
|
|
|
|
|
|
// orderTypeList: [
|
|
// 'INTEGRAL_EXCHANGE',//商城
|
|
// 'DIRECT_BUY',
|
|
// ],
|
|
// orderStatus: '',
|
|
pageSize: 15,
|
|
pageNum: 1,
|
|
goodsName: '',
|
|
}
|
|
|
|
|
|
}else if(options.delta=='1'){
|
|
this.orderTypeList={
|
|
goodsOrderId: null,
|
|
patientId: '',
|
|
openid: null,
|
|
// 健康咨询
|
|
// orderType: 'HEALTH_CONSULTATION',
|
|
// orderStatus: 'WAIT_PAY',
|
|
|
|
|
|
orderTypeList: [
|
|
'INTEGRAL_EXCHANGE',//商城
|
|
'DIRECT_BUY',
|
|
],
|
|
// orderStatus: '',
|
|
pageSize: 15,
|
|
pageNum: 1,
|
|
goodsName: '',
|
|
}
|
|
|
|
}
|
|
console.log(options,'88')
|
|
this.baseurl = baseurl
|
|
this.orderTypeList.goodsOrderId = options.goodsOrderId
|
|
let that = this
|
|
const value = uni.getStorageSync('patientId');
|
|
const value2 = uni.getStorageSync('openid');
|
|
if (value && value2) {
|
|
that.orderTypeList.patientId = value
|
|
that.orderTypeList.openid = value2
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
<style lang="scss">
|
|
@import "./orderDetails.scss";
|
|
</style>
|