first commit
This commit is contained in:
320
pages/plus/giftpackage/giftlist.vue
Normal file
320
pages/plus/giftpackage/giftlist.vue
Normal 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>
|
||||
494
pages/plus/giftpackage/giftpackage.vue
Normal file
494
pages/plus/giftpackage/giftpackage.vue
Normal 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>
|
||||
429
pages/plus/giftpackage/order_detail.vue
Normal file
429
pages/plus/giftpackage/order_detail.vue
Normal 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>
|
||||
Reference in New Issue
Block a user