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,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>