first commit

This commit is contained in:
wangxiaowei
2025-10-22 22:56:36 +08:00
commit 90c54df48b
302 changed files with 54312 additions and 0 deletions

View File

@ -0,0 +1,320 @@
<template>
<view :data-theme="theme()" :class="theme() || ''">
<!--列表-->
<scroll-view scroll-y="true" class="scroll-Y" :style="'height:' + scrollviewHigh + 'px;'" lower-threshold="50" @scrolltolower="scrolltolowerFunc">
<view :class="topRefresh ? 'top-refresh open' : 'top-refresh'"><view class="circle" v-for="(circle, n) in 3" :key="n"></view></view>
<view class="order-list">
<view class="item" v-for="(item, index) in listData" :key="index">
<view class="order-head d-b-c">
<view>
<text class="state-text theme-bg">{{ item.order_source_text }}</text>
<text class="f28 flex-1 fb">订单号:{{ item.order_no }}</text>
</view>
</view>
<!--一个商品显示-->
<view class="one-product d-a-c" @click="gotoDetail(item.order_no)">
<view>
<view class="giftlist_item_num">{{item.point*1}}<text class='f20'>个</text></view>
<view class="giftlist_item_type">{{points_name()}}</view>
</view>
<view>
<view class="giftlist_item_num">{{item.coupon_num}}<text class="f20">张</text></view>
<view class="giftlist_item_type">优惠券</view>
</view>
<view>
<view class="giftlist_item_num">{{item.product_num}}<text class="f20">件</text></view>
<view class="giftlist_item_type">商品</view>
</view>
<view class="total-count">
<view class="left-shadow"></view>
<view class="price f22">
¥
<text class="f40">{{item.pay_price}}</text>
</view>
</view>
</view>
</view>
<view class="d-c-c p30" v-if="listData.length == 0 && !loading">
<text class="iconfont icon-wushuju"></text>
<text class="cont">亲,暂无相关记录哦</text>
</view>
<uni-load-more v-else :loadingType="loadingType"></uni-load-more>
</view>
</scroll-view>
</view>
</template>
<script>
import uniLoadMore from '@/components/uni-load-more.vue';
import { pay } from '@/common/pay.js';
export default {
components: {
uniLoadMore
},
data() {
return {
/*手机高度*/
phoneHeight: 0,
/*可滚动视图区域高度*/
scrollviewHigh: 0,
/*顶部刷新*/
topRefresh: false,
/*数据*/
listData: [],
/*是否显示支付类别弹窗*/
isPayPopup: false,
/*订单id*/
order_id: 0,
/*最后一页码数*/
last_page: 0,
/*当前页面*/
page: 1,
/*每页条数*/
list_rows: 10,
/*有没有等多*/
no_more: false,
/*是否正在加载*/
loading: true,
/*是否显示核销二维码*/
isCodeImg: false,
codeImg: ''
};
},
computed: {
/*加载中状态*/
loadingType() {
if (this.loading) {
return 1;
} else {
if (this.listData.length != 0 && this.no_more) {
return 2;
} else {
return 0;
}
}
}
},
onLoad(e) {
},
mounted() {
this.init();
/*获取订单列表*/
this.getData();
},
methods: {
/*初始化*/
init() {
let self = this;
uni.getSystemInfo({
success(res) {
self.phoneHeight = res.windowHeight;
self.scrollviewHigh = self.phoneHeight;
}
});
},
/*可滚动视图区域到底触发*/
scrolltolowerFunc() {
let self = this;
if (self.no_more) {
return;
}
self.page++;
if (self.page <= self.last_page) {
self.getData();
} else {
self.no_more = true;
}
},
/*获取数据*/
getData() {
let self = this;
self.loading = true;
self._get(
'plus.package.order/orderlist',
{
page: self.page,
list_rows: self.list_rows
},
function(res) {
self.loading = false;
self.listData = self.listData.concat(res.data.list.data);
self.last_page = res.data.list.last_page;
if (res.data.list.last_page <= 1) {
self.no_more = true;
} else {
self.no_more = false;
}
}
);
},
/*跳转页面*/
gotoDetail(e) {
this.gotoPage('/pages/plus/giftpackage/order_detail?order_no=' + e);
},
}
};
</script>
<style lang="scss">
.order-list{
padding: 30rpx;
}
.order-list .order-head .state-text {
padding: 2rpx 4rpx;
margin-right: 20rpx;
border-radius: 4rpx;
// background: $dominant-color;
color: #ffffff;
}
.order-list .item {
margin-top: 30rpx;
padding: 30rpx;
background: #ffffff;
border-radius: 15rpx;
}
.order-list .product-list,
.order-list .one-product {
height: 160rpx;
}
.one-product .pro-info {
padding: 0 30rpx;
display: -webkit-box;
overflow: hidden;
-webkit-line-clamp: 2;
-webkit-box-orient: vertical;
font-size: 28rpx;
color: #666666;
}
.order-list .cover,
.order-list .cover image {
width: 160rpx;
height: 160rpx;
}
.order-list .total-count {
padding-left: 20rpx;
display: flex;
flex-direction: column;
justify-content: center;
align-items: flex-end;
}
.total-count .count {
padding-top: 10rpx;
color: #666;
font-size: 28rpx;
}
.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 button {
margin: 0;
padding: 0 30rpx;
height: 60rpx;
line-height: 60rpx;
margin-left: 20rpx;
border-radius: 30rpx;
font-size: 24rpx;
border: 1px solid #cccccc;
white-space: nowrap;
background: #ffffff;
}
.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: $dominant-color;
border: 1px solid $dominant-color;
font-size: 24rpx;
color: #ffffff;
}
.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;
}
.giftlist_item_num{
color: $dominant-color;
font-size: 28rpx;
text-align: center;
}
.giftlist_item_type{
text-align: center;
color: #000000;
font-size: 30rpx;
}
.f20{
font-size: 20rpx;
}
</style>

View File

@ -0,0 +1,494 @@
<template>
<view class="gift-package" v-if="!loadding">
<view class="rule">
<button class="rule_btn" @click="ReLaunch()">返回首页</button>
<!-- <button class="rule_btn">活动规则</button> -->
</view>
<image class="gift-bg" :src="detail.file_path" mode="widthFix"></image>
<view class="gift-package-main">
<view class="p-0-30 pack-item" v-if="detail.is_point">
<view class="integral">
<view class="title-b">
{{points_name()}}礼包
</view>
<view class="integral_btom d-c-c">
<image style="width: 62rpx;height: 72rpx;" src="/static/gift.png" mode="aspectFill"></image>
<view class="info flex-1">
<view class="f28" style="color: #FF5649;">
{{parseFloat(detail.point)}}{{points_name()}}
</view>
<view class="f22 gray9">无门槛 全品类</view>
</view>
<view class="integral_btn">立即领取</view>
</view>
</view>
</view>
<view class="t-c" v-if="detail.is_point">
<text class="add">+</text>
</view>
<view class="p-0-30 pack-item" v-if="detail.is_coupon">
<view class="cuopon-group">
<view class="title-b">
优惠券礼包
</view>
<view class="body">
<view class="item" v-for="(item,index) in detail.coupon_list" :key="index">
<view class="cuopon_item">
<view>
<image class="cuopon_img" src="/static/youhuiquan.png" mode="aspectFill"></image>
</view>
<view class="d-s-c">
<view class="d-s-c item_cuopon">
<view class="price">
<view class="">
<template v-if="item.coupon_type.value==10">
<text class="f22"></text><text class="f34">{{parseFloat(item.reduce_price)}}</text>
</template>
<template v-else>
<text class="f34">{{item.discount}}</text>
</template>
</view>
<view class="f22">优惠券</view>
</view>
<view class="des">
<view class="des_t">{{item.name}}</view>
<view class="des_b" v-if="item.expire_type==20">有效期至{{item.end_time.text}}
</view>
<view class="des_b" v-if="item.expire_type==10">领取后{{item.expire_day}}天内有效
</view>
</view>
</view>
<view class="cuopon_num">X{{item.coupon_num}}</view>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="t-c" v-if="detail.is_product&&detail.is_coupon">
<text class="add">+</text>
</view>
<view class="p-0-30 pack-item" v-if="detail.is_product">
<view class="cuopon-group">
<view class="title-b">
<view>商品礼包<text>({{detail.product_list.length}}{{detail.product_num}})</text></view>
</view>
<view class="body">
<view class="item mb30 bg-white" v-for="(item,index) in detail.product_list" :key="index"
@click="choosePro(item.product_id)">
<view class="d-s-s">
<view class="mr10">
<image class="product_img" :src="item.image[0].file_path" mode="aspectFill"></image>
</view>
<view class="pro">
<view class="pro_t text-ellipsis-2">{{item.product_name}}</view>
<view class="pro_b"><text class="f18"></text>{{item.product_price}}</view>
</view>
</view>
</view>
</view>
</view>
</view>
<view class="btns">
<button @click="toPay()">{{detail.money}}元购买</button>
</view>
</view>
</view>
</template>
<script>
import {
pay
} from '@/common/pay.js';
import utils from '@/common/utils.js';
export default {
data() {
return {
/*是否加载完成*/
loadding: false,
package_id: 0,
code: 0,
/*礼包详情*/
detail: {
name: '',
start_time: {
text: ''
},
end_time: {
text: ''
},
is_point: false,
point: 0,
money: '',
},
}
},
onLoad(e) {
/*商品id*/
let scene = utils.getSceneData(e);
this.package_id = e.package_id ? e.package_id : scene.pid;
this.code = e.code ? e.code : scene.cid;
if (typeof(this.code) == "undefined") {
this.code = '';
}
},
onShow() {
/*获取数据*/
this.getData();
},
methods: {
/*获取数据*/
getData() {
let self = this;
uni.showLoading({
title: '加载中'
});
self.loadding = true;
self._get('plus.package.package/index', {
package_id: self.package_id,
code: self.code
}, function(res) {
self.detail = res.data.data;
self.loadding = false;
});
},
/* 返回首页 */
ReLaunch() {
this.gotoPage('/pages/index/index', 'reLaunch');
},
toPay() {
this.gotoPage('/pages/order/giftpackage-order?package_id=' + this.package_id + '&code=' + this.code);
}
}
}
</script>
<style lang="scss">
page {
background: #FF5649;
}
.gift-package {
position: relative;
min-height: 100vh;
}
.gift-package .gift-bg {
position: absolute;
top: 0;
left: 0;
right: 0;
width: 100%;
z-index: 0;
}
.gift-package .gift-package-main {
width: 750rpx;
padding-top: 700rpx;
padding-bottom: 120rpx;
position: relative;
z-index: 1;
box-sizing: border-box;
// background: #FF5649;
}
.detatime {
/* padding:10px 30px; */
font-size: 18rpx;
color: #FF5649;
font-weight: 800;
}
/* .gift-package-main .datetime {
margin: 0 auto;
width: 600rpx;
height: 60rpx;
line-height: 60rpx;
text-align: center;
} */
.cuopon-group {
color: #ffffff;
text-align: center;
font-size: 30rpx;
background-color: #FF6F64;
border-radius: 20rpx;
padding: 43rpx 28rpx 47rpx 28rpx;
position: relative;
z-index: 98;
}
.integral::after {
content: '';
position: absolute;
left: 257rpx;
top: -20rpx;
width: 9rpx;
height: 37rpx;
background: #FFFFFF;
box-shadow: 0rpx 8rpx 3rpx 0rpx rgba(6, 0, 1, 0.03);
border-radius: 4rpx;
z-index: 99;
}
.cuopon-group::after {
content: '';
position: absolute;
left: 257rpx;
top: -20rpx;
width: 9rpx;
height: 37rpx;
background: #FFFFFF;
box-shadow: 0rpx 8rpx 3rpx 0rpx rgba(6, 0, 1, 0.03);
border-radius: 4rpx;
z-index: 99;
}
.integral::before {
content: '';
position: absolute;
right: 257rpx;
top: -20rpx;
width: 9rpx;
height: 37rpx;
background: #FFFFFF;
box-shadow: 0rpx 8rpx 3rpx 0rpx rgba(6, 0, 1, 0.03);
border-radius: 4rpx;
z-index: 99;
}
.cuopon-group::before {
content: '';
position: absolute;
right: 257rpx;
top: -20rpx;
width: 9rpx;
height: 37rpx;
background: #FFFFFF;
box-shadow: 0rpx 8rpx 3rpx 0rpx rgba(6, 0, 1, 0.03);
border-radius: 4rpx;
z-index: 99;
}
.cuopon-group .title {
font-size: 26rpx;
color: #FFFFFF;
text-align: center;
}
.cuopon-group .body {
margin-top: 30rpx;
}
.cuopon_item {
position: relative;
}
.item_cuopon {
z-index: 50;
}
.cuopon-group .body .item {
padding: 20rpx;
display: flex;
flex-direction: column;
border-radius: 20rpx;
position: relative;
}
.cuopon-group .body .item:last-child {
margin-bottom: 0;
}
.cuopon_img {
width: 493rpx;
height: 123rpx;
position: absolute;
top: 0;
left: 0;
}
.cuopon-group .body .item .price {
z-index: 50;
font-size: 14rpx;
margin-left: 26rpx;
}
.cuopon-group .body .item .des {
z-index: 50;
padding: 26rpx 0;
font-size: 24rpx;
text-align: left;
margin-left: 50rpx;
}
.item .des .des_t {
font-size: 26rpx;
color: #000000;
margin-bottom: 12rpx;
}
.item .des .des_c {
font-size: 18rpx;
color: #6b6b6b;
margin-bottom: 8rpx;
}
.item .des .des_b {
font-size: 18rpx;
color: #6b6b6b;
}
.t-c {
text-align: center;
}
.gift-package-main .integral {
background-color: #FF6F64;
padding: 43rpx 28rpx 47rpx 28rpx;
border-radius: 20rpx;
position: relative;
z-index: 98;
}
.gift-package-main .integral .title {
font-size: 26rpx;
color: #FFFFFF;
text-align: center;
}
.gift-package-main .integral_btom {
height: 193rpx;
background-color: #ffffff;
margin-top: 20rpx;
border-radius: 15rpx;
padding: 0 27rpx 0 29rpx;
box-sizing: border-box;
}
.integral_btn {
width: 126rpx;
height: 44rpx;
background: linear-gradient(0deg, #FF7220 0%, #FEA712 100%);
border-radius: 22rpx;
font-size: 22rpx;
color: #ffffff;
text-align: center;
line-height: 44rpx;
}
.gift-package-main .integral .info {
margin-left: 30rpx;
width: 300rpx;
color: #f0510e;
}
.gift-package-main .integral image {
width: 135rpx;
height: 135rpx;
}
.gift-package-main .integral .num {
font-size: 50rpx;
}
.gift-package-main .btns {
margin-top: 60rpx;
padding: 0 42rpx 0 45rpx;
}
.gift-package-main .btns button {
height: 92rpx;
line-height: 92rpx;
border-radius: 46rpx;
color: #ffffff;
font-size: 36rpx;
background: linear-gradient(0deg, #FF7220 0%, #FEA712 100%);
}
.rule {
overflow: hidden;
position: fixed;
right: 0;
top: 57rpx;
z-index: 100;
}
.rule_btn {
width: 118rpx;
height: 44rpx;
line-height: 44rpx;
text-align: center;
background: linear-gradient(0deg, #FF7220 0%, #FEA712 100%);
box-sizing: border-box;
border-radius: 22rpx 0 0 22rpx;
color: #ffffff;
font-size: 22rpx;
padding: 0;
}
.add {
font-size: 62rpx;
font-weight: 800;
text-align: center;
color: #FFFFFF;
position: relative;
z-index: 98;
text-shadow: 0px 8rpx 3rpx rgba(6, 0, 1, 0.03);
}
.cuopon_num {
position: absolute;
right: 0;
}
.product_img {
width: 92rpx;
height: 92rpx;
border-radius: 10rpx;
}
.pro {
margin-left: 12rpx;
text-align: left;
}
.pro_t {
font-size: 22rpx;
color: #333333;
line-height: 1.5;
margin-bottom: 10rpx;
}
.pro_c {
font-size: 20rpx;
color: #686868;
margin-bottom: 33rpx;
}
.pro_b {
font-size: 24rpx;
font-weight: 800;
color: #FF5649;
}
.f18 {
font-size: 18rpx;
}
.pro_choose {
width: 33rpx;
height: 33rpx;
position: absolute;
right: 10rpx;
top: 6rpx;
}
.title-b{
color: #ffffff;
text-align: center;
font-size: 36rpx;
font-weight: bold;
}
</style>

View File

@ -0,0 +1,429 @@
<template>
<view class="order-datail pb100" v-if="!loadding">
<!--购物列表-->
<view class="shops group bg-white">
<view class="group-hd border-b-e">
<view class="left"><text class="min-name">商品</text></view>
</view>
<view class="list">
<view class="gift-package-main">
<view class="p-0-30">
<view class="integral" v-if="detail.point != 0">
<view class="title">{{ points_name() }}礼包</view>
<view class="integral_btom d-s-c">
<image src="/static/gift.png" mode="widthFix"></image>
<view class="info">
<view class="num">{{ parseFloat(detail.point) }}{{ points_name() }}</view>
<view>无门槛 全品类</view>
</view>
</view>
</view>
</view>
<view class="p-0-30" v-if="detail.coupon_ids != ''">
<view class="cuopon-title">优惠券礼包</view>
<view class="cuopon-group borbox" v-if="detail.coupon_list != ''">
<view class="body">
<view class="item" v-for="(item, index) in detail.coupon_list" :key="index">
<view class="cuopon_item">
<view><image class="cuopon_img" src="../../../static/youhuiquan2.png" mode=""></image></view>
<view class="d-s-c">
<view class="d-s-c item_cuopon">
<view class="price">
<view class="">
<text class="f22"></text>
<text class="f34">{{ parseFloat(item.reduce_price) }}</text>
</view>
<view class="f22">优惠券</view>
</view>
<view class="des">
<view class="des_t">{{ item.name }}</view>
<view class="des_b" v-if="item.expire_type == 20">有效期至{{ item.end_time.text }}</view>
<view class="des_b" v-if="item.expire_type == 10">领取后{{ item.expire_day }}天内有效</view>
</view>
</view>
</view>
<view class="cuopon_num">
<text class="f12">x</text>
{{ item.coupon_num }}
</view>
</view>
</view>
</view>
</view>
</view>
<view class="p-0-30" v-if="detail.product_list && detail.product_list.length > 0">
<view class="cuopon-group">
<view class="title f30"><view>商品礼包</view></view>
<view class="body">
<view class="item mb30 borbox bg-white" v-for="(item, index) in detail.product_list" :key="index" @click="choosePro(item.product_id)">
<view class="d-s-c">
<view><image class="product_img" :src="item.image[0].file_path" mode="aspectFill"></image></view>
<view class="pro">
<view class="pro_t">{{ item.product_name }}</view>
<view class="pro_c">{{ item.product_sku.product_attr }}</view>
<view class="pro_b">
<text class="f18"></text>
{{ item.product_price }}
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
<!--订单信息-->
<view class="group bg-white f28">
<view class="p-20-0">
<text class="gray9">订单编号</text>
<text>{{ detail.order_no }}</text>
</view>
<view class="p-20-0">
<text class="gray9">下单时间</text>
<text>{{ detail.create_time }}</text>
</view>
<view class="p-20-0">
<text class="gray9">支付方式</text>
<text>{{ detail.pay_type.text }}</text>
</view>
<view class="p-20-0">
<text class="gray9">配送方式</text>
<text v-if="detail.delivery_type == 10">快递配送</text>
<text v-if="detail.delivery_type == 20">自提上门</text>
</view>
</view>
<view class="group bg-white f28">
<view class="p-20-0 d-b-c">
<text class="gray9">订单金额</text>
<text>¥ {{ detail.order_price }}</text>
</view>
</view>
</view>
</template>
<script>
import Popup from '@/components/uni-popup.vue';
import { pay } from '@/common/pay.js';
export default {
data() {
return {
/*是否加载完成*/
loadding: true,
indicatorDots: true,
autoplay: true,
interval: 2000,
duration: 500,
/*是否显示支付类别弹窗*/
isPayPopup: false,
/*订单id*/
order_id: 0,
/*订单详情*/
detail: {
point: '',
product_list: [],
pay_price: '',
coupon_list: [],
order_status: [],
address: {
region: []
},
product: [],
pay_type: [],
delivery_type: [],
pay_status: []
},
extractStore: {},
/*是否显示拼团*/
is_fightgroup: false
};
},
components: {
Popup
},
onLoad(e) {
this.order_no = e.order_no;
},
mounted() {
uni.showLoading({
title: '加载中'
});
/*获取订单详情*/
this.getData();
},
methods: {
/*获取数据*/
getData() {
let self = this;
let order_no = self.order_no;
self._get(
'plus.package.Order/orderDetail',
{
order_no: order_no
},
function(res) {
self.detail = res.data.detail;
self.extractStore = res.data.detail.extract;
self.loadding = false;
console.log(self.detail);
uni.hideLoading();
}
);
},
/*显示支付方式*/
hidePopupFunc() {
this.isPayPopup = false;
},
/*查看物流*/
gotoExpress(order_id) {
this.gotoPage('/pages/order/express/express?order_id=' + order_id);
}
}
};
</script>
<style scoped>
.order-express {
background: #ffffff;
}
.order-express .icon-box .iconfont {
font-size: 50rpx;
}
.order-datail {
padding-bottom: 90 rpx;
}
.order-datail .fight-users {
margin: 0 auto;
}
.order-datail .fight-users .user-box {
width: 80rpx;
height: 80rpx;
margin: 10rpx;
border-radius: 50%;
border: 1px dashed #cccccc;
}
.order-datail .fight-users {
padding: 30rpx;
}
.order-datail .fight-users .user-box image {
width: 80rpx;
height: 80rpx;
border-radius: 50%;
}
.order-datail .fight-users .user-box .leader {
position: absolute;
top: -20rpx;
left: 50%;
margin-left: -30rpx;
width: 60rpx;
height: 30rpx;
line-height: 30rpx;
text-align: center;
color: #ffffff;
border-radius: 30rpx;
border: 1px solid #ffffff;
background: red;
}
.order-datail .fight-users .user-box.user-who {
font-size: 50rpx;
color: #999999;
}
.state-cont .countdown-datetime {
margin-top: 16rpx;
}
.state-cont .countdown-datetime text {
padding: 4rpx 8rpx;
border-radius: 4rpx;
background: rgba(0, 0, 0, 0.4);
}
.gift-package-main .integral {
background-color: #ffffff66;
padding-bottom: 60rpx;
border-radius: 15rpx;
}
.gift-package-main .integral .title {
color: #919191;
font-size: 35rpx;
margin-bottom: 20rpx;
}
.gift-package-main .integral_btom {
border: 1rpx solid #cacaca;
height: 193rpx;
background-color: #ffffff;
margin-top: 20rpx;
border-radius: 15rpx;
}
.gift-package-main .integral .info {
margin-left: 30rpx;
width: 300rpx;
color: #f0510e;
}
.gift-package-main .integral image {
width: 135rpx;
height: 135rpx;
margin-left: 40rpx;
}
.gift-package-main .integral .num {
font-size: 50rpx;
}
.gift-package-main .btns {
margin-top: 92rpx;
margin-bottom: 120rpx;
float: right;
}
.gift-package-main .order_price {
text-align: right;
color: #fd0000;
font-size: 30rpx;
margin-bottom: 68rpx;
}
.gift-package-main .btns button {
width: 266rpx;
height: 54rpx;
background-color: #ee1413;
color: #ffffff;
text-align: center;
line-height: 54rpx;
border-radius: 15rpx;
}
.rule {
overflow: hidden;
position: absolute;
right: 0;
top: 480rpx;
z-index: 100;
}
.rule_btn {
margin-top: 27rpx;
width: 183rpx;
height: 62rpx;
line-height: 62rpx;
text-align: center;
background-color: #e83514;
border: 1rpx solid #ffffff;
border-top-left-radius: 32rpx;
border-bottom-left-radius: 32rpx;
color: #ffffff;
font-size: 26rpx;
}
.add {
font-size: 73rpx;
font-weight: 900;
text-align: center;
color: #ffffff;
}
.cuopon_num {
display: inline-block;
width: 40rpx;
height: 40rpx;
border: 1rpx solid #939393;
margin-left: 150rpx;
text-align: center;
line-height: 40rpx;
font-size: 18rpx;
border-radius: 10rpx;
position: absolute;
top: 40px;
right: 15px;
color: #000000;
}
.product_img {
width: 140rpx;
height: 140rpx;
}
.pro {
margin-left: 12rpx;
text-align: left;
}
.pro_t {
font-size: 24rpx;
color: #000000;
margin-bottom: 15rpx;
}
.pro_c {
font-size: 20rpx;
color: #686868;
}
.pro_b {
font-size: 28rpx;
color: #fd0000;
margin-left: 252rpx;
}
.f18 {
font-size: 18rpx;
}
.pro_choose {
width: 33rpx;
height: 33rpx;
position: absolute;
right: 10rpx;
top: 6rpx;
}
.borbox {
border: 1rpx solid #cacaca;
}
.cuopon-group {
color: #ffffff;
text-align: center;
font-size: 30rpx;
background-color: #ffffff30;
border-radius: 15rpx;
padding: 35rpx 0;
}
.cuopon-title {
color: #919191;
font-size: 35rpx;
margin-bottom: 20rpx;
}
.cuopon-group .title {
color: #919191;
font-size: 35rpx;
margin-bottom: 20rpx;
}
.cuopon-group .body {
}
.cuopon_item {
position: relative;
}
.item_cuopon {
z-index: 50;
}
.cuopon-group .body .item {
padding: 20rpx;
display: flex;
flex-direction: column;
border-radius: 20rpx;
position: relative;
}
.cuopon_img {
width: 493rpx;
height: 123rpx;
position: absolute;
top: 0;
left: 0;
}
.cuopon-group .body .item .price {
z-index: 50;
font-size: 18rpx;
margin-left: 26rpx;
}
.cuopon-group .body .item .des {
color: #000000;
z-index: 50;
padding: 26rpx 0;
font-size: 24rpx;
text-align: left;
margin-left: 50rpx;
}
</style>