web-africa-h5/pages/order/detail.vue

360 lines
10 KiB
Vue
Raw Permalink Normal View History

2025-03-21 14:49:01 +08:00
<template>
<view v-if="isPop">
<view class="pop-bg" @click="closeFunc"></view>
<view class="pop-box">
<view class="order-detail">
<view class="d-e-c"
><u-icon
@click="closeFunc"
name="close"
size="30rpx"
color="#999"
></u-icon
></view>
<view class="p-0-20 f32 fb tc">{{ $t("MY_ORD_5") }}</view>
<!-- <view class="payload-box d-c d-a-s">
<image class="payload-bg" src="/static/bg/order-bg.png" mode=""></image>
<view class="d-s-c pr">
<u-icon name="checkmark-circle" size="34rpx" color="#fff"></u-icon>
<text class="white ml10">{{ detail.orderStatusVal }}</text>
</view>
<view class="white f24 pr" v-if="detail.orderStatus == 0 && payTime">请在{{ payTime }}内完成支付,否则订单将会被自动取消</view>
</view> -->
<!-- <view class="express-box d-b-c">
<u-icon size="56rpx" name="/static/icon/order/express.png"></u-icon>
<view class="flex-1 d-c d-a-s m-0-20">
<view class="f24 gray3">共3个包裹运送中</view>
<view class="f20 gray9">邮政快递71234567891</view>
</view>
<view class="icon iconfont icon-jiantou"></view>
</view> -->
<view
class="product-box"
v-if="serchStatus == 1 || serchStatus == 3 || serchStatus == 6"
>
<view class="product-title">{{ $t("w_0077") }}</view>
<view class="product-list">
<view
v-for="(item, index) in detail.storeOutBiExtList"
:key="index"
class="product-item"
>
<image class="product-img" :src="item.cover" mode=""></image>
<view class="product-info d-c d-b-s flex-1">
<view class="text-ellipsis-2 f28 gray3 fb"
>{{ item.productName }}
</view>
<view class="f24">
<text class="">{{ item.specsName }}</text>
</view>
<view class="f24">
<text class="">{{ item.productCode }}</text>
</view>
</view>
<view class="f24 gray3 ml20">X{{ item.quantity }}</view>
</view>
</view>
</view>
<view class="product-box" v-if="serchStatus == -1 || serchStatus == ''">
<view class="product-title">{{ $t("w_0077") }}</view>
<view class="product-list">
<view
v-for="(item, index) in detail.itemList"
:key="index"
class="product-item"
>
<image class="product-img" :src="item.cover" mode=""></image>
<view class="product-info d-c d-b-s flex-1">
<view class="text-ellipsis-2 f28 gray3"
>{{ item.productName }} {{ item.specsName }}
</view>
<view class="price-color f24">
{{ currencyIcon() }}
<text class="f32 fb">{{ formatNum(item.price) }}</text>
</view>
</view>
<view class="f24 grayD ml20">X{{ item.quantity }}</view>
</view>
</view>
<!-- <view class="d-b-s">
<view style="width: 132rpx;" class="mr20 f28 domation">活动赠品</view>
<view class="flex-1" style="line-height: 1.5;">
<view class="d-b-c mb20">
<view class="f28 gray3 text-ellipsis-2">海之圣超饱和富氢水杯绿色</view>
<view class="f24 grayD ml20">X1</view>
</view>
<view class="d-b-c mb20">
<view class="f28 gray3 text-ellipsis-2">海之圣超饱和富氢水杯绿色</view>
<view class="f24 grayD ml20">X1</view>
</view>
<view class="d-b-c mb20">
<view class="f28 gray3 text-ellipsis-2">海之圣超饱和富氢水杯绿色</view>
<view class="f24 grayD ml20">X1</view>
</view>
</view>
</view> -->
</view>
<view
class="product-box"
v-if="serchStatus == 1 || serchStatus == 3 || serchStatus == 6"
>
<view class="d-b-c mb10">
<text class="f24 gray9 mr20">{{ $t("MY_ORD_3") }}</text>
<text class="f24 gray3">{{ detail.payTime }}</text>
</view>
<view class="d-b-c mb10" v-if="serchStatus == 6 || serchStatus == 1">
<text class="f24 gray9 mr20">{{ $t("fn_170") }}</text>
<text class="f24 gray3">{{ detail.storeName }}</text>
</view>
<view class="d-b-c mb10" >
<text class="f24 gray9 mr20">{{ $t("MN_F_T_1204") }}</text>
<text class="f24 gray3">{{ detail.bonusRatio || 0 }}</text>
</view>
</view>
<view class="product-box" v-if="serchStatus == -1 || serchStatus == ''">
<view class="d-b-c mb10">
<text class="f24 gray9 mr20">{{ $t("MY_ORD_6") }}</text>
<text class="f24 gray3">{{ formatNum(detail.orderAmount) }}</text>
</view>
<view class="d-b-c mb10" v-if="detail.orderType != 30">
<text class="f24 gray9 mr20">{{ $t("MY_ORD_16") }}(PV)</text>
<text class="f24 gray3">{{ formatNum(detail.orderAchieve) }}</text>
</view>
<view class="d-b-c mb10" v-if="opento">
<text class="f24 gray9 mr20">{{ $t("MN_F_T_1204") }}</text>
<text class="f24 gray3">{{ detail.bonusRatio || 0 }}</text>
</view>
<!-- <view class="d-b-c mb10" v-if="detail.orderType != 30">
<text class="f24 gray9 mr20">{{ $t("MY_ORD_16") }}(BV)</text>
<text class="f24 gray3">{{
formatNum(detail.orderAssAchieve)
}}</text>
</view> -->
<!-- <view class="remark-box">
<text class="f26 gray6 mr20">备注</text>
<text class="f26 gray3">zxczxczxczczczcxzxc</text>
</view> -->
</view>
<view
class="product-box border-t"
style="padding-bottom: 0"
v-if="
detail.deliveryWay != 2 && (serchStatus == -1 || serchStatus == '')
"
>
<view class="product-title">{{ $t("w_0065") }}</view>
<view class="address-box d-b-c">
<!-- <u-icon width="33rpx" height="40rpx" name="/static/icon/order/address.png"></u-icon> -->
<view class="flex-1 d-c d-a-s">
<view class="f28 mb10 gray3">
<text class="mr20">{{ detail.recName }}</text>
<text>{{ detail.recPhone }}</text>
</view>
<view class="f24 gray9"
>{{ detail.recProvince }}{{ detail.recCity
}}{{ detail.address }}
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</template>
<script>
export default {
data() {
return {
type: 0,
orderData: {},
payTime: "",
};
},
props: ["detail", "isPop", "serchStatus","opento"],
methods: {
closeFunc() {
this.$emit("close");
},
getPayTime(time) {
// 转换为式分秒
let h = parseInt((time / 60 / 60) % 24);
h = h < 10 ? "0" + h : h;
let m = parseInt((time / 60) % 60);
m = m < 10 ? "0" + m : m;
let s = parseInt(time % 60);
s = s < 10 ? "0" + s : s;
// 作为返回值返回
return h + ":" + m + ":" + s;
},
},
};
</script>
<style lang="scss">
.pop-box {
width: 80%;
box-sizing: border-box;
position: fixed;
top: 15%;
// bottom: 0;
left: 0;
right: 0;
margin: auto;
background-color: #ffffff;
border-radius: 15rpx;
z-index: 100;
}
.order-detail {
padding: 23rpx;
max-height: 80vh;
overflow-y: auto;
}
.payload-box {
padding: 30rpx 22rpx;
position: relative;
height: 137rpx;
box-sizing: border-box;
margin: 0 auto;
margin-bottom: 20rpx;
.payload-bg {
width: 564rpx;
height: 137rpx;
position: absolute;
left: 0;
top: 0;
z-index: 0;
}
}
.express-box {
width: 563;
height: 124rpx;
background: #ffffff;
border-radius: 20rpx;
margin: 0 auto;
margin-bottom: 20rpx;
box-sizing: border-box;
// padding: 34rpx 21rpx;
padding: 0 21rpx;
.icon.icon-jiantou {
font-size: 32rpx;
color: #999;
}
}
.address-box {
width: 563;
// height: 124rpx;
background: #ffffff;
border-radius: 20rpx;
margin: 0 auto;
box-sizing: border-box;
// padding: 34rpx 21rpx;
padding: 20rpx 0;
}
.product-box {
padding: 26rpx 20rpx 0 20rpx;
background: #ffffff;
// border-radius: 20rpx;
margin-bottom: 20rpx;
.product-title {
font-size: 28rpx;
color: #333;
margin-bottom: 5rpx;
font-weight: bold;
}
.product-item {
display: flex;
justify-content: center;
align-items: flex-start;
width: 100%;
padding: 20rpx 0;
border-bottom: 1rpx solid #eee;
.product-img {
width: 132rpx;
height: 132rpx;
border-radius: 10rpx;
display: block;
margin-right: 20rpx;
}
.product-info {
height: 132rpx;
}
}
.product-item:last-child {
border: none;
}
}
.remark-box {
width: 563;
box-sizing: border-box;
padding: 26rpx 20rpx 26rpx 20rpx;
margin-bottom: 20rpx;
background: #ffffff;
border-radius: 20rpx;
word-break: break-all;
line-height: 1.5;
}
.order-btns-nav {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height: 96rpx;
box-sizing: border-box;
display: flex;
justify-content: flex-end;
align-items: center;
padding: 0 23rpx;
background-color: #ffffff;
z-index: 20;
border-top: 1rpx solid #eee;
}
.order-btn {
min-width: 152rpx;
padding: 0 28rpx;
box-sizing: border-box;
height: 56rpx;
border-radius: 30rpx;
line-height: 56rpx;
background: #fb3024;
font-size: 26rpx;
font-weight: 400;
color: #ffffff;
border: 1rpx solid #fb3024;
text-align: center;
margin-left: 23rpx;
}
.order-btn.border-btn {
border: 1rpx solid #dddddd;
color: #333333;
background: none;
}
.pop-bg {
position: fixed;
top: 0;
left: 0;
bottom: 0;
right: 0;
z-index: 98;
background-color: rgba(0, 0, 0, 0.6);
}
</style>