完善页面

This commit is contained in:
wangxiaowei
2025-10-28 16:28:17 +08:00
parent 7963c28ceb
commit 331d6facdb
17 changed files with 1637 additions and 72 deletions

399
bundle/reserve/confirm.vue Normal file
View File

@ -0,0 +1,399 @@
<template>
<view class="">
<navbar title="确认订单"></navbar>
<!-- 预约信息 -->
<view class="bg-white box pr">
<view class="current"></view>
<view class="title">预约信息</view>
<view class="desc">预约场地这里是场地的名称</view>
<view class="desc">预约时间2025-03-18 09:00-12:00</view>
<view class="desc">预约时长3小时</view>
</view>
<!-- 其他须知 -->
<view class="bg-white box pr mt20">
<view class="current"></view>
<view class="title">
其他须知
</view>
<view class="desc2">
<view class="dot"></view>
<view class="">17点前预约100元/小时</view>
</view>
<view class="desc2">
<view class="dot"></view>
<view class="">17点后需要加收灯光费120/小时</view>
</view>
</view>
<!-- 退订规则 -->
<view class="bg-white box pr mt20">
<view class="current"></view>
<view class="title">
退订规则
</view>
<view class="desc">
①开场前24小时退订可全款退款
</view>
<view class="desc">
②4小时开场前24小时退订收取50%手续费
</view>
<view class="desc">
③开场前4小时退订不予退款
</view>
</view>
<!-- 立即预定 -->
<view class="price" v-if="showPrice">
<view class="line"></view>
<view class="d-b-c price-block">
<view class="d-f d-c j-c-b">
<view class="">
合计 <price-format color="#FF5951" :subscript-size="26" :first-size="40" :second-size="40" price="100"></price-format>
</view>
<view class="d-f j-c-c a-i-c" style="margin-top: 10rpx;" @tap="handleShowBill">
<view class="price-detail">费用明细</view>
<image style="width: 14rpx;height: 8rpx;margin-left: 10rpx;" src="@/static/icon/down.png" mode=""></image>
</view>
</view>
<view class="price-btn" @tap="toConfirm">立即预定<text class="" v-if="countSelectedTime > 0">{{countSelectedTime}}小时</text></view>
</view>
</view>
<!-- 费用明细弹窗 -->
<Popup :show="billPopup" :width='750' :padding="0" type="bottom" backgroundColor="#FBFBFB" radius="32rpx 32rpx 0 0">
<view class="ww100 box-s-b pop-improt typeof pr time-popup">
<image style="width: 64rpx;height: 64rpx;position: absolute; top: 26rpx;right: 30rpx;" src="@/static/icon/close2.png" mode="" @click="closeBillPopup"></image>
<view class="d-c-c pt42">
<text class="f34 fb">费用明细</text>
</view>
<view class="bg-white bill-info">
<view class="">
<view class="title1 d-b-c">
<view>场地费</view>
<view>
<price-format color="#303133" :subscript-size="30" :first-size="30" :second-size="30" price="100"></price-format>
</view>
</view>
<view class="title2 d-b-c">
<view>场地费100/小时</view>
<view>x3</view>
</view>
</view>
<view style="margin-top: 52rpx;">
<view class="title1 d-b-c">
<view>灯光费</view>
<view>
<price-format color="#303133" :subscript-size="30" :first-size="30" :second-size="30" price="100"></price-format>
</view>
</view>
<view class="title2 d-b-c">
<view>灯光费50/小时</view>
<view>x3</view>
</view>
</view>
<view class="line"></view>
<view class="title3 d-b-c">
<view>实付金额</view>
<view>
<price-format color="#303133" :subscript-size="30" :first-size="30" :second-size="30" price="100"></price-format>
</view>
</view>
</view>
<view class="price2 bg-white" style="margin: 0; padding: 56rpx 22rpx 42rpx;">
<view class="d-b-c price-block" style="margin: 0;">
<view class="d-f d-c j-c-b">
<view class="">
合计 <price-format color="#FF5951" :subscript-size="26" :first-size="40" :second-size="40" price="100"></price-format>
</view>
<view class="d-f j-c-c a-i-c" style="margin-top: 10rpx;" @click="closeBillPopup">
<view class="price-detail">费用明细</view>
<image style="width: 14rpx;height: 8rpx;margin-left: 10rpx;" src="@/static/icon/up.png" mode=""></image>
</view>
</view>
<view class="price-btn">立即预定<text class="" v-if="countSelectedTime > 0">{{countSelectedTime}}小时</text></view>
</view>
</view>
</view>
</Popup>
</view>
</template>
<script>
import navbar from '@/components/navbar.vue';
import Popup from '@/components/uni-popup.vue';
export default {
components: {
navbar,
Popup
},
data() {
return {
billPopup: false,
showPrice: true
};
},
methods: {
// 显示费用明细
handleShowBill() {
this.showPrice = false;
this.billPopup = true;
},
closeBillPopup() {
this.billPopup = false;
this.showPrice = true;
},
}
};
</script>
<style lang="scss">
.box {
border-radius: 16rpx;
padding: 32rpx 30rpx;
margin: 0 30rpx;
}
.title {
font-size: 32rpx;
color: #303133;
line-height: 44rpx;
margin-bottom: 28rpx;
}
.desc {
font-weight: 500;
font-size: 26rpx;
color: #303133;
line-height: 48rpx;
margin-bottom: 16rpx;
}
.desc:last-child {
margin-bottom: 0;
}
.current {
position: absolute;
left: 0;
top: 38rpx;
width: 8rpx;
height: 32rpx;
background-color: #365A9A;
border-radius: 4rpx;
}
.dot {
width: 8rpx;
height: 8rpx;
background: #6A6363;
margin-right: 12rpx;
}
.mt20 {
margin-top: 20rpx;
}
.desc2 {
display: flex;
align-items: center;
margin-bottom: 16rpx;
}
.desc2:last-child {
margin-bottom: 0;
}
.price {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background-color: #fff;
.line {
height: 2rpx;
background: #E5E5E5;
width: 100%;
}
.price-block {
margin: 42rpx 22rpx;
}
.price-detail {
color: #365A9A;
font-size: 24rpx;
line-height: 34rpx;
}
.price-btn {
width: 368rpx;
height: 90rpx;
line-height: 90rpx;
text-align: center;
background: #365A9A;
border-radius: 8rpx;
font-size: 32rpx;
color: #FFF;
}
}
.time-popup {
position: relative;
.title {
font-size: 36rpx;
color: #121212;
line-height: 50rpx;
}
.pt42 {
padding-top: 42rpx;
}
.notice {
margin-top: 30rpx;
width: 100%;
height: 56rpx;
background: #FFFBE5;
padding: 10rpx 30rpx;
font-weight: 500;
font-size: 26rpx;
color: #E2950F;
line-height: 48rpx;
text-align: left;
}
.time-item {
margin-right: 32rpx;
font-weight: 400;
font-size: 32rpx;
color: #303133;
line-height: 44rpx;
height: 62rpx;
}
.time-item-line {
width: 60rpx;
height: 10px;
background-color: #365A9A;
border-radius: 6rpx;
}
.active {
color: #365A9A;
font-size: 32rpx;
line-height: 44rpx;
}
.active:after {
content: '';
display: block;
width: 60rpx;
height: 10rpx;
background-color: #365A9A;
border-radius: 6rpx;
margin: 8rpx auto 0 auto;
}
/* 日期网格:一行四个,间距 20rpx */
.date-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-gap: 20rpx 20rpx; /* 行间距和列间距均为 20rpx */
padding: 0 30rpx; /* 保持与上方时间切换区域一致的左右内边距 */
}
.date-item {
background-color: #F7F7F7;
border-radius: 10rpx;
height: 72rpx; /* 可按需调整高度 */
display: flex;
align-items: center;
justify-content: center;
font-size: 30rpx;
color: #303133;
box-sizing: border-box;
}
/* 可选:选中样式 */
.date-item.active {
border-color: #365A9A;
color: #365A9A;
box-shadow: 0 4rpx 10rpx rgba(54,90,154,0.08);
}
.price2 {
margin-top: 100rpx;
.line {
height: 2rpx;
background: #E5E5E5;
width: 100%;
}
.price-block {
margin: 42rpx 22rpx;
}
.price-detail {
color: #365A9A;
font-size: 24rpx;
line-height: 34rpx;
}
.price-btn {
width: 368rpx;
height: 90rpx;
line-height: 90rpx;
text-align: center;
background: #365A9A;
border-radius: 8rpx;
font-size: 32rpx;
color: #FFF;
}
}
}
.bill-info {
border-radius: 16rpx;
margin: 32rpx 30rpx 22rpx;
padding: 48rpx 30rpx 30rpx;
.title1 {
font-size: 30rpx;
color: #303133;
line-height: 42rpx;
}
.title2 {
margin-top: 12rpx;
font-weight: 400;
font-size: 24rpx;
color: #909399;
line-height: 34rpx;
}
.line {
border: 2rpx solid #F6F7F9;
margin: 34rpx 0 30rpx;
}
.title3 {
font-size: 30rpx;
color: #303133;
line-height: 42rpx;
}
}
</style>

View File

@ -18,7 +18,7 @@
<Popup :show="timePopup" :width='750' :padding="0" type="bottom" radius="32rpx 32rpx 0 0"> <Popup :show="timePopup" :width='750' :padding="0" type="bottom" radius="32rpx 32rpx 0 0">
<view class="ww100 box-s-b pop-improt typeof pr time-popup"> <view class="ww100 box-s-b pop-improt typeof pr time-popup">
<image style="width: 64rpx;height: 64rpx;position: absolute; top: 26rpx;right: 30rpx;" src="@/static/icon/close2.png" mode=""></image> <image style="width: 64rpx;height: 64rpx;position: absolute; top: 26rpx;right: 30rpx;" src="@/static/icon/close2.png" mode="" @tap="timePopup = false"></image>
<view class="d-c-c pt42"> <view class="d-c-c pt42">
<text class="f34 fb">选择时间</text> <text class="f34 fb">选择时间</text>
@ -56,7 +56,7 @@
<image style="width: 14rpx;height: 8rpx;margin-left: 10rpx;" src="@/static/icon/down.png" mode=""></image> <image style="width: 14rpx;height: 8rpx;margin-left: 10rpx;" src="@/static/icon/down.png" mode=""></image>
</view> </view>
</view> </view>
<view class="price-btn">立即预定<text class="" v-if="countSelectedTime > 0">{{countSelectedTime}}小时</text></view> <view class="price-btn" @tap="toConfirm">立即预定<text class="" v-if="countSelectedTime > 0">{{countSelectedTime}}小时</text></view>
</view> </view>
</view> </view>
</view> </view>
@ -64,7 +64,7 @@
<Popup :show="billPopup" :width='750' :padding="0" type="bottom" backgroundColor="#FBFBFB" radius="32rpx 32rpx 0 0"> <Popup :show="billPopup" :width='750' :padding="0" type="bottom" backgroundColor="#FBFBFB" radius="32rpx 32rpx 0 0">
<view class="ww100 box-s-b pop-improt typeof pr time-popup"> <view class="ww100 box-s-b pop-improt typeof pr time-popup">
<image style="width: 64rpx;height: 64rpx;position: absolute; top: 26rpx;right: 30rpx;" src="@/static/icon/close2.png" mode=""></image> <image style="width: 64rpx;height: 64rpx;position: absolute; top: 26rpx;right: 30rpx;" src="@/static/icon/close2.png" mode="" @tap="handleShowTime"></image>
<view class="d-c-c pt42"> <view class="d-c-c pt42">
<text class="f34 fb">费用明细</text> <text class="f34 fb">费用明细</text>
@ -256,6 +256,12 @@
handleShowTime() { handleShowTime() {
this.billPopup = false; this.billPopup = false;
this.timePopup = true; this.timePopup = true;
},
toConfirm() {
uni.navigateTo({
url: '/bundle/reserve/confirm'
});
} }
} }
}; };

View File

@ -32,6 +32,10 @@ body {
color: #333333; color: #333333;
} }
.gray7 {
color: #C9C9C9;
}
.white { .white {
color: #FFFFFF; color: #FFFFFF;
} }
@ -96,10 +100,10 @@ body {
} }
.theme-btn{ .theme-btn{
border: 1rpx solid; border: 1rpx solid;
// @include border_color("border_color"); @include border_color("border_color");
// @include background_color("background_color"); @include background_color("background_color");
border-color: #365A9A; // border-color: #365A9A;
background-color: #365A9A; // background-color: #365A9A;
@include text_color("text_color1"); @include text_color("text_color1");
} }
.theme-linbtn{ .theme-linbtn{

View File

@ -3,8 +3,9 @@
<view class="top_head pr" :style="'background-color:' + bg +';'"> <view class="top_head pr" :style="'background-color:' + bg +';'">
<view class="head_top" :style="'height:' + topBarTop() + 'px;'"></view> <view class="head_top" :style="'height:' + topBarTop() + 'px;'"></view>
<view class="title" :style="topBarHeight() == 0 ? '' : 'height:' + topBarHeight() + 'px;'"> <view class="title" :style="topBarHeight() == 0 ? '' : 'height:' + topBarHeight() + 'px;'">
<image style="width: 48rpx;height: 48rpx;margin-top: 2rpx" src="@/static/icon/back2.png" mode=""></image> <image style="width: 48rpx;height: 48rpx;margin-top: 2rpx" src="@/static/icon/back2.png" mode="" @click="back"></image>
<view class="s-title">{{ title }}</view> <view class="s-title" v-if="title">{{ title }}</view>
<slot name="content"></slot>
</view> </view>
</view> </view>
</view> </view>
@ -15,7 +16,7 @@
props: { props: {
title: { title: {
type: String, type: String,
default: '标题' default: ''
}, },
bg: { bg: {
type: String, type: String,
@ -30,7 +31,11 @@
mounted() { mounted() {
}, },
methods: { methods: {
back() {
uni.navigateBack({
delta: 1
});
},
} }
}; };
</script> </script>

View File

@ -951,7 +951,28 @@
//#endif //#endif
} }
} }
},
{
"path": "pages/order/cg-my-order",
"style": {
"navigationStyle": "custom",
"app-plus": {
//#ifdef H5
"titleNView": false
//#endif
}
}
},
{
"path": "pages/order/cg-order-detail",
"style": {
"navigationStyle": "custom",
"app-plus": {
//#ifdef H5
"titleNView": false
//#endif
}
}
} }
], ],
"subPackages": [{ "subPackages": [{
@ -974,6 +995,12 @@
"style": { "style": {
"navigationBarTitleText": "支付结果" "navigationBarTitleText": "支付结果"
} }
},
{
"path": "reserve/confirm",
"style": {
"navigationStyle": "custom"
}
} }
] ]
}], }],

View File

@ -110,7 +110,7 @@
<tabBar></tabBar> <tabBar></tabBar>
<!-- 公告 --> <!-- 公告 -->
<Popup :show="noticePopup"> <Popup :show="noticePopup" radius="16rpx">
<view class="notice-popup"> <view class="notice-popup">
<view class="title">公告</view> <view class="title">公告</view>
<view class="desc">目前仅开放1-2号场地预约3-6号场地预约敬请期待</view> <view class="desc">目前仅开放1-2号场地预约3-6号场地预约敬请期待</view>
@ -120,7 +120,7 @@
</Popup> </Popup>
<!-- 温馨提示 --> <!-- 温馨提示 -->
<Popup :show="tipsPopup"> <Popup :show="tipsPopup" radius="16rpx">
<view class="notice-popup"> <view class="notice-popup">
<view class="title">温馨提示</view> <view class="title">温馨提示</view>
<view class="desc"> <view class="desc">

View File

@ -46,8 +46,8 @@
<view class="product-list pr" v-if="item.product.length > 1" @click="gotoOrder(item.order_id)"> <view class="product-list pr" v-if="item.product.length > 1" @click="gotoOrder(item.order_id)">
<scroll-view scroll-x="true"> <scroll-view scroll-x="true">
<view class="list d-s-c pr100"> <view class="list d-s-c pr100">
<view class="cover mr10" v-for="(img, num) in item.product" :key="num"> <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="aspectFit"></image> <image :src="img.image.file_path" mode="aspectFill" style="width: 200rpx; height: 200rxpx;"></image>
</view> </view>
</view> </view>
</scroll-view> </scroll-view>
@ -63,7 +63,7 @@
<!--一个商品显示--> <!--一个商品显示-->
<view class="one-product d-s-c" v-else @click="gotoOrder(item.order_id)"> <view class="one-product d-s-c" v-else @click="gotoOrder(item.order_id)">
<view class="cover" v-for="(img, num) in item.product" :key="num" style="width: 200rpx; height: 200rxpx;"> <view class="cover" v-for="(img, num) in item.product" :key="num" style="width: 200rpx; height: 200rxpx;">
<image :src="img.image.file_path" mode="aspectFit" style="width: 200rpx; height: 200rxpx;"></image> <image :src="img.image.file_path" mode="aspectFill" style="width: 200rpx; height: 200rxpx;"></image>
</view> </view>
<view class="flex-1"> <view class="flex-1">
<view class="pro-info cg-info1">这个是场馆的分场名称</view> <view class="pro-info cg-info1">这个是场馆的分场名称</view>
@ -165,7 +165,7 @@
<view class="order-bts" v-else> <view class="order-bts" v-else>
<block v-if="item.order_status.value ==10"> <block v-if="item.order_status.value ==10">
<!-- 未支付取消订单 --> <!-- 未支付取消订单 -->
<button @click="cancelOrder(item.order_id)" class="theme-borderbtn cancel-btn" <button @click="showCancleOrderPopup(item.order_id)" class="theme-borderbtn cancel-btn"
v-if="item.pay_status.value == 10">取消订单</button> v-if="item.pay_status.value == 10">取消订单</button>
<!-- 已支付取消订单 --> <!-- 已支付取消订单 -->
<block v-if="item.pay_status.value == 20 && item.delivery_status.value == 10"> <block v-if="item.pay_status.value == 20 && item.delivery_status.value == 10">
@ -185,7 +185,7 @@
<!-- todo 缺了一个删除订单的功能,需要跟后端确认 --> <!-- todo 缺了一个删除订单的功能,需要跟后端确认 -->
<!-- <block v-if="item.pay_status.value == 10"><button class="theme-btn del-btn" <!-- <block v-if="item.pay_status.value == 10"><button class="theme-btn del-btn"
@click="onPayOrder(item.order_id)">删除订单</button></block> --> @click="onDelOrder(item.order_id)">删除订单</button></block> -->
<!-- 确认收货 --> <!-- 确认收货 -->
@ -216,6 +216,35 @@
<image class="ww100" :src="codeImg" mode="widthFix"></image> <image class="ww100" :src="codeImg" mode="widthFix"></image>
</view> </view>
</Popup> </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="delOrderPopup" radius="16rpx">
<view class="notice-popup">
<view class="title">确定删除订单</view>
<view class="desc">
删除订单后无法恢复是否确认删除订单
</view>
<view class="btn">
<view class="btn1" @click="delOrderPopup = false">取消</view>
<view class="btn2" @click="delOrder">确定</view>
</view>
</view>
</Popup>
<tabBar></tabBar> <tabBar></tabBar>
</view> </view>
</template> </template>
@ -265,7 +294,9 @@
loading: true, loading: true,
/*是否显示核销二维码*/ /*是否显示核销二维码*/
isCodeImg: false, isCodeImg: false,
codeImg: '' codeImg: '',
cancelOrderPopup: false,
delOrderPopup: false,
}; };
}, },
computed: { computed: {
@ -417,7 +448,7 @@
/*跳转页面*/ /*跳转页面*/
gotoOrder(e) { gotoOrder(e) {
this.gotoPage('/pages/order/order-detail?order_id=' + e); this.gotoPage('/pages/order/cg-order-detail?order_id=' + e);
}, },
/*隐藏支付方式*/ /*隐藏支付方式*/
@ -518,36 +549,34 @@
} }
}); });
}, },
// 取消订单弹窗
showCancleOrderPopup(order_id) {
this.cancelOrderPopup = true;
this.order_id = order_id;
},
/*取消订单*/ /*取消订单*/
cancelOrder(e) { cancelOrder(e) {
let self = this; let self = this;
let order_id = e; uni.showLoading({
uni.showModal({ title: '正在处理'
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.listData = [];
self.getData();
}
);
}
}
}); });
self._get(
'user.order/cancel', {
order_id: self.order_id
},
function(res) {
uni.hideLoading();
uni.showToast({
title: '操作成功',
duration: 2000,
icon: 'success'
});
self.listData = [];
self.getData();
}
);
}, },
nowOverTime(t) { nowOverTime(t) {
@ -589,6 +618,15 @@
gotoAssembleShare(e) { gotoAssembleShare(e) {
let url = '/pages/plus/assemble/fight-group-detail/fight-group-detail?assemble_bill_id=' + e; let url = '/pages/plus/assemble/fight-group-detail/fight-group-detail?assemble_bill_id=' + e;
this.gotoPage(url); this.gotoPage(url);
},
// 删除订单
onDelOrder() {
uni.showToast({
title: '该功能正在开发中,敬请期待',
duration: 2000,
icon: 'none'
});
} }
} }
}; };
@ -604,4 +642,54 @@
@import url("css/cg-order.css"); @import url("css/cg-order.css");
.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;
}
.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> </style>

View File

@ -0,0 +1,769 @@
<template>
<view :data-theme="theme()" :class="'order-datail pb100' + theme()" v-if="!loadding" style="padding-bottom: 200rpx;">
<navbar bg="#F2F2F2" :title="title"></navbar>
<!--详情状态-->
<view class="d-s-c" style="margin-top: 10rpx;">
<!-- 待付款 -->
<!-- <view class="state-cont icon-box" style="width: 100%;" v-if="detail.pay_end_time">
<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 class="status-text" style="width: 100%;" v-if="detail.pay_end_time">
使用过程中有任何问题,请联系商家
</view> -->
<!-- 交易完成 -->
<!-- <view class="status-text" style="width: 100%;" v-if="detail.pay_end_time">
感谢预定场馆,期待下次再见!
</view> -->
<!-- 订单取消 -->
<!-- <view class="status-text" style="width: 100%;" v-if="detail.pay_end_time">
您的订单已取消。期待下次有机会再为您服务!
</view> -->
<!-- 退款 -->
<view class="status-text" style="width: 100%;" v-if="detail.pay_end_time">
<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>
</view>
<view class="">您的订单已取消。期待下次有机会再为您服务!</view>
</view>
<view class="dot-bg"></view>
</view>
<view class="shop">
<view class="one-product" v-for="(item, index) in detail.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="flex-1">
<view class="d-b-c">
<view class="gray3 f30 d-f a-i-c">
<view class="cg-name">这个是场馆的名字</view>
<image style="width: 48rpx;height: 48rpx;" src="@/static/icon/right.png" mode=""></image>
</view>
<view class="cg-price">
¥
<text class="f40">{{ item.product_price }}</text>
</view>
</view>
<view class="d-b-c" style="margin-top:18rpx;">
<view class="cg-hour">100/小时</view>
<view class="cg-num">x{{ item.total_num }}</view>
</view>
</view>
</view>
<!-- 预约信息 -->
<view class="cg-reserve">
<view class="cg-title">预约信息</view>
<!-- todo 这里的状态如果是交易完成订单取消退款成功则将下面的预约改为使用 -->
<view class="cg-desc1">预约时间2025-03-18 09:00-12:00</view>
<view class="cg-desc2">预约时长3小时</view>
</view>
</view>
</view>
<!-- 适用门店 -->
<view class="cg-store">
<view class="cg-store-title">适用门店</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="flex-1 d-f pr">
<view class="">
<view class="gray3 f30 d-f a-i-c">
<view class="cg-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="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">
嘉兴市秀洲区秀园路秀湖公园西南角
</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>
</view>
</view>
</view>
</view>
<!-- 订单信息 -->
<view class="cg-order">
<view class="cg-order-title">订单信息</view>
<view class="cg-order-info d-b-c">
<view class="">订单编号</view>
<view class="">
<text>{{ detail.order_no }}</text>
<text style="margin: 0 12rpx;color: #BFC2C2;">|</text>
<text class="cg-copy">复制</text>
</view>
</view>
<view class="cg-order-info d-b-c mt14">
<view class="">交易方式</view>
<view class="">
<text>{{ detail.pay_type.text }}</text>
</view>
</view>
<view class="cg-order-info d-b-c mt14">
<view class="">创建时间</view>
<view class="">
<text>{{ detail.create_time }}</text>
</view>
</view>
<view class="cg-order-info d-b-c mt14">
<view class="">付款时间</view>
<view class="">
<!-- todo 需要字段 -->
<text>1111</text>
</view>
</view>
</view>
<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">
<view class="d-b-c ww100">
<view class="cancle-btn">取消订单</view>
<view class="pay-btn">立即支付{{ detail.order_price }}</view>
</view>
</templte>
<!-- 已预约 -->
<!-- <templte class="ww100" v-if="detail.pay_status.value == 10">
<view class="d-b-c ww100">
<view class="cancle-reserve-btn">取消预约</view>
<view class="contact-btn">联系商家</view>
</view>
</templte> -->
<!-- 订单取消退款成功 -->
<!-- <templte class="ww100" v-if="detail.pay_status.value == 10">
<view class="ww100 again-btn">再次预定</view>
</templte> -->
</view>
</template>
<!-- 退款账单 -->
<Popup :show="billPopup" :width='750' :padding="0" type="bottom" backgroundColor="#FBFBFB" radius="32rpx 32rpx 0 0">
<view class="ww100 box-s-b pop-improt typeof pr time-popup">
<image style="width: 64rpx;height: 64rpx;position: absolute; top: 26rpx;right: 30rpx;" src="@/static/icon/close2.png" mode="" @tap="handleShowTime"></image>
<view class="d-c-c pt42">
<text class="f34 fb">费用明细</text>
</view>
<view class="bg-white bill-info">
<view class="">
<view class="title1 d-b-c">
<view>场地费</view>
<view>
<price-format color="#303133" :subscript-size="30" :first-size="30" :second-size="30" price="100"></price-format>
</view>
</view>
<view class="title2 d-b-c">
<view>场地费100/小时</view>
<view>x3</view>
</view>
</view>
<view style="margin-top: 52rpx;">
<view class="title1 d-b-c">
<view>灯光费</view>
<view>
<price-format color="#303133" :subscript-size="30" :first-size="30" :second-size="30" price="100"></price-format>
</view>
</view>
<view class="title2 d-b-c">
<view>灯光费50/小时</view>
<view>x3</view>
</view>
</view>
<view class="line"></view>
<view class="title3 d-b-c">
<view>实付退款金额</view>
<view>
<price-format color="#303133" :subscript-size="30" :first-size="30" :second-size="30" price="100"></price-format>
</view>
</view>
</view>
</view>
</Popup>
</view>
</template>
<script>
import navbar from '@/components/navbar.vue';
import Popup from '@/components/uni-popup.vue';
export default {
components: {
Popup,
navbar
},
data() {
return {
title: '订单详情',
/*是否加载完成*/
loadding: true,
indicatorDots: true,
autoplay: true,
interval: 2000,
duration: 500,
/*是否显示支付类别弹窗*/
isPayPopup: false,
/*订单id*/
order_id: 0,
/*订单详情*/
detail: {
order_status: [],
address: {
region: []
},
product: [],
pay_type: [],
delivery_type: [],
pay_status: []
},
extractStore: {},
billPopup: false
};
},
onLoad(e) {
this.order_id = e.order_id;
},
onShow() {
/*获取订单详情*/
this.getData();
},
methods: {
/*获取数据*/
getData() {
let self = this;
let order_id = self.order_id;
uni.showLoading({
title: '加载中'
});
self._get(
'user.order/detail',
{
order_id: order_id
},
function(res) {
self.detail = res.data.order;
self.extractStore = res.data.order.extractStore;
self.title = self.detail.state_text;
if (self.detail.state_text == '待付款') {
self.title = '等待付款';
}
self.loadding = false;
uni.hideLoading();
}
);
},
/*取消订单*/
cancelOrder(e) {
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();
}
);
}
}
});
},
/*确认收货*/
orderReceipt(order_id) {
let self = this;
uni.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.getData();
}
);
}
}
});
},
/*查看物流*/
gotoExpress(order_id) {
this.gotoPage('/pages/order/express/express?order_id=' + order_id);
},
/*申请售后*/
onApplyRefund(e) {
this.gotoPage('/pages/order/refund/apply/apply?order_product_id=' + e);
},
onSaveTable(table_id, order_product_id) {
this.gotoPage('/pages/plus/table/table?table_id=' + table_id + '&order_product_id=' + order_product_id);
},
/*支付方式选择*/
onPayOrder(orderId) {
let self = this;
self.gotoPage('/pages/order/cashier?order_id=' + orderId);
}
}
};
</script>
<style scoped lang="scss">
page {
background: #F6F7F8 !important;
}
.order-express {
background: #ffffff;
margin: 0 20rpx;
border-radius: 12rpx;
margin-top: 20rpx;
}
.order-express .icon-box .iconfont {
font-size: 50rpx;
}
.order-datail {
padding-bottom: 90rpx;
background-color: #f2f2f2;
}
.state-cont .countdown-datetime {
margin-top: 16rpx;
}
.state-cont .countdown-datetime text {
padding: 4rpx 8rpx;
border-radius: 4rpx;
}
.group {
margin: 0 20rpx;
margin-top: 20rpx;
border-radius: 12rpx;
}
.foot-btns {
height: 146rpx;
line-height: 146rpx;
padding: 8rpx 60rpx;
}
.supplement-box {
margin-top: 20rpx;
@include background_color('bg-tips');
@include border_color('border_color');
border: 1rpx solid;
border-radius: 12rpx;
line-height: 1.5;
}
.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;
}
.cg-name {
font-size: 32rpx;
color: #303133;
line-height: 44rpx;
width: 256rpx;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.cg-name2 {
font-size: 32rpx;
color: #303133;
line-height: 44rpx;
}
.cg-price {
font-size: 26rpx;
color: #909399;
line-height: 36rpx;
}
.cg-hour {
font-size: 26rpx;
color: #909399;
line-height: 36rpx;
}
.cg-num {
font-size: 26rpx;
color: #909399;
line-height: 36rpx;
}
.cg-reserve {
margin-top: 68rpx;
}
.cg-title {
font-size: 30rpx;
color: #303133;
line-height: 42rpx;
}
.cg-desc1,
.cg-desc2 {
font-weight: 500;
font-size: 26rpx;
color: #606266;
line-height: 48rpx;
margin-top: 20rpx;
}
.cg-store {
margin-top: 20rpx;
background-color: #fff;
border-radius: 16rpx;
margin: 0 30rpx 30rpx;
padding: 30rpx 30rpx;
}
.cg-store-title {
font-size: 32rpx;
color: #303133;
line-height: 44rpx;
margin-bottom: 26rpx;
}
.cg-store-jl {
font-size: 24rpx;
color: #909399;
line-height: 34rpx;
margin-top: 16rpx;
}
.cg-address-block {
margin-top: 20rpx;
}
.cg-address {
font-weight: 400;
font-size: 24rpx;
color: #606266;
line-height: 34rpx;
margin-left: 8rpx;
width: 230rpx;
}
.cg-icon-box {
top: 50%;
right: 0;
transform: translateY(-50%);
}
.cg-order {
margin-top: 20rpx;
background-color: #fff;
border-radius: 16rpx;
margin: 0 30rpx ;
padding: 30rpx 30rpx;
}
.cg-order-title {
font-size: 32rpx;
color: #303133;
line-height: 44rpx;
margin-bottom: 26rpx;
}
.cg-order-info {
font-size: 28rpx;
color: #606266;
line-height: 40rpx;
}
.cg-copy {
font-weight: 500;
font-size: 28rpx;
color: #365A9A;
line-height: 48rpx;
}
.mt14 {
margin-top: 14rpx;
}
.status-text {
width: 100%;
font-size: 26rpx;
color: #909399;
line-height: 36rpx;
text-align: center;
margin-top: 14rpx;
}
.refund-txt {
font-size: 36rpx;
color: #303133;
line-height: 50rpx;
margin-top: 18rpx;
}
.cancel-btn {
font-size: 28rpx;
color: #606266;
line-height: 40rpx;
}
.pay-btn {
width: 360rpx;
height: 90rpx;
line-height: 90rpx;
text-align: center;
background: #365A9A;
border-radius: 8rpx;
color: #fff;
font-size: 32rpx;
}
.cancle-reserve-btn {
width: 330rpx;
height: 90rpx;
text-align: center;
line-height: 90rpx;
background: #F6F7F8;
border-radius: 8rpx;
margin-right: 30rpx;
font-size: 32rpx;
color: #303133;
}
.contact-btn {
width: 330rpx;
height: 90rpx;
text-align: center;
line-height: 90rpx;
background: #365A9A;
border-radius: 8rpx;
font-size: 32rpx;
color: #FFFFFF;
}
.again-btn {
width: 630rpx;
height: 90rpx;
text-align: center;
line-height: 90rpx;
background: #365A9A;
border-radius: 8rpx;
font-size: 32rpx;
color: #FFFFFF;
}
.time-popup {
position: relative;
.title {
font-size: 36rpx;
color: #121212;
line-height: 50rpx;
}
.pt42 {
padding-top: 42rpx;
}
.notice {
margin-top: 30rpx;
width: 100%;
height: 56rpx;
background: #FFFBE5;
padding: 10rpx 30rpx;
font-weight: 500;
font-size: 26rpx;
color: #E2950F;
line-height: 48rpx;
text-align: left;
}
.time-item {
margin-right: 32rpx;
font-weight: 400;
font-size: 32rpx;
color: #303133;
line-height: 44rpx;
height: 62rpx;
}
.time-item-line {
width: 60rpx;
height: 10px;
background-color: #365A9A;
border-radius: 6rpx;
}
.active {
color: #365A9A;
font-size: 32rpx;
line-height: 44rpx;
}
.active:after {
content: '';
display: block;
width: 60rpx;
height: 10rpx;
background-color: #365A9A;
border-radius: 6rpx;
margin: 8rpx auto 0 auto;
}
/* 日期网格:一行四个,间距 20rpx */
.date-grid {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-gap: 20rpx 20rpx; /* 行间距和列间距均为 20rpx */
padding: 0 30rpx; /* 保持与上方时间切换区域一致的左右内边距 */
}
.date-item {
background-color: #F7F7F7;
border-radius: 10rpx;
height: 72rpx; /* 可按需调整高度 */
display: flex;
align-items: center;
justify-content: center;
font-size: 30rpx;
color: #303133;
box-sizing: border-box;
}
/* 可选:选中样式 */
.date-item.active {
border-color: #365A9A;
color: #365A9A;
box-shadow: 0 4rpx 10rpx rgba(54,90,154,0.08);
}
.price {
margin-top: 100rpx;
.line {
height: 2rpx;
background: #E5E5E5;
width: 100%;
}
.price-block {
margin: 42rpx 22rpx;
}
.price-detail {
color: #365A9A;
font-size: 24rpx;
line-height: 34rpx;
}
.price-btn {
width: 368rpx;
height: 90rpx;
line-height: 90rpx;
text-align: center;
background: #365A9A;
border-radius: 8rpx;
font-size: 32rpx;
color: #FFF;
}
}
}
.bill-info {
border-radius: 16rpx;
margin: 32rpx 30rpx 22rpx;
padding: 48rpx 30rpx 30rpx;
.title1 {
font-size: 30rpx;
color: #303133;
line-height: 42rpx;
}
.title2 {
margin-top: 12rpx;
font-weight: 400;
font-size: 24rpx;
color: #909399;
line-height: 34rpx;
}
.line {
border: 2rpx solid #F6F7F9;
margin: 34rpx 0 30rpx;
}
.title3 {
font-size: 30rpx;
color: #303133;
line-height: 42rpx;
}
}
</style>

View File

@ -0,0 +1,270 @@
page {
background-color: #F6F7F9 !important;
}
.cg-order .top-tabbar {
height: 96rpx;
display: flex;
flex-wrap: nowrap;
justify-content: flex-start;
align-items: center;
overflow-x: auto;
background-color: #F6F7F9 !important;
margin-bottom: 28rpx;
}
.cg-order .top-tabbar .tab-item.active::after {
content: '';
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADwAAAAQCAMAAAB9TOwNAAAAn1BMVEUAAAAAQIAgQIAqVZUwUI8zWZkwWJczV5kyVZU0VZY0XJ0zWZk1WZo1WZo0WJc1WZg0WpszVpk0WJg0V5o1WZg2WZkzWZk0WJk0V5k1WZk2WZk0Wps2Wps2WJo0Wpo1WZk1Wpo1WZk1Wpo2WZo2WZk2WZo1Wpo1WZk1WZo2WZo2Wpo1Wpo1WZk2WZk2WZo1WZk1Wpo2WZk2Wpo2WZk2WppMVWQ4AAAANHRSTlMABAgMEBQgIyQnJygrP0BIT1BUWFxfZGtsc3t/f5OXm5+jp6uvr7O3v8PHz9Pf3+vv8/f7R0m5LAAAAMZJREFUGBmtwQlygjAABdBvUNzFWldADS6YKqiQf/+zSZlqhzIWM+17+BtrFas+DPVVvLIArJkJmjDQDJgJgLrmJy17eFFPaubqsHmnJhYqWRPFOxsi5UN6mHXwi87skPIhFYDLgsvOHbZr+KHWHrq7Cws8ZDyWxcdQLv3cUobHmGUecqOExq5v+NL6oCFl49v4RAOndxQ5e82X6L2DssY0TFghCacNPCEGi03EJ6LNYiBQQXSduS+3SkXnTKTUVvpzpyvwv24yMFfPCBJo4AAAAABJRU5ErkJggg==');
background-color: transparent !important;
background-repeat: no-repeat;
background-size: cover;
width: 60rpx;
height: 16rpx;
}
.tab-item{
flex-shrink: 0;
white-space: nowrap;
flex: auto;
}
.order-list {
margin: 0 30rpx;
}
.order-list .order-head .state-text {
padding: 10rpx 12rpx;
margin-right: 21rpx;
border-radius: 4rpx;
background: #FFE7E4;
font-size: 22rpx;
color: #F6220C;
}
.shop-name {
font-size: 26rpx;
font-family: PingFang SC;
font-weight: 500;
color: #333333;
}
.order-list .item {
margin-bottom: 30rpx;
padding: 30rpx;
background: #ffffff;
border-radius: 10rpx;
}
.order-list .product-list,
.order-list .one-product {
padding: 30rpx 0 27rpx 0;
height: 150rpx;
}
.one-product .pro-info {
padding: 0 21rpx 0 28rpx;
display: -webkit-box;
width: 361rpx;
overflow: hidden;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
font-size: 26rpx;
color: #333333;
}
.order-list .cover,
.order-list .cover image {
width: 150rpx;
height: 150rpx;
border-radius: 8rpx;
}
.order-list .total-count {
padding-left: 20rpx;
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-end;
}
.total-count .count {
padding-top: 16rpx;
color: #999999;
font-size: 22rpx;
}
.product-list .total-count {
position: absolute;
top: 0;
right: 0;
bottom: 0;
background: rgba(255, 255, 255, 0.9);
}
.product-list .total-count .left-shadow {
position: absolute;
top: 0;
bottom: 0;
left: -24rpx;
width: 24rpx;
overflow: hidden;
}
.product-list .total-count .left-shadow::after {
position: absolute;
top: 0;
bottom: 0;
width: 24rpx;
right: -12rpx;
display: block;
content: '';
background-image: radial-gradient(rgba(0, 0, 0, 0.2) 10%, rgba(0, 0, 0, 0.1) 40%, rgba(0, 0, 0, 0) 80%);
}
.order-list .order-bts {
display: flex;
justify-content: flex-end;
align-items: center;
}
.order-list .order-bts.presale {
display: block;
padding-top: 12rpx;
}
.order-list .order-bts button {
width: 176rpx;
height: 60rpx;
line-height: 60rpx;
margin-left: 20rpx;
font-size: 32rpx;
border: 1px solid #F6220C;
border-radius: 8px;
background: #ffffff;
white-space: nowrap;
font-family: PingFang SC;
}
.order-list .order-bts button::after {
display: none;
}
.order-list .order-bts button.btn-border-red {
border: 1px solid $dominant-color;
font-size: 24rpx;
color: $dominant-color;
}
.order-list .order-bts button.btn-red {
background: linear-gradient(90deg, #FF6B6B 4%, #F6220C 100%);
border-radius: 30rpx;
font-size: 32rpx;
font-family: PingFang SC;
color: #ffffff;
border: none;
}
.buy-checkout {
width: 100%;
}
.buy-checkout .item {
min-height: 50rpx;
line-height: 50rpx;
padding: 20rpx;
display: flex;
justify-content: space-between;
font-size: 28rpx;
}
.buy-checkout .iconfont.icon-weixin {
color: #04be01;
font-size: 50rpx;
}
.buy-checkout .iconfont.icon-yue {
color: #f0de7c;
font-size: 50rpx;
}
.buy-checkout .item.active .iconfont.icon-xuanze {
color: #04be01;
}
.item-dianpu {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 24rpx;
line-height: 30rpx;
}
.item-dianpu .icon-jiantou {
font-size: 24rpx;
color: #333333;
}
.item-d-l {
display: flex;
}
.icon-dianpu1 {
margin-right: 20rpx;
color: #333333;
font-size: 32rpx;
}
.cg-name {
font-weight: bold;
font-size: 30rpx;
color: #303133;
line-height: 42rpx;
}
.cg-state {
font-weight: 400;
font-size: 28rpx;
color: #FF5951;
line-height: 40rpx;
}
.cg-info1 {
font-weight: 500;
font-size: 30rpx;
color: #303133;
line-height: 42rpx;
}
.cg-info2 {
margin-top: 34rpx;
font-weight: 400;
font-size: 26rpx;
color: #606266;
line-height: 36rpx;
}
.cg-info3 {
margin-top: 18rpx;
font-weight: 400;
font-size: 26rpx;
color: #606266;
line-height: 36rpx;
}
.order-bts .cancel-btn {
border: 2rpx solid #C2C9D5 !important;
color: #303133 !important;
}
.order-bts .pay-btn {
border: 2rpx solid #365A9A !important;
background-color: transparent !important;
color: #365A9A !important;
}
.order-bts .del-btn {
border: 2rpx solid #C2C9D5 !important;
color: #365A9A !important;
}

View File

@ -125,7 +125,6 @@ page {
border-radius: 30px; border-radius: 30px;
background: #ffffff; background: #ffffff;
white-space: nowrap; white-space: nowrap;
color: #F6220C;
font-family: PingFang SC; font-family: PingFang SC;
} }

View File

@ -39,7 +39,7 @@
</view> </view>
</view> </view>
</view> </view>
<view class="p30"><button form-type="submit" class="theme-btn f32 mt60 addBtn">保存</button></view> <view class="p30"><button form-type="submit" class="f32 mt60 addBtn">保存</button></view>
</form> </form>
<mpvue-city-picker v-if="is_load" ref="mpvueCityPicker" :province="province" :city="city" :area="area" :pickerValueDefault="cityPickerValueDefault" @onConfirm="onConfirm"></mpvue-city-picker> <mpvue-city-picker v-if="is_load" ref="mpvueCityPicker" :province="province" :city="city" :area="area" :pickerValueDefault="cityPickerValueDefault" @onConfirm="onConfirm"></mpvue-city-picker>
</view> </view>
@ -202,6 +202,8 @@
line-height: 90rpx; line-height: 90rpx;
border-radius: 8rpx; border-radius: 8rpx;
margin: 0 60rpx; margin: 0 60rpx;
background-color: #365A9A !important;
color: #fff;
} }
.border-b { .border-b {

View File

@ -39,7 +39,7 @@
</view> --> </view> -->
</view> </view>
</view> </view>
<view class="add_add-btn theme-btn" @click="addAddress()">新增收货地址</view> <view class="add_add-btn" @click="addAddress()">新增收货地址</view>
</view> </view>
<view v-else> <view v-else>
<view class="none_add"> <view class="none_add">
@ -197,7 +197,7 @@
font-size: 32rpx; font-size: 32rpx;
font-family: PingFang SC; font-family: PingFang SC;
font-weight: 500; font-weight: 500;
background: #365A9A; background: #365A9A !important;
color: #FFFFFF; color: #FFFFFF;
position: fixed; position: fixed;
bottom: 40rpx; bottom: 40rpx;
@ -248,6 +248,8 @@
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
background-color: #365A9A !important;
color: #fff;
} }
.pbenv{ .pbenv{
padding-bottom: calc(env(safe-area-inset-bottom) + 120rpx); padding-bottom: calc(env(safe-area-inset-bottom) + 120rpx);

View File

@ -41,7 +41,7 @@
</view> </view>
<view class="d-f a-i-c btn"> <view class="d-f a-i-c btn">
<button class="f32 mt60 delBtn" @click="delAddress(address.address_id)">删除地址</button> <button class="f32 mt60 delBtn" @click="delAddress(address.address_id)">删除地址</button>
<button form-type="submit" class="theme-btn f32 mt60 addBtn">保存</button> <button form-type="submit" class="f32 mt60 addBtn">保存</button>
</view> </view>
</form> </form>
<mpvue-city-picker v-if="is_load" ref="mpvueCityPicker" :province="province" :city="city" :area="area" :pickerValueDefault="cityPickerValueDefault" @onConfirm="onConfirm"></mpvue-city-picker> <mpvue-city-picker v-if="is_load" ref="mpvueCityPicker" :province="province" :city="city" :area="area" :pickerValueDefault="cityPickerValueDefault" @onConfirm="onConfirm"></mpvue-city-picker>
@ -270,6 +270,8 @@
height: 90rpx; height: 90rpx;
line-height: 90rpx; line-height: 90rpx;
border-radius: 8rpx; border-radius: 8rpx;
background-color: #365A9A !important;
color: #fff;
} }
.border-b { .border-b {

View File

@ -54,11 +54,11 @@
<view class="my-cg-order my-assets"> <view class="my-cg-order my-assets">
<view class="my-assets-all"> <view class="my-assets-all">
<view class="f30 fb">我的场馆订单</view> <view class="f30 fb">我的场馆订单</view>
<view class="gray9 f26" @click="jumpPage('/pages/order/myorder?dataType=all')">全部订单<text <view class="gray9 f26" @click="jumpPage('/pages/order/cg-my-order?dataType=all')">全部订单<text
class="icon iconfont icon-jiantou"></text></view> class="icon iconfont icon-jiantou"></text></view>
</view> </view>
<view class="d-b-c w100"> <view class="d-b-c w100">
<view class="item" @click="jumpPage('/pages/order/myorder?dataType=payment')"> <view class="item" @click="jumpPage('/pages/order/cg-my-order?dataType=payment')">
<view class="icon-box pr"> <view class="icon-box pr">
<image src="/static/icon/dfk.png" mode=""></image> <image src="/static/icon/dfk.png" mode=""></image>
<text class="dot d-c-c" <text class="dot d-c-c"
@ -66,33 +66,25 @@
</view> </view>
<text>待付款</text> <text>待付款</text>
</view> </view>
<view class="item" @click="jumpPage('/pages/order/myorder?dataType=delivery')"> <view class="item" @click="jumpPage('/pages/order/cg-my-order?dataType=reserve')">
<view class="icon-box pr"> <view class="icon-box pr">
<image src="/static/icon/dfh.png" mode=""></image> <image src="/static/icon/yyy.png" mode=""></image>
<text class="dot d-c-c" <text class="dot d-c-c"
v-if="orderCount.delivery != null && orderCount.delivery > 0">{{ orderCount.delivery }}</text> v-if="orderCount.reserve != null && orderCount.reserve > 0">{{ orderCount.reserve }}</text>
</view> </view>
<text class="">待发货</text> <text class="">已预约</text>
</view> </view>
<view class="item" @click="jumpPage('/pages/order/myorder?dataType=received')"> <view class="item" @click="jumpPage('/pages/order/cg-my-order?dataType=completed')">
<view class="icon-box pr"> <view class="icon-box pr">
<image src="/static/icon/dsh.png" mode=""></image> <image src="/static/icon/ywc.png" mode=""></image>
<text class="dot d-c-c" <text class="dot d-c-c"
v-if="orderCount.received != null && orderCount.received > 0">{{ orderCount.received }}</text> v-if="orderCount.completed != null && orderCount.completed > 0">{{ orderCount.completed }}</text>
</view> </view>
<text>待收货</text> <text>已完成</text>
</view> </view>
<!-- <view class="item" @click="jumpPage('/pages/order/myorder?dataType=comment')">
<view class="icon-box pr">
<image src="/static/icon/icon-quanbudingdan.png" mode=""></image>
<text class="dot d-c-c"
v-if="orderCount.comment != null && orderCount.comment > 0">{{ orderCount.comment }}</text>
</view>
<text>待评价</text>
</view> -->
<view class="item" @click="jumpPage('/pages/order/refund/index/index')"> <view class="item" @click="jumpPage('/pages/order/refund/index/index')">
<view class="icon-box pr"> <view class="icon-box pr">
<image src="/static/icon/icon-tuikuan.png" mode=""></image> <image src="/static/icon/tk.png" mode=""></image>
<text class="dot d-c-c" <text class="dot d-c-c"
v-if="orderCount.refund != null && orderCount.refund > 0">{{ orderCount.refund }}</text> v-if="orderCount.refund != null && orderCount.refund > 0">{{ orderCount.refund }}</text>
</view> </view>
@ -154,7 +146,7 @@
</view> --> </view> -->
<view class="item" @click="jumpPage('/pages/order/refund/index/index')"> <view class="item" @click="jumpPage('/pages/order/refund/index/index')">
<view class="icon-box pr"> <view class="icon-box pr">
<image src="/static/icon/icon-tuikuan.png" mode=""></image> <image src="/static/icon/tk.png" mode=""></image>
<text class="dot d-c-c" <text class="dot d-c-c"
v-if="orderCount.refund != null && orderCount.refund > 0">{{ orderCount.refund }}</text> v-if="orderCount.refund != null && orderCount.refund > 0">{{ orderCount.refund }}</text>
</view> </view>

BIN
static/coupon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
static/icon/active.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 490 B

BIN
static/icon/time2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB