完善小程序订单功能

This commit is contained in:
wangxiaowei
2025-12-09 01:43:28 +08:00
parent 4a0d0c1114
commit cba684d7f6
9 changed files with 434 additions and 268 deletions

View File

@ -219,7 +219,6 @@
return {
orderId: 0,
venueId: 0,
roomId: 0,
typeId: 1, // 网球场1 篮球场2
billPopup: false,
showPrice: true,
@ -252,11 +251,11 @@
},
onLoad(args) {
this.orderId = args.orderId || 0;
this.venueId = args.venueId || 0;
this.roomId = args.roomId || 0;
this.typeId = args.typeId || 1;
this.basketballDate = args.date || null;
console.log("🚀 ~ args:", args)
this.orderId = args.orderId || 0; // 订单ID
this.venueId = args.venueId || 0; // 场馆ID
this.typeId = args.typeId || 1; // 网球场1 篮球场2
this.basketballDate = args.date || null; // 篮球场预约时间
console.log("🚀 ~ this.date:", this.date)
this.getData();
},
@ -316,22 +315,23 @@
}
)
// 获取场馆包间详情
self._post(
'ground.ground/groundRoomDetails',
{
app_id: self.getAppId(),
id: self.roomId, // 场馆包间ID
},
function(res) {
console.log("🚀 ~ res:", res)
if (res.code) {
self.room = res.data.lists;
// 篮球场-获取场馆包间详情
if (self.roomId) {
self._post(
'ground.ground/groundRoomDetails',
{
app_id: self.getAppId(),
id: self.roomId, // 场馆包间ID
},
function(res) {
if (res.code) {
self.room = res.data.lists;
}
self.loadding = false;
}
self.loadding = false;
}
)
)
}
// 获取订单详情
self._post(
@ -341,7 +341,6 @@
order_id: self.orderId, // 场馆包间ID
},
function(res) {
console.log("🚀 ~ res:", res)
if (res.code) {
self.order = res.data.lists;
self.countSelectedTime = self.order.hours
@ -366,7 +365,7 @@
'ground.ground/countPrice',
{
app_id: self.getAppId(),
room_id: self.roomId,
room_id: self.venueId,
nums: self.countSelectedTime,
type_id: self.typeId,
pay_type: self.payType

View File

@ -304,8 +304,8 @@ export default {
{
app_id: self.getAppId(),
id: self.id,
latitude: uni.getStorageSync('latitude') || '',
longitude: uni.getStorageSync('longitude') || '',
latitude: uni.getStorageSync('latitude') || 0,
longitude: uni.getStorageSync('longitude') || 0,
},
function (res) {
if (res.code) {

View File

@ -178,13 +178,13 @@
"disableHostCheck" : true,
"proxy" : {
"/api" : {
"target" : "https://6548.cn",
"target" : "https://xh.stnav.com",
"changeOrigin" : true,
"secure" : false
}
}
},
"title" : "星及茗茶",
"title" : "秀湖网球中心",
"sdkConfigs" : {
"maps" : {}
},

View File

@ -47,30 +47,12 @@
<text style="color: #606266;" v-if="item.order_status == 4">退款成功</text>
</view>
</view>
<!--多个商品显示-->
<!-- <view class="product-list pr" v-if="item.product.length > 1" @click="gotoOrder(item.order_id)">
<scroll-view scroll-x="true">
<view class="list d-s-c pr100">
<view class="cover mr10" v-for="(img, num) in item.product" :key="num" style="width: 200rpx; height: 200rxpx;">
<image :src="img.image.file_path" mode="aspectFill" style="width: 200rpx; height: 200rxpx;"></image>
</view>
</view>
</scroll-view>
<view class="total-count">
<view class="left-shadow"></view>
<view class="price f22 theme-price">
¥
<text class="f40 theme-price">{{ item.pay_price }}</text>
</view>
<view class="count">共{{ item.product.length }}件</view>
</view>
</view> -->
<!--一个商品显示-->
<view class="one-product d-s-c" @click="gotoOrder(item.order_id)">
<view class="one-product d-s-c" @click="gotoOrder(item.id)">
<image :src="item.image" mode="aspectFill" style="width: 200rpx; height: 200rpx; border-radius: 10rpx;"></image>
<view class="flex-1">
<view class="pro-info cg-info2">订单号:{{ item.order_sn }}</view>
<view class="pro-info cg-info3">活动日期{{ item.trade[0].day_title }}</view>
<view class="pro-info cg-info3">预约时间{{ item.trade[0].day_title }}</view>
</view>
<!-- <view class="total-count">
@ -86,39 +68,7 @@
</view> -->
</view>
<view class="order-bts presale" v-if="item.order_source==80">
<view class="d-b-c line-h-50 f24 gray9">
<view>定金</view>
<view>
<text>{{item.advance.pay_status.value == 20?'已支付':'待支付'}}</text>¥{{item.advance.pay_price}}
</view>
</view>
<view class="d-b-c line-h-50 f24 gray9">
<view>尾款</view>
<view>
<text>{{item.advance.pay_status.value == 20&&item.pay_status.value == 20?'已支付':'待支付'}}</text>
¥{{item.pay_price}}
</view>
</view>
<template v-if="item.order_status.value==10">
<view class="d-e-c line-h-50 f24 gray9"
v-if="item.advance&&item.advance.pay_status.value==20">
<view v-if="nowOverTime(item.advance.end_time)&&item.pay_end_time_format">
尾款支付截止时间:<text class="redF11">{{item.pay_end_time_format}}</text>
</view>
<view v-else-if="item.advance.end_time_text">
尾款支付时间:<text class="redF11">{{item.advance.end_time_text}}</text>
</view>
</view>
</template>
<template>
<view class="d-e-c line-h-50 f24 gray9"
v-if="item.advance.pay_status.value == 10&&item.advance.order_status==10">
<view
v-if="!nowOverTime(item.advance.pay_end_time)&&!nowOverTime(item.advance.end_time)">
定金支付截止时间: <text class="redF11">{{countDown(item.advance.pay_end_time)}}</text>
</view>
</view>
</template>
<template v-if="item.order_status.value != 21">
<view class="d-e-c">
<!-- 订单付款 -->
@ -167,25 +117,17 @@
<view class="order-bts" v-else>
<block>
<!-- 未支付取消订单 -->
<button @click="showCancleOrderPopup(item.order_id)" class="theme-borderbtn cancel-btn"
<button @click="showCancleOrderPopup(item.id)" class="theme-borderbtn cancel-btn"
v-if="item.order_status == 0">取消订单</button>
<!-- 订单付款 -->
<block v-if="item.order_status == 0">
<button class="theme-btn pay-btn" @click="onPayOrder(item.order_id)">去支付</button>
<button class="theme-btn pay-btn" @click="onPayOrder(item.ground_id, item.id)">去支付</button>
</block>
<block v-if="item.order_status >= 2">
<button class="theme-btn del-btn" @click="onDelOrder(item.order_id)">删除订单</button>
<button class="theme-btn del-btn" @click="onDelOrder(item.id)">删除订单</button>
</block>
</block>
<text v-if="item.order_status.value == 21" class="count">取消申请中</text>
<!-- 订单评价 -->
<button class="theme-btn" v-if="item.order_status.value == 30 && item.is_comment == 0"
@click="gotoEvaluate(item.order_id)">评价</button>
<template v-if="item.assemble_status == 10 && item.order_source == 30">
<button class="theme-btn"
@click="gotoAssembleShare(item.product[0].bill_source_id)">邀请好友拼单</button>
</template>
</view>
</view>
<view class="d-c-c p30" v-if="listData.length == 0 && !loading">
@ -480,7 +422,7 @@
/*跳转页面*/
gotoOrder(e) {
this.gotoPage('/pages/order/cg-order-detail?order_id=' + e);
this.gotoPage(`/pages/order/cg-order-detail?order_id=${e}&ballType=${this.ballType}`);
},
/*隐藏支付方式*/
@ -509,48 +451,18 @@
depositPay(e) {
this.gotoPage('/pages/order/confirm-order?order_type=retainage&order_id=' + e)
},
/*支付方式选择*/
onPayOrder(orderId) {
// 跳转支付页面
onPayOrder(groundId = 0, orderId = 0) {
let self = this;
self.gotoPage('/pages/order/cashier?order_id=' + orderId)
if (self.ballType == 1) {
// 网球场
self.gotoPage(`/bundle/reserve/confirm?orderId=${orderId}&venueId=${groundId}&typeId=1`);
return
}
},
/*确认收货*/
orderReceipt(order_id) {
let self = this;
wx.showModal({
title: '提示',
content: '您确定要收货吗?',
success: function(o) {
if (o.confirm) {
uni.showLoading({
title: '正在处理'
});
self._post(
'user.order/receipt', {
order_id: order_id
},
function(res) {
uni.hideLoading();
uni.showToast({
title: res.msg,
duration: 2000,
icon: 'success'
});
self.listData = [];
self.getData();
}
);
} else {
uni.showToast({
title: '取消收货',
duration: 1000,
icon: 'none'
});
}
}
});
},
cancelAdvance(e) {
let self = this;
let order_id = e;
@ -594,11 +506,12 @@
uni.showLoading({
title: '正在处理'
});
self._get(
'user.order/cancel', {
self._post(
'order.groundOrder/cancelGroundOrder', {
order_id: self.order_id
},
function(res) {
this.cancelOrderPopup = false;
uni.hideLoading();
uni.showToast({
title: '操作成功',
@ -617,54 +530,42 @@
return now >= time
},
/*去评论*/
gotoEvaluate(e) {
this.gotoPage('/pages/order/evaluate/evaluate?order_id=' + e);
// 删除订单
onDelOrder(order_id) {
this.delOrderPopup = true;
this.order_id = order_id;
},
/*核销码*/
onQRCode(e) {
delOrder() {
let self = this;
uni.showLoading({
title: '加载中'
title: '正在处理'
});
let order_id = e;
self._get(
'user.order/qrcode', {
order_id: order_id,
source: self.getPlatform()
self._post(
'order.groundOrder/delGroundOrder',
{
order_id: self.order_id
},
function(res) {
self.delOrderPopup = false;
uni.hideLoading();
self.isCodeImg = true;
self.codeImg = res.data.qrcode;
uni.showToast({
title: '操作成功',
duration: 2000,
icon: 'success'
});
self.listData = [];
self.getData();
}
);
},
/*关闭核销二维码*/
hideCodePopupFunc() {
this.isCodeImg = false;
},
/*分享拼团*/
gotoAssembleShare(e) {
let url = '/pages/plus/assemble/fight-group-detail/fight-group-detail?assemble_bill_id=' + e;
this.gotoPage(url);
},
// 删除订单
onDelOrder() {
uni.showToast({
title: '该功能正在开发中,敬请期待',
duration: 2000,
icon: 'none'
});
},
// 跳转场馆
toGround(ground_id) {
uni.navigateTo({
url: `/bundle/reserve/details?id=${id}&typeId=${this.ballType}`
url: `/bundle/reserve/details?id=${ground_id}&typeId=${this.ballType}`
});
}
}

View File

@ -5,30 +5,45 @@
<!--详情状态-->
<view class="d-s-c" style="margin-top: 10rpx;">
<!-- 待付款 -->
<!-- <view class="state-cont icon-box" style="width: 100%;" v-if="detail.pay_end_time">
<view class="state-cont icon-box" style="width: 100%;" v-if="detail.order_status == 0">
<image style="width: 36rpx;height: 36rpx;margin-top: 16rpx;" src="@/static/icon/time2.png" mode=""></image>
<view class="countdown-datetime" v-if="detail.pay_end_time">
<text>还剩<text style="color: #FF5951">{{ detail.pay_end_time }}</text>订单自动取消</text>
</view>
</view> -->
</view>
<!-- 已预约 -->
<!-- <view class="status-text" style="width: 100%;" v-if="detail.pay_end_time">
使用过程中有任何问题,请联系商家
</view> -->
<view class="" style="width: 100%;" v-if="detail.order_status == 1">
<view class="status-text" style="width: 100%;text-align: center;">
使用过程中有任何问题,请联系商家
</view>
<!-- <view class="face d-f a-i-c">
<view class="d-f a-i-c">
<view style="margin-right: 10rpx;">
<image src="@/static/icon/prompt.png" style="width: 32rpx; height: 32rpx;"/>
</view>
<view class="face-title">进入场馆需要进行人脸识别,请录入</view>
</view>
<view class="face-desc">
<text>去设置</text>
<text style="margin-left: 10rpx;">></text>
</view>
</view> -->
</view>
<!-- 交易完成 -->
<!-- <view class="status-text" style="width: 100%;" v-if="detail.pay_end_time">
<view class="status-text" style="width: 100%;" v-if="detail.order_status == 2">
感谢预定场馆,期待下次再见!
</view> -->
</view>
<!-- 订单取消 -->
<!-- <view class="status-text" style="width: 100%;" v-if="detail.pay_end_time">
<view class="status-text" style="width: 100%;" v-if="detail.order_status == 3">
您的订单已取消。期待下次有机会再为您服务!
</view> -->
</view>
<!-- 退款 -->
<view class="status-text" style="width: 100%;" v-if="detail.pay_end_time">
<view class="status-text" style="width: 100%;" v-if="detail.order_status == 4">
<view class="d-c-c" style="margin-bottom: 18rpx;" @tap="billPopup = true">
<view class="refund-txt">实际退款¥175.00</view>
<image style="width: 48rpx;height: 48rpx;margin-left: 6rpx;margin-top: 10rpx;" src="@/static/icon/right.png" mode=""></image>
@ -41,24 +56,34 @@
</view>
<view class="shop">
<view class="one-product" v-for="(item, index) in detail.product" :key="index">
<view class="one-product" :key="index">
<view class="d-s-s">
<view class="cover" style="width: 190rpx;height: 190rpx;border-radius: 16rpx;margin-right: 30rpx;"><image :src="item.image.file_path" mode="aspectFit" style="width: 190rpx;height: 190rpx;border-radius: 16rpx;"></image></view>
<view class="cover" style="width: 190rpx;height: 190rpx;border-radius: 16rpx;margin-right: 30rpx;">
<image :src="venue.image" mode="aspectFit" style="width: 190rpx;height: 190rpx;border-radius: 16rpx;"></image>
<!-- <image :src="detail.image" mode="aspectFit" style="width: 190rpx;height: 190rpx;border-radius: 16rpx;"></image> -->
</view>
<view class="flex-1">
<view class="d-b-c">
<view class="gray3 f30 d-f a-i-c">
<view class="cg-name">这个是场馆的名字</view>
<view class="cg-name" @click="againReserve">{{ detail.ground_name }}</view>
<image style="width: 48rpx;height: 48rpx;" src="@/static/icon/right.png" mode=""></image>
</view>
<view class="cg-price">
<view class="cg-price" v-if="ballType == 2">
¥
<text class="f40">{{ item.product_price }}</text>
<text class="f40">{{ detail.order_amount }}</text>
</view>
</view>
<view class="d-b-c" style="margin-top:18rpx;">
<view class="d-b-c" style="margin-top:18rpx;" v-if="ballType == 2">
<view class="cg-hour">¥100/小时</view>
<view class="cg-num">x{{ item.total_num }}</view>
<view class="cg-num">x{{ item.hours }}</view>
</view>
<view class="d-f a-i-c" style="text-align: right;justify-content: end;margin-top:18rpx;">
<view style="font-size: 24rpx; color: #606266;line-height: 34rpx;margin-right:10rpx;">实付</view>
<view class="">
<price-format color="#606266" :subscript-size="26" :first-size="32" :second-size="32" :price=" detail.order_amount"></price-format>
</view>
</view>
</view>
</view>
@ -68,36 +93,50 @@
<!-- todo 这里的状态如果是交易完成、订单取消、退款成功则将下面的预约改为使用 -->
<view class="cg-desc1">预约时间2025-03-18 09:00-12:00</view>
<view class="cg-desc2">预约时长3小时</view>
<template v-if="ballType == 1">
<view class="cg-desc2">场地信息:</view>
<view class="desc" v-for="(item, index) in detail.trade" :key="index">
<view class="fb" style="margin: 20rpx 0;">{{ index }}</view>
<view class="date-grid">
<view class="date-time-btn" v-for="(item2, index2) in item" :key="index2">
{{ item2.start_time }}-{{ item2.end_time }}
</view>
</view>
</view>
</template>
</view>
</view>
</view>
<!-- 适用门店 -->
<!-- 适用场馆 -->
<view class="cg-store">
<view class="cg-store-title">适用门店</view>
<view class="cg-store-title" @click="againReserve">适用场馆</view>
<view class="d-s-c">
<view class="cover" style="width: 190rpx;height: 190rpx;border-radius: 16rpx;margin-right: 30rpx;"><image :src="'https://6548.cn/uploads/20241020/3eb4aa0c96d9cfb361cddd2fa727b6a6.jpg'" mode="aspectFit" style="width: 190rpx;height: 190rpx;border-radius: 16rpx;"></image></view>
<view class="cover" style="width: 190rpx;height: 190rpx;border-radius: 16rpx;margin-right: 30rpx;">
<image :src="venue.image" mode="aspectFit" style="width: 190rpx;height: 190rpx;border-radius: 16rpx;" />
</view>
<view class="flex-1 d-f pr">
<view class="">
<view class="gray3 f30 d-f a-i-c">
<view class="cg-name">这个是场馆的名字</view>
<view class="cg-name">{{ venue.name }}</view>
<image style="width: 48rpx;height: 48rpx;" src="@/static/icon/right.png" mode=""></image>
</view>
<view class="cg-store-jl">距您9km</view>
<view class="cg-store-jl">距您{{ venue.distance }}km</view>
<view class="d-f a-i-c cg-address-block">
<view class="">
<image style="width: 36rpx;height: 36rpx;" src="@/static/icon/address.png" mode=""></image>
</view>
<view class="cg-address">
嘉兴市秀洲区秀园路秀湖公园西南角
{{ venue.address }}
</view>
</view>
</view>
<view class="pa cg-icon-box d-f a-i-c">
<image style="width: 64rpx;height: 64rpx;margin-right: 20rpx;" src="@/static/icon/share.png" mode=""></image>
<image style="width: 64rpx;height: 64rpx;" src="@/static/icon/mobile.png" mode=""></image>
<image style="width: 64rpx;height: 64rpx;margin-right: 20rpx;" src="@/static/icon/share.png" mode="" @click="location"></image>
<image style="width: 64rpx;height: 64rpx;" src="@/static/icon/mobile.png" mode="" @click="contactStore"></image>
</view>
</view>
</view>
@ -109,31 +148,30 @@
<view class="cg-order-info d-b-c">
<view class="">订单编号</view>
<view class="">
<text>{{ detail.order_no }}</text>
<text>{{ detail.order_sn }}</text>
<text style="margin: 0 12rpx;color: #BFC2C2;">|</text>
<text class="cg-copy">复制</text>
<text class="cg-copy" @click="copy(detail.order_sn)">复制</text>
</view>
</view>
<view class="cg-order-info d-b-c mt14">
<view class="cg-order-info d-b-c mt14" v-if="detail.pay_way > 0">
<view class="">交易方式</view>
<view class="">
<text>{{ detail.pay_type.text }}</text>
<text>{{ detail.pay_way == 1 ? '余额支付' : '微信支付' }}</text>
</view>
</view>
<view class="cg-order-info d-b-c mt14">
<view class="cg-order-info d-b-c mt14" v-if="detail.dtime">
<view class="">创建时间</view>
<view class="">
<text>{{ detail.create_time }}</text>
<text>{{ detail.dtime }}</text>
</view>
</view>
<view class="cg-order-info d-b-c mt14">
<view class="cg-order-info d-b-c mt14" v-if=" detail.update_dtime">
<view class="">付款时间</view>
<view class="">
<!-- todo 需要字段 -->
<text>1111</text>
<text>{{ detail.update_dtime }}</text>
</view>
</view>
</view>
@ -141,27 +179,25 @@
<template v-if="detail.order_source != 80">
<view v-if="detail.order_status.value != 20 && detail.order_status.value != 30" class="foot-btns">
<!-- 待支付 -->
<templte class="ww100" v-if="detail.pay_status.value == 10">
<templte class="ww100" v-if="detail.order_status == 0">
<view class="d-b-c ww100">
<view class="cancle-btn">取消订单</view>
<view class="pay-btn">立即支付{{ detail.order_price }}</view>
<view class="cancle-btn" @click="showCancleOrderPopup">取消订单</view>
<view class="pay-btn" @click="onPayOrder(detail.ground_id)">立即支付{{ detail.order_amount }}</view>
</view>
</templte>
<!-- 已预约 -->
<!-- <templte class="ww100" v-if="detail.pay_status.value == 10">
<templte class="ww100" v-if="detail.order_status == 1">
<view class="d-b-c ww100">
<view class="cancle-reserve-btn">取消预约</view>
<view class="contact-btn">联系商家</view>
<view class="cancle-reserve-btn" @click="showCancleReservePopup">取消预约</view>
<view class="contact-btn" @click="contactStore">联系商家</view>
</view>
</templte> -->
</templte>
<!-- 订单取消退款成功 -->
<!-- <templte class="ww100" v-if="detail.pay_status.value == 10">
<view class="ww100 again-btn">再次预定</view>
</templte> -->
<templte class="ww100" v-if="detail.order_status == 3 || detail.order_status == 4">
<view class="ww100 again-btn" @click="againReserve">再次预定</view>
</templte>
</view>
</template>
@ -212,6 +248,37 @@
</view>
</view>
</Popup>
<!-- 取消订单 -->
<Popup :show="cancelOrderPopup" radius="16rpx">
<view class="notice-popup">
<view class="title">确定取消订单</view>
<view class="desc">
取消订单后无法恢复是否确认取消
</view>
<view class="btn">
<view class="btn1" @click="cancelOrderPopup = false">取消</view>
<view class="btn2" @click="cancelOrder">确定</view>
</view>
</view>
</Popup>
<!-- 取消预约 -->
<Popup :show="cancelReservePopup" radius="16rpx">
<view class="notice-popup">
<view class="title">确定取消预约吗</view>
<view class="desc">
<view class="rule">取消按照如下规则请谨慎操作</view>
<view class="rule1">1预约开始前24小时取消100%退款</view>
<view class="rule1">2预约开始前4小时-24小时取消50%退款</view>
<view class="rule1">3预约开始前4小时内取消不予退款</view>
</view>
<view class="btn">
<view class="btn1" @click="cancelReservePopup = false">取消</view>
<view class="btn2" @click="cancelReserveOrder">确定</view>
</view>
</view>
</Popup>
</view>
</template>
@ -226,6 +293,7 @@
},
data() {
return {
ballType: 1, // 1网球 2篮球
title: '订单详情',
/*是否加载完成*/
loadding: true,
@ -249,11 +317,15 @@
pay_status: []
},
extractStore: {},
billPopup: false
billPopup: false,
venue: {}, // 场馆
cancelOrderPopup: false,
cancelReservePopup: false
};
},
onLoad(e) {
this.order_id = e.order_id;
this.ballType = e.ballType || 1;
},
onShow() {
/*获取订单详情*/
@ -267,55 +339,102 @@
uni.showLoading({
title: '加载中'
});
self._get(
'user.order/detail',
self._post(
'order.groundOrder/orderGroundDetails',
{
order_id: order_id
},
function(res) {
self.detail = res.data.order;
self.extractStore = res.data.order.extractStore;
self.detail = res.data.lists;
console.log("🚀 ~ self.detail:", self.detail)
// self.extractStore = res.data.order.extractStore;
self.title = self.detail.state_text;
if (self.detail.state_text == '待付款') {
self.title = '等待付款';
}
// self.title = self.detail.state_text;
// if (self.detail.state_text == '待付款') {
// self.title = '等待付款';
// }
// 获取场馆详情
self._post(
'ground.ground/groundDetails',
{
app_id: self.getAppId(),
id: self.detail.ground_id,
latitude: uni.getStorageSync('latitude') || 0,
longitude: uni.getStorageSync('longitude') || 0,
},
function (res) {
if (res.code) {
self.loadding = false;
self.venue = res.data.lists
}
}
)
self.loadding = false;
uni.hideLoading();
}
);
},
// 取消订单弹窗
showCancleOrderPopup() {
this.cancelOrderPopup = true;
},
/*取消订单*/
cancelOrder(e) {
cancelOrder() {
let self = this;
let order_id = e;
uni.showModal({
title: '提示',
content: '您确定要取消当前订单吗?',
success: function(o) {
if (o.confirm) {
uni.showLoading({
title: '正在处理'
});
self._get(
'user.order/cancel',
{
order_id: order_id
},
function(res) {
uni.hideLoading();
uni.showToast({
title: '操作成功',
duration: 2000,
icon: 'success'
});
self.getData();
}
);
}
}
uni.showLoading({
title: '正在处理'
});
self._post(
'order.groundOrder/cancelGroundOrder',
{
order_id: self.order_id
},
function(res) {
self.cancelOrderPopup = false;
uni.hideLoading();
uni.showToast({
title: '操作成功',
duration: 2000,
icon: 'success'
});
self.getData();
}
);
},
// 取消预约
showCancleReservePopup() {
this.cancelReservePopup = true
},
/*取消预约订单*/
cancelReserveOrder() {
let self = this;
uni.showLoading({
title: '正在处理'
});
self._post(
'order.groundOrder/refund',
{
order_id: self.order_id
},
function(res) {
self.cancelReservePopup = false;
uni.hideLoading();
uni.showToast({
title: '操作成功',
duration: 2000,
icon: 'success'
});
self.getData();
}
);
},
/*确认收货*/
@ -359,10 +478,56 @@
onSaveTable(table_id, order_product_id) {
this.gotoPage('/pages/plus/table/table?table_id=' + table_id + '&order_product_id=' + order_product_id);
},
/*支付方式选择*/
onPayOrder(orderId) {
// 复制订单号
copy(sn) {
uni.setClipboardData({
data: sn,
success: function() {
uni.showToast({
title: '复制成功',
duration: 2000,
icon: 'success'
});
}
});
},
// 跳转支付页面
onPayOrder(groundId = 0) {
let self = this;
self.gotoPage('/pages/order/cashier?order_id=' + orderId);
if (self.ballType == 1) {
// 网球场
self.gotoPage(`/bundle/reserve/confirm?orderId=${self.order_id}&venueId=${groundId}&typeId=1`);
return
}
},
// 再次预定
againReserve() {
this.gotoPage(`/bundle/reserve/details?id=${this.detail.ground_id}&ballType=${this.ballType}`);
// toGround(ground_id) {
// uni.navigateTo({
// url: `/bundle/reserve/details?id=${ground_id}&typeId=${this.ballType}`
// });
},
// 联系商家
contactStore() {
uni.makePhoneCall({
phoneNumber: this.venue.contact_phone //仅为示例,并非真实的电话号码
});
},
// 导航
location() {
uni.openLocation({
latitude: this.venue.latitude, // 纬度,范围为-90~90负数表示南纬
longitude: this.venue.longitude, // 经度,范围为-180~180负数表示西经
scale: 18, // 缩放比例
name: this.venue.name,
address: this.venue.address
});
}
}
};
@ -418,19 +583,20 @@ page {
}
.shop{
background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArIAAAHqCAMAAADPkl21AAABvFBMVEUAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////l5eX///8dYfCxAAAAknRSTlMAAQIDBAYHCAkKCwwNDg8TFBUXGBobHR4fICEiIycoKSssLzAyMzQ1OEFCQ0VLTlBSU1ZXWVtdYWNkZWZnamtub3BxdHV3eXqDhYeJjI2Oj5KUlpiZm56go6Smp6qsrrCzuru8vb/GyMrLzs/S09TV1tfa29zd3t/g4eLj5ebn6Orr7/Dx8vP09fb3+Pn6+/z9/jTqU2QAAAWpSURBVHja7dznc1RlGMbhB0g2IUZRQzFgTFAUFFA6iIpIsWEJIFIVRKWXqAQUpFggbOjyDwMBISHZ3W/M8w7X9fGd/XTPb2bPnLN7Ih5qe+ern/6o3oZUqr//+MXbLTHaa9vUSlqXvp35WLAtX980C5ld/7x5eLHdx01CdodmPCq254I9yO/My/8XO/2cNShBf8f9YtuP2YIy7K8MJbvZEpTis6EL2RuGoBSDU+4mu9MOlKM3YtI1M1COvyvxrhUoyXzXBZTly+gzAiXZG4NGoCT9ccsIlGQgbEBZJItkQbIgWSQLkgXJIlmQLEgWyYJkQbJIFiQLkkWyIFmQLJIFyYJkkSxIFiSLZEGyIFkkC5IFyYJkkSxIFiSLZEGyIFkkC5IFySJZkCxIFsmCZEGySBYkC5JFsiBZkCySBcmCZJEsSBYkC5JFsiBZkCySBcmCZJEsSBYki2RBsiBZJAuSBckiWZAsSBbJgmRBskgWJAuSRbIgWZAsSBbJgmRBskgWJAuSRbIgWZAskgXJgmSRLEgWJItkQbIgWSQLkgXJIlmQLEgWyYJkQbIgWSQLkgXJIlmQLEgWyYJkQbJIFiQLkkWyIFmQLJIFyYJkkSxIFiSLZEGyIFkkC5IFySJZEyBZkCxIFsmCZEGySBYkC5JFsiBZkCySBcmCZJEsSBYki2RBsiBZJAuSBckiWZAsSBbJgmRBsiBZJAuSBckiWZAsSBbJgmRBskgWJAuSRbIgWZAskgXJgmSRLEgWJItkQbIgWSQLkgXJgmSRLEgWJItkQbIgWSQLkgXJIlmQLEgWyYJkQbJIFiQLkkWyIFmQLJIFyYJkeZqTbZ02d83uqiHIb+D7j96aVokhbcuPGoTcDi9tjeEmrL9qFPKqrh4fj3v1hF3I6nh3jGHKb5YhpyPPx5imn7UNGZ14MWqYPWgd8vm3O2r62Dzks7J2sVE5Yx/SXciOr5NsrDIQ2SyqV2w852qWZP5qqpts7DERuXxTv9hYYyJyWdwg2bkmIpeuBsl2mohcmhskO3HEp/8bxpmzJ312z60GxUazZJ2lSvZ2gxsG8YIvInKZ1CDZOSYilzcaJPu+ichlRYNkd5mIXLbXL7ZtwETk8k+lbrLvWYhsltW9xXXKQGTzy4Q6ya6zD/l8ULvY172Cg4Qu9tT8fcGf1iGjkx1jFzv5V9uQ07Ex/xQ+q98yZNX3yqhgmz7xgiMSu/zhuBHBtq/oMwq5HVrScr/W1s55a/f4kyIl3Dn4bvWbUyteiUxhJItkQbIgWSQLkgXJIlmQLEgWyYJkQbJIFiQLkkWyIFmQLJIFyYJkkSxIFiSLZEGyIFkkC5IFyYJkkSxIFiSLZEGyIFkkC5IFySJZkCxIFsmCZEGySBYkC5JFsiBZkCySBcmCZJEsSBYkC5JFsiBZkCySBcmCZJEsSBYki2RBsiBZJAuSBckiWZAsSBbJgmRBskgWJAuSRbIgWZAsSBbJgmRBskgWJAuSRbIgWZAskgXJgmSRLEgWJItkQbIgWSQLkgXJIlmQLEgWyYJkQbIgWSQLkgXJIlmQLEgWyYJkQbJIFiQLkkWyIFmQLJIFyYJkkSxIFiSLZEGyIFkkC5IFySJZEyBZkCxIFsmCZEGySBYkC5JFsiBZkCySBcmCZJEsSBYki2RBsiBZJAuSBckiWZAsSBbJgmRBsiBZJAuSBckiWZAsSBbJgmRBskgWJAuSRbIgWZAskgXJgmSRLEgWJItkIX+yV21ASa7EBSNQkvNxwAiUZF9sMQIl2RRLjEBJFsazg1agHJcmRmw1A+XYHBFdN+xAKa68dDfZ2GgISrHhXrHxzFFLUIb9LUPJRudZW1CC/o54oMcjMApwekY81N1nD7I72BnDtPbeNAmZXfu0KUaatcMzBdK6uKUrRmtf0Pvz6ap1yOXyqR82zK886vQOlHY6pWI0r3sAAAAASUVORK5CYII=");
background-repeat: no-repeat;
background-size: 100% auto;
height: 490rpx;
margin: 30rpx 30rpx 0;
padding: 30rpx 30rpx 0;
// background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAArIAAAHqCAMAAADPkl21AAABvFBMVEUAAAD////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////l5eX///8dYfCxAAAAknRSTlMAAQIDBAYHCAkKCwwNDg8TFBUXGBobHR4fICEiIycoKSssLzAyMzQ1OEFCQ0VLTlBSU1ZXWVtdYWNkZWZnamtub3BxdHV3eXqDhYeJjI2Oj5KUlpiZm56go6Smp6qsrrCzuru8vb/GyMrLzs/S09TV1tfa29zd3t/g4eLj5ebn6Orr7/Dx8vP09fb3+Pn6+/z9/jTqU2QAAAWpSURBVHja7dznc1RlGMbhB0g2IUZRQzFgTFAUFFA6iIpIsWEJIFIVRKWXqAQUpFggbOjyDwMBISHZ3W/M8w7X9fGd/XTPb2bPnLN7Ih5qe+ern/6o3oZUqr//+MXbLTHaa9vUSlqXvp35WLAtX980C5ld/7x5eLHdx01CdodmPCq254I9yO/My/8XO/2cNShBf8f9YtuP2YIy7K8MJbvZEpTis6EL2RuGoBSDU+4mu9MOlKM3YtI1M1COvyvxrhUoyXzXBZTly+gzAiXZG4NGoCT9ccsIlGQgbEBZJItkQbIgWSQLkgXJIlmQLEgWyYJkQbJIFiQLkkWyIFmQLJIFyYJkkSxIFiSLZEGyIFkkC5IFyYJkkSxIFiSLZEGyIFkkC5IFySJZkCxIFsmCZEGySBYkC5JFsiBZkCySBcmCZJEsSBYkC5JFsiBZkCySBcmCZJEsSBYki2RBsiBZJAuSBckiWZAsSBbJgmRBskgWJAuSRbIgWZAsSBbJgmRBskgWJAuSRbIgWZAskgXJgmSRLEgWJItkQbIgWSQLkgXJIlmQLEgWyYJkQbIgWSQLkgXJIlmQLEgWyYJkQbJIFiQLkkWyIFmQLJIFyYJkkSxIFiSLZEGyIFkkC5IFySJZEyBZkCxIFsmCZEGySBYkC5JFsiBZkCySBcmCZJEsSBYki2RBsiBZJAuSBckiWZAsSBbJgmRBsiBZJAuSBckiWZAsSBbJgmRBskgWJAuSRbIgWZAskgXJgmSRLEgWJItkQbIgWSQLkgXJgmSRLEgWJItkQbIgWSQLkgXJIlmQLEgWyYJkQbJIFiQLkkWyIFmQLJIFyYJkeZqTbZ02d83uqiHIb+D7j96aVokhbcuPGoTcDi9tjeEmrL9qFPKqrh4fj3v1hF3I6nh3jGHKb5YhpyPPx5imn7UNGZ14MWqYPWgd8vm3O2r62Dzks7J2sVE5Yx/SXciOr5NsrDIQ2SyqV2w852qWZP5qqpts7DERuXxTv9hYYyJyWdwg2bkmIpeuBsl2mohcmhskO3HEp/8bxpmzJ312z60GxUazZJ2lSvZ2gxsG8YIvInKZ1CDZOSYilzcaJPu+ichlRYNkd5mIXLbXL7ZtwETk8k+lbrLvWYhsltW9xXXKQGTzy4Q6ya6zD/l8ULvY172Cg4Qu9tT8fcGf1iGjkx1jFzv5V9uQ07Ex/xQ+q98yZNX3yqhgmz7xgiMSu/zhuBHBtq/oMwq5HVrScr/W1s55a/f4kyIl3Dn4bvWbUyteiUxhJItkQbIgWSQLkgXJIlmQLEgWyYJkQbJIFiQLkkWyIFmQLJIFyYJkkSxIFiSLZEGyIFkkC5IFyYJkkSxIFiSLZEGyIFkkC5IFySJZkCxIFsmCZEGySBYkC5JFsiBZkCySBcmCZJEsSBYkC5JFsiBZkCySBcmCZJEsSBYki2RBsiBZJAuSBckiWZAsSBbJgmRBskgWJAuSRbIgWZAsSBbJgmRBskgWJAuSRbIgWZAskgXJgmSRLEgWJItkQbIgWSQLkgXJIlmQLEgWyYJkQbIgWSQLkgXJIlmQLEgWyYJkQbJIFiQLkkWyIFmQLJIFyYJkkSxIFiSLZEGyIFkkC5IFySJZEyBZkCxIFsmCZEGySBYkC5JFsiBZkCySBcmCZJEsSBYki2RBsiBZJAuSBckiWZAsSBbJgmRBsiBZJAuSBckiWZAsSBbJgmRBskgWJAuSRbIgWZAskgXJgmSRLEgWJItkIX+yV21ASa7EBSNQkvNxwAiUZF9sMQIl2RRLjEBJFsazg1agHJcmRmw1A+XYHBFdN+xAKa68dDfZ2GgISrHhXrHxzFFLUIb9LUPJRudZW1CC/o54oMcjMApwekY81N1nD7I72BnDtPbeNAmZXfu0KUaatcMzBdK6uKUrRmtf0Pvz6ap1yOXyqR82zK886vQOlHY6pWI0r3sAAAAASUVORK5CYII=");
// background-repeat: no-repeat;
// background-size: 100% auto;
background-color: #fff;
border-radius: 16rpx;
// height: 490rpx;
margin: 30rpx;
padding: 30rpx;
}
.cg-name {
font-size: 32rpx;
color: #303133;
line-height: 44rpx;
width: 256rpx;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
@ -461,7 +627,7 @@ page {
}
.cg-reserve {
margin-top: 68rpx;
margin-top: 20rpx;
}
.cg-title {
@ -559,6 +725,7 @@ page {
line-height: 36rpx;
text-align: center;
margin-top: 14rpx;
text-align: center;
}
.refund-txt {
@ -766,4 +933,101 @@ page {
line-height: 42rpx;
}
}
.face {
width: 692rpx;
height: 80rpx;
background: #FFFFFF;
border-radius: 16rpx 16rpx 16rpx 16rpx;
border: 2rpx solid #FAEED9;
color: #E2950F;
padding: 0 30rpx;
margin: 18rpx 30rpx 0;
box-sizing: border-box;
.face-title {
}
}
/* 日期网格:一行三个,间距 20rpx */
.date-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-gap: 20rpx 20rpx; /* 行间距和列间距均为 20rpx */
}
.date-time-btn {
width: 100%;
height: 60rpx;
line-height: 60rpx;
background: #365A9A;
color: #fff;
font-size: 26rpx;
border-radius: 10rpx;
text-align: center;
}
.notice-popup {
padding: 20rpx 0;
width: 100%;
.title {
font-size: 36rpx;
color: #303133;
line-height: 50rpx;
text-align: center;
}
.desc {
margin-top: 48rpx;
font-weight: 400;
font-size: 32rpx;
color: #303133;
line-height: 52rpx;
text-align: center;
}
.rule {
margin-bottom: 18rpx;
text-align: left;
}
.rule1 {
font-weight: 400;
font-size: 32rpx;
color: #303133;
line-height: 44rpx;
text-align: left;
margin-bottom: 10rpx;
}
.btn {
font-size: 32rpx;
display: flex;
justify-content: center;
align-items: center;
margin-top: 44rpx;
.btn1 {
width: 240rpx;
height: 80rpx;
line-height: 80rpx;
text-align: center;
background: #F6F7F8;
border-radius: 8rpx;
margin-right: 30rpx;
}
.btn2 {
width: 240rpx;
height: 80rpx;
line-height: 80rpx;
text-align: center;
background: #365A9A;
color: #FFFFFF;
border-radius: 8rpx;
}
}
}
</style>

View File

@ -267,4 +267,6 @@ page {
.order-bts .del-btn {
border: 2rpx solid #C2C9D5 !important;
color: #365A9A !important;
background-color: transparent !important;
color: #303133 !important;
}

View File

@ -4,7 +4,7 @@
<header-bar></header-bar>
<!-- #endif -->
<!-- 搜索框 -->
<view class="index-search-box-cate d-b-c" id="searchBox"
<view class="index-search-box-cate d-b-c" style="background-color: #365A9A !important;" id="searchBox"
:style="topBarHeight() == 0 ? '': 'height:'+topBarHeight()+'px;padding-top:'+topBarTop()+'px'">
<view class="index-search-cate flex-1 t-c" @click="gotoSearch">
<span class="icon iconfont icon-sousuo"></span>

View File

@ -61,32 +61,32 @@
<view class="item" @click="jumpPage('/pages/order/cg-my-order?dataType=0')">
<view class="icon-box pr">
<image src="/static/icon/dfk.png" mode=""></image>
<text class="dot d-c-c"
v-if="orderCount.payment != null && orderCount.payment > 0">{{ orderCount.payment }}</text>
<!-- <text class="dot d-c-c"
v-if="orderCount.payment != null && orderCount.payment > 0">{{ orderCount.payment }}</text> -->
</view>
<text>待付款</text>
</view>
<view class="item" @click="jumpPage('/pages/order/cg-my-order?dataType=1')">
<view class="icon-box pr">
<image src="/static/icon/yyy.png" mode=""></image>
<text class="dot d-c-c"
v-if="orderCount.reserve != null && orderCount.reserve > 0">{{ orderCount.reserve }}</text>
<!-- <text class="dot d-c-c"
v-if="orderCount.reserve != null && orderCount.reserve > 0">{{ orderCount.reserve }}</text> -->
</view>
<text class="">已预约</text>
</view>
<view class="item" @click="jumpPage('/pages/order/cg-my-order?dataType=2')">
<view class="icon-box pr">
<image src="/static/icon/ywc.png" mode=""></image>
<text class="dot d-c-c"
v-if="orderCount.completed != null && orderCount.completed > 0">{{ orderCount.completed }}</text>
<!-- <text class="dot d-c-c"
v-if="orderCount.completed != null && orderCount.completed > 0">{{ orderCount.completed }}</text> -->
</view>
<text>已完成</text>
</view>
<view class="item" @click="jumpPage('/pages/order/cg-my-order?dataType=4')">
<view class="icon-box pr">
<image src="/static/icon/tk.png" mode=""></image>
<text class="dot d-c-c"
v-if="orderCount.refund != null && orderCount.refund > 0">{{ orderCount.refund }}</text>
<!-- <text class="dot d-c-c"
v-if="orderCount.refund != null && orderCount.refund > 0">{{ orderCount.refund }}</text> -->
</view>
<text>退款/售后</text>
</view>

BIN
static/icon/prompt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 677 B