443 lines
10 KiB
Vue
443 lines
10 KiB
Vue
|
<template>
|
|||
|
<view class="content">
|
|||
|
<view class="c-top">
|
|||
|
<view class="ding">
|
|||
|
<view class="c-zuo" @click="getback()">
|
|||
|
<uni-icons type="left" color="#ffffff" size="18"></uni-icons>
|
|||
|
</view>
|
|||
|
<view class="c-title">我的订单</view>
|
|||
|
<view class="c-you"></view>
|
|||
|
</view>
|
|||
|
<!-- 底部 -->
|
|||
|
<view class="d-bai" v-if="orderStatus == '1'">待使用</view>
|
|||
|
<view class="d-bai" v-if="orderStatus == '2'">待评价</view>
|
|||
|
<view class="d-bai" v-if="orderStatus == '3'">已评价</view>
|
|||
|
<view class="d-bai" v-if="orderStatus == '4'">退款中</view>
|
|||
|
<view class="d-bai" v-if="orderStatus == '5'">已退款</view>
|
|||
|
<view class="x-bai">请到订单预约店铺进行车辆检测</view>
|
|||
|
<view class="cont-box">
|
|||
|
<view class="b-top" v-if="orderdetails.orderStatus == '1'">
|
|||
|
<view class="rwm">
|
|||
|
<canvas style="width:125px; height: 125px;" canvas-id="myQrcode"></canvas>
|
|||
|
</view>
|
|||
|
<view class="mzi">核销码:{{orderdetails.accessCode}}</view>
|
|||
|
</view>
|
|||
|
<view class="b-top" v-if="orderdetails.orderStatus == '2'">
|
|||
|
<!-- 星星 文本框 -->
|
|||
|
<view style="display: flex; align-items: ;">
|
|||
|
<view class="b-hui">请留下您的评价</view>
|
|||
|
<uni-rate v-model="rateValue" @change="postxing" />
|
|||
|
</view>
|
|||
|
|
|||
|
|
|||
|
<u--textarea v-model="reviewStr" @blur="tijiao()" @confirm="tijiao()" placeholder="请输入您的评价" border="none"></u--textarea>
|
|||
|
</view>
|
|||
|
<view class="b-top" v-if="orderdetails.orderStatus == '3'">
|
|||
|
<!-- 已评价 -->
|
|||
|
<view style="display: flex; align-items: ;">
|
|||
|
<view class="b-hui">请留下您的评价</view>
|
|||
|
<uni-rate v-model="orderdetails.commentStar" />
|
|||
|
</view>
|
|||
|
<u--textarea v-model="orderdetails.commentDesc" placeholder="该用户暂无评价" border="none"></u--textarea>
|
|||
|
</view>
|
|||
|
<view class="b-top" v-if="orderdetails.orderStatus == '4'">
|
|||
|
<view class="b-title">退款中</view>
|
|||
|
</view>
|
|||
|
<view class="b-top" v-if="orderdetails.orderStatus == '5'">
|
|||
|
<view class="b-title">已退款</view>
|
|||
|
</view>
|
|||
|
|
|||
|
<view class="b-box">
|
|||
|
<view class="b-title">{{orderdetails.partnerName}}</view>
|
|||
|
<view class="b-hui">{{orderdetails.partnerAddress}}</view>
|
|||
|
<view class="on-input">
|
|||
|
<view class="b-hui">下单时间</view>
|
|||
|
<view class="b-hei">{{orderdetails.payTime}}</view>
|
|||
|
</view>
|
|||
|
<view class="on-input">
|
|||
|
<view class="b-hui">商家手机号</view>
|
|||
|
<view class="b-hei">{{orderdetails.contactNumber}}</view>
|
|||
|
</view>
|
|||
|
<view class="on-input">
|
|||
|
<view class="b-hui">营业时间</view>
|
|||
|
<view class="b-hei">{{orderdetails.workTimeStr}}</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
<view class="b-box">
|
|||
|
<view class="b-title">订单信息</view>
|
|||
|
|
|||
|
<view class="on-input">
|
|||
|
<view class="b-hui">订单号</view>
|
|||
|
<view class="b-hei">{{orderdetails.orderNo}}</view>
|
|||
|
</view>
|
|||
|
<view class="on-input">
|
|||
|
<view class="b-hui">检测商品</view>
|
|||
|
<view class="b-hei">{{orderdetails.goodsTitle}}</view>
|
|||
|
</view>
|
|||
|
<view class="on-input">
|
|||
|
<view class="b-hui">价格</view>
|
|||
|
<view class="b-hei">{{orderdetails.goodsPrice/100}}</view>
|
|||
|
</view>
|
|||
|
<!-- <view class="on-input">
|
|||
|
<view class="b-hui">下单时间</view>
|
|||
|
<view class="b-hei">2023-07-20 12:00</view>
|
|||
|
</view> -->
|
|||
|
<view class="on-input">
|
|||
|
<view class="b-hui">优惠券折扣</view>
|
|||
|
<view class="b-hei">-{{orderdetails.couponDiscount?orderdetails.couponDiscount/100:0 }}</view>
|
|||
|
</view>
|
|||
|
<view class="on-input">
|
|||
|
<view class="b-hui">折扣</view>
|
|||
|
<view class="b-hei">-{{orderdetails.reduceMoney?orderdetails.reduceMoney/100:0 }}</view>
|
|||
|
</view>
|
|||
|
<view class="on-input">
|
|||
|
<view class="b-hui">使用余额</view>
|
|||
|
<view class="b-hei">-{{orderdetails.balance/100 }}</view>
|
|||
|
</view>
|
|||
|
<view class="on-input">
|
|||
|
<view class="b-hui">微信支付</view>
|
|||
|
<view class="ju">¥{{orderdetails.payMoney/100}}</view>
|
|||
|
</view>
|
|||
|
<view class="on-input">
|
|||
|
<view class="b-hui">合计支付</view>
|
|||
|
<view class="ju">¥{{orderdetails.payMoney /100 + orderdetails.balance /100}}</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
|
|||
|
</view>
|
|||
|
<!-- <view class="anniu">
|
|||
|
<text>提交</text>
|
|||
|
</view> -->
|
|||
|
<view style="width: 100%; height: 55px; margin-top: 10px;"></view>
|
|||
|
<!-- 底部 -->
|
|||
|
|
|||
|
</view>
|
|||
|
<view class="v-bottom">
|
|||
|
<view class="b-zuo" @click="gettel()">
|
|||
|
<view class="lanquan">
|
|||
|
<uni-icons type="phone-filled" color="#0D2E8D" size="24"></uni-icons>
|
|||
|
</view>
|
|||
|
<view class="">联系商家</view>
|
|||
|
</view>
|
|||
|
<view class="anniu" @click="Daohang()">
|
|||
|
<view class="baiqiu">
|
|||
|
<uni-icons type="paperplane-filled" color="#0D2E8D" size="14"></uni-icons>
|
|||
|
</view>
|
|||
|
<view class="">到这里去</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</view>
|
|||
|
</template>
|
|||
|
|
|||
|
<script>
|
|||
|
import drawQrcode from 'weapp-qrcode'
|
|||
|
import request from '../../utils/request';
|
|||
|
import config from '@/config';
|
|||
|
export default {
|
|||
|
data() {
|
|||
|
return {
|
|||
|
orderId:'',
|
|||
|
orderdetails:{},
|
|||
|
orderStatus:2,
|
|||
|
intervalId: null,
|
|||
|
reviewStr:"",
|
|||
|
rateValue:5
|
|||
|
}
|
|||
|
},
|
|||
|
onLoad(opion) {
|
|||
|
this.orderId = opion.id
|
|||
|
this.getindex()
|
|||
|
this.intervalId = setInterval(() => {
|
|||
|
console.log("我在执行方法");
|
|||
|
this.getindex()
|
|||
|
}, 2000);
|
|||
|
// uni.showLoading()
|
|||
|
// this.intervalId = setInterval(() => {
|
|||
|
// uni.hideLoading()
|
|||
|
|
|||
|
// }, 3000);
|
|||
|
|
|||
|
|
|||
|
},
|
|||
|
onShow() {
|
|||
|
|
|||
|
},
|
|||
|
watch: {
|
|||
|
orderStatus(newVal, oldVal) {
|
|||
|
// 监听message数据的变化,并执行相应的方法
|
|||
|
console.log('message发生变化', newVal, oldVal);
|
|||
|
if(newVal == 2){
|
|||
|
uni.showToast({
|
|||
|
title:"核销成功",
|
|||
|
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
},
|
|||
|
methods:{
|
|||
|
async getindex(){
|
|||
|
let res = await request({
|
|||
|
url:'/appInspection/order/orderDetail?orderId='+this.orderId,
|
|||
|
method: 'get',
|
|||
|
})
|
|||
|
console.log(res);
|
|||
|
this.orderdetails = res.data
|
|||
|
this.orderStatus = res.data.orderStatus
|
|||
|
this.orderdetails.payMoney = res.data.payMoney
|
|||
|
this.orderdetails.balance = res.data.balance
|
|||
|
this.showCode()
|
|||
|
},
|
|||
|
async tijiao(){
|
|||
|
if(this.reviewStr == ""){
|
|||
|
uni.showToast({
|
|||
|
title:'评论不能为空',
|
|||
|
icon:'none'
|
|||
|
})
|
|||
|
return
|
|||
|
}
|
|||
|
let data = {
|
|||
|
orderId:this.orderId,
|
|||
|
starLevel:this.rateValue,
|
|||
|
reviewStr:this.reviewStr
|
|||
|
}
|
|||
|
let res = await request({
|
|||
|
url:'/appInspection/order/reviewOrder',
|
|||
|
method: 'post',
|
|||
|
params:data
|
|||
|
})
|
|||
|
console.log(res);
|
|||
|
if(res.code == 200){
|
|||
|
uni.showToast({
|
|||
|
title:"发布成功"
|
|||
|
})
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
},
|
|||
|
showCode() {
|
|||
|
drawQrcode({
|
|||
|
width: 125,
|
|||
|
height: 125,
|
|||
|
canvasId: 'myQrcode',
|
|||
|
text:this.orderdetails.accessCode
|
|||
|
})
|
|||
|
},
|
|||
|
gettel(){
|
|||
|
uni.makePhoneCall({
|
|||
|
phoneNumber: this.orderdetails.contactNumber
|
|||
|
});
|
|||
|
},
|
|||
|
Daohang(){
|
|||
|
console.log('触发',this.orderdetails);
|
|||
|
uni.openLocation({
|
|||
|
latitude: parseFloat(this.orderdetails.latitude) ,
|
|||
|
longitude: parseFloat(this.orderdetails.longitude),
|
|||
|
success: function () {
|
|||
|
console.log('success');
|
|||
|
},
|
|||
|
fail:function (res) {
|
|||
|
console.log(res);
|
|||
|
}
|
|||
|
});
|
|||
|
|
|||
|
},
|
|||
|
getback(){
|
|||
|
clearInterval(this.intervalId);
|
|||
|
uni.navigateBack()
|
|||
|
|
|||
|
},
|
|||
|
postxing(e) {
|
|||
|
console.log(this.rateValue);
|
|||
|
console.log('rate发生改变:' + JSON.stringify(e))
|
|||
|
|
|||
|
// console.log(this.rateValue);
|
|||
|
},
|
|||
|
|
|||
|
},
|
|||
|
|
|||
|
beforeRouteLeave(to, from, next) {
|
|||
|
// 在离开当前页面时清除定时器
|
|||
|
clearInterval(this.intervalId);
|
|||
|
next();
|
|||
|
},
|
|||
|
|
|||
|
|
|||
|
}
|
|||
|
</script>
|
|||
|
|
|||
|
<style scoped lang="scss">
|
|||
|
.content {
|
|||
|
width: 100%;
|
|||
|
height: calc(130vh);
|
|||
|
background-color: #F6F6F6;
|
|||
|
box-sizing: border-box;
|
|||
|
|
|||
|
}
|
|||
|
.c-top{
|
|||
|
width: 100%;
|
|||
|
height: 229px;
|
|||
|
box-sizing: border-box;
|
|||
|
padding: 15px;
|
|||
|
padding-top: 45px;
|
|||
|
background: #0D2E8D;
|
|||
|
}
|
|||
|
.ding{
|
|||
|
width: 100%;
|
|||
|
display: flex;
|
|||
|
justify-content: space-between;
|
|||
|
}
|
|||
|
.c-title{
|
|||
|
font-size: 18px;
|
|||
|
font-weight: bold;
|
|||
|
color: white;
|
|||
|
width: 80%;
|
|||
|
|
|||
|
text-align: center;
|
|||
|
|
|||
|
}
|
|||
|
.c-zuo{
|
|||
|
width: 10%;
|
|||
|
height: 100%;
|
|||
|
}
|
|||
|
.c-you{
|
|||
|
width: 10%;
|
|||
|
height: 100%;
|
|||
|
}
|
|||
|
.d-bai{
|
|||
|
width: 100%;
|
|||
|
font-size: 20px;
|
|||
|
font-family: Source Han Sans CN-Bold, Source Han Sans CN;
|
|||
|
font-weight: bold;
|
|||
|
color: #FFFFFF;
|
|||
|
margin-top: 30px;
|
|||
|
margin-bottom: 15px;
|
|||
|
}
|
|||
|
.x-bai{
|
|||
|
width: 100%;
|
|||
|
font-size: 15px;
|
|||
|
font-family: Source Han Sans CN-Regular, Source Han Sans CN;
|
|||
|
font-weight: 400;
|
|||
|
color: #FFFFFF;
|
|||
|
margin-bottom: 20px;
|
|||
|
}
|
|||
|
.cont-box{
|
|||
|
width: 98%;
|
|||
|
margin: 0 auto;
|
|||
|
background-color: white;
|
|||
|
border-radius: 8px;
|
|||
|
box-sizing: border-box;
|
|||
|
padding: 15px;
|
|||
|
|
|||
|
}
|
|||
|
.b-top{
|
|||
|
width: 100%;
|
|||
|
border-bottom: 1px solid #DDDDDD;
|
|||
|
box-sizing: border-box;
|
|||
|
padding: 10px;
|
|||
|
}
|
|||
|
.b-box{
|
|||
|
width: 100%;
|
|||
|
border-bottom: 1px solid #DDDDDD;
|
|||
|
box-sizing: border-box;
|
|||
|
padding: 20px 0px;
|
|||
|
}
|
|||
|
.rwm{
|
|||
|
width: 125px;
|
|||
|
height: 125px;
|
|||
|
background: #D9D9D9;
|
|||
|
margin: 40px auto;
|
|||
|
}
|
|||
|
.mzi{
|
|||
|
width: 100%;
|
|||
|
text-align: center;
|
|||
|
font-size: 16px;
|
|||
|
font-weight: 400;
|
|||
|
color: #333333;
|
|||
|
}
|
|||
|
.on-input{
|
|||
|
width: 100%;
|
|||
|
display: flex;
|
|||
|
justify-content: space-between;
|
|||
|
align-items: center;
|
|||
|
margin: 10px auto;
|
|||
|
}
|
|||
|
.v-bottom{
|
|||
|
position: fixed;
|
|||
|
bottom: 0px ;
|
|||
|
z-index: 99;
|
|||
|
height: 60px;
|
|||
|
background: #FFFFFF;
|
|||
|
width: 100%;
|
|||
|
box-sizing: border-box;
|
|||
|
padding: 10px 15px;
|
|||
|
display: flex;
|
|||
|
align-items: center;
|
|||
|
justify-content: space-between;
|
|||
|
|
|||
|
}
|
|||
|
.b-zuo{
|
|||
|
width: 40%;
|
|||
|
height: 100%;
|
|||
|
font-size: 14px;
|
|||
|
font-weight: 400;
|
|||
|
color: #0D2E8D;
|
|||
|
text-align: center;
|
|||
|
}
|
|||
|
.anniu{
|
|||
|
background: #0D2E8D;
|
|||
|
width: 60%;
|
|||
|
height: 100%;
|
|||
|
display: flex;
|
|||
|
align-items: center;
|
|||
|
justify-content: center;
|
|||
|
color: white;
|
|||
|
font-size: 16px;
|
|||
|
font-weight: 400;
|
|||
|
color: #FFFFFF;
|
|||
|
border-radius: 4px ;
|
|||
|
}
|
|||
|
.b-title{
|
|||
|
font-size: 16px;
|
|||
|
font-weight: bold;
|
|||
|
color: #333333;
|
|||
|
margin-bottom: 10px;
|
|||
|
}
|
|||
|
.b-hui{
|
|||
|
font-size: 15px;
|
|||
|
font-weight: 400;
|
|||
|
color: #999999;
|
|||
|
|
|||
|
}
|
|||
|
.b-hei{
|
|||
|
font-size: 15px;
|
|||
|
font-weight: 400;
|
|||
|
color: #333333;
|
|||
|
}
|
|||
|
.ju{
|
|||
|
font-size: 15px;
|
|||
|
font-weight: 400;
|
|||
|
color: #FF571A;
|
|||
|
}
|
|||
|
.lanquan{
|
|||
|
width: 25px;
|
|||
|
height: 25px;
|
|||
|
border-radius: 50%;
|
|||
|
border: 2px solid #0D2E8D;
|
|||
|
display: flex;
|
|||
|
align-items: center;
|
|||
|
justify-content: center;
|
|||
|
background-color: white;
|
|||
|
margin: 0 auto;
|
|||
|
}
|
|||
|
.baiqiu{
|
|||
|
width: 16px;
|
|||
|
height: 16px;
|
|||
|
background: #FFFFFF;
|
|||
|
border-radius: 50%;
|
|||
|
display: flex;
|
|||
|
align-items: center;
|
|||
|
justify-content: center;
|
|||
|
margin-right: 5px;
|
|||
|
}
|
|||
|
</style>
|