|
@@ -9,13 +9,18 @@
|
|
></tui-skeleton>
|
|
></tui-skeleton>
|
|
<view class="container-cart-main tui-skeleton" :style="{ paddingTop: isshowDelbtn ? '0rpx' : '80rpx' }">
|
|
<view class="container-cart-main tui-skeleton" :style="{ paddingTop: isshowDelbtn ? '0rpx' : '80rpx' }">
|
|
<view class="foot-check-delbtn" v-if="!isshowDelbtn && goodsList.length > 0">
|
|
<view class="foot-check-delbtn" v-if="!isshowDelbtn && goodsList.length > 0">
|
|
- <view class="foot-text"
|
|
|
|
- >共<text>{{ kindCount }}</text
|
|
|
|
|
|
+ <view class="foot-text">
|
|
|
|
+ 共<text>{{ kindCount }}</text
|
|
>件商品</view
|
|
>件商品</view
|
|
>
|
|
>
|
|
<view class="delBtn" @tap.stop="showDelManager">删除</view>
|
|
<view class="delBtn" @tap.stop="showDelManager">删除</view>
|
|
</view>
|
|
</view>
|
|
<view v-if="!isEmpty" class="container-cart">
|
|
<view v-if="!isEmpty" class="container-cart">
|
|
|
|
+ <!-- TODO -->
|
|
|
|
+ <view class="receive-coupon">
|
|
|
|
+ <view class="tip-text">还差¥200可用“满200元减50元”优惠券</view>
|
|
|
|
+ <view class="btn" @click="couponVisible = true">领券</view>
|
|
|
|
+ </view>
|
|
<view class="cart-content" :style="{ paddingBottom: isIphoneX ? '130rpx' : '100rpx' }">
|
|
<view class="cart-content" :style="{ paddingBottom: isIphoneX ? '130rpx' : '100rpx' }">
|
|
<view class="goods-list">
|
|
<view class="goods-list">
|
|
<view v-for="(item, index) in goodsList" :key="index" class="goods-item clearfix">
|
|
<view v-for="(item, index) in goodsList" :key="index" class="goods-item clearfix">
|
|
@@ -148,8 +153,18 @@
|
|
|
|
|
|
<view class="sum">
|
|
<view class="sum">
|
|
<view v-if="!isshowDelbtn" class="sum-price">
|
|
<view v-if="!isshowDelbtn" class="sum-price">
|
|
- 总价:<text class="money-sign">¥</text
|
|
|
|
- ><text class="money">{{ allPrice | NumFormat }}</text>
|
|
|
|
|
|
+ <view class="row">
|
|
|
|
+ <text>总价:</text> <text class="money-sign">¥</text>
|
|
|
|
+ <text class="money">{{ allPrice | NumFormat }}</text>
|
|
|
|
+ </view>
|
|
|
|
+ <view class="row">
|
|
|
|
+ <text>共减</text> <text class="discounted-price">¥200.00</text>
|
|
|
|
+ <text @click="showDiscountedDetail">优惠明细</text>
|
|
|
|
+ <text
|
|
|
|
+ class="iconfont"
|
|
|
|
+ :class="showDitail ? 'tui-icon-arrowdown' : 'tui-icon-arrowup'"
|
|
|
|
+ ></text>
|
|
|
|
+ </view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
</view>
|
|
@@ -186,6 +201,32 @@
|
|
></tui-modal>
|
|
></tui-modal>
|
|
<!-- 促销活动弹窗 -->
|
|
<!-- 促销活动弹窗 -->
|
|
<activi-popup :product="handlerPros" :popupShow="popupShow"></activi-popup>
|
|
<activi-popup :product="handlerPros" :popupShow="popupShow"></activi-popup>
|
|
|
|
+ <!-- 优惠券列表 TODO-->
|
|
|
|
+ <cm-coupon-list
|
|
|
|
+ title="优惠券"
|
|
|
|
+ listType="search"
|
|
|
|
+ :visible="couponVisible"
|
|
|
|
+ @close="closeCouponList"
|
|
|
|
+ ></cm-coupon-list>
|
|
|
|
+ <!-- 优惠明细 -->
|
|
|
|
+ <cm-drawer
|
|
|
|
+ title="优惠明细"
|
|
|
|
+ :visible="showDitail"
|
|
|
|
+ position="bottom"
|
|
|
|
+ :offset="100"
|
|
|
|
+ @close="showDitail = false"
|
|
|
|
+ zIndex="99"
|
|
|
|
+ >
|
|
|
|
+ <template>
|
|
|
|
+ <view class="discounted-ditail">
|
|
|
|
+ <view class="row"> <text>商品总额</text> <text>¥450.00</text> </view>
|
|
|
|
+ <view class="row"> <text>促销满减</text> <text class="red">-¥180.00</text> </view>
|
|
|
|
+ <view class="row"> <text>优惠券</text> <text class="red">-¥20.00</text> </view>
|
|
|
|
+ <view class="row total"> <text>总计</text> <text>¥250.00</text> </view>
|
|
|
|
+ <view class="tip"> 实际订单金额以结算页为准 </view>
|
|
|
|
+ </view>
|
|
|
|
+ </template>
|
|
|
|
+ </cm-drawer>
|
|
<!-- 透明模态层 -->
|
|
<!-- 透明模态层 -->
|
|
<modal-layer v-if="modallayer"></modal-layer>
|
|
<modal-layer v-if="modallayer"></modal-layer>
|
|
</view>
|
|
</view>
|
|
@@ -194,12 +235,16 @@
|
|
import authorize from '@/common/authorize.js'
|
|
import authorize from '@/common/authorize.js'
|
|
import activiPopup from '@/components/cm-module/productDetails/cm-activipopu'
|
|
import activiPopup from '@/components/cm-module/productDetails/cm-activipopu'
|
|
import modalLayer from '@/components/cm-module/modal-layer/modal-layer'
|
|
import modalLayer from '@/components/cm-module/modal-layer/modal-layer'
|
|
|
|
+import CmCouponList from '@/components/cm-module/cm-coupon-list/cm-coupon-list'
|
|
|
|
+import CmDrawer from '@/components/cm-module/cm-drawer/cm-drawer.vue'
|
|
import { mapGetters, mapActions, mapMutations } from 'vuex'
|
|
import { mapGetters, mapActions, mapMutations } from 'vuex'
|
|
|
|
|
|
export default {
|
|
export default {
|
|
components: {
|
|
components: {
|
|
activiPopup,
|
|
activiPopup,
|
|
- modalLayer
|
|
|
|
|
|
+ modalLayer,
|
|
|
|
+ CmCouponList,
|
|
|
|
+ CmDrawer
|
|
},
|
|
},
|
|
data() {
|
|
data() {
|
|
return {
|
|
return {
|
|
@@ -217,7 +262,9 @@ export default {
|
|
hasNextPage: false,
|
|
hasNextPage: false,
|
|
modal: false,
|
|
modal: false,
|
|
contentModalText: '',
|
|
contentModalText: '',
|
|
- deleteType: 0
|
|
|
|
|
|
+ deleteType: 0,
|
|
|
|
+ couponVisible: false,
|
|
|
|
+ showDitail: false
|
|
}
|
|
}
|
|
},
|
|
},
|
|
onLoad() {
|
|
onLoad() {
|
|
@@ -291,6 +338,10 @@ export default {
|
|
this.skeletonShow = false
|
|
this.skeletonShow = false
|
|
})
|
|
})
|
|
},
|
|
},
|
|
|
|
+ // 关闭优惠券弹窗
|
|
|
|
+ closeCouponList() {
|
|
|
|
+ this.couponVisible = false
|
|
|
|
+ },
|
|
// 活动价弹窗
|
|
// 活动价弹窗
|
|
clickPopupShow(pros, type) {
|
|
clickPopupShow(pros, type) {
|
|
if (pros.ladderList.length > 0) {
|
|
if (pros.ladderList.length > 0) {
|
|
@@ -298,6 +349,10 @@ export default {
|
|
this.handlerPros = pros
|
|
this.handlerPros = pros
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
+ // 优惠明细 TODO
|
|
|
|
+ showDiscountedDetail() {
|
|
|
|
+ this.showDitail = true
|
|
|
|
+ },
|
|
// 勾选单个失效商品
|
|
// 勾选单个失效商品
|
|
ischeckFailure(failure) {
|
|
ischeckFailure(failure) {
|
|
this.selectFailure({
|
|
this.selectFailure({
|
|
@@ -504,11 +559,57 @@ export default {
|
|
}
|
|
}
|
|
</script>
|
|
</script>
|
|
|
|
|
|
-<style lang="scss">
|
|
|
|
|
|
+<style lang="scss" scoped>
|
|
page {
|
|
page {
|
|
background: #f7f7f7;
|
|
background: #f7f7f7;
|
|
height: auto;
|
|
height: auto;
|
|
}
|
|
}
|
|
|
|
+.discounted-ditail {
|
|
|
|
+ padding: 52rpx 8rpx 0;
|
|
|
|
+ .row {
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ align-items: center;
|
|
|
|
+ padding: 12rpx 0;
|
|
|
|
+ text {
|
|
|
|
+ font-size: 30rpx;
|
|
|
|
+ color: #333333;
|
|
|
|
+ &.red {
|
|
|
|
+ color: #f94b4b;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ &.total{
|
|
|
|
+ font-size: 30rpx;
|
|
|
|
+ font-weight: 600;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ .tip {
|
|
|
|
+ padding: 12rpx 0;
|
|
|
|
+ font-size: 26rpx;
|
|
|
|
+ color: #999999;
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+.receive-coupon {
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: space-between;
|
|
|
|
+ align-items: center;
|
|
|
|
+ padding: 24rpx;
|
|
|
|
+ background: #fff;
|
|
|
|
+ .tip-text {
|
|
|
|
+ font-size: 26rpx;
|
|
|
|
+ color: #ff457b;
|
|
|
|
+ }
|
|
|
|
+ .btn {
|
|
|
|
+ width: 88rpx;
|
|
|
|
+ height: 42rpx;
|
|
|
|
+ background: linear-gradient(270deg, #f83c6c 0%, #fc32b4 100%);
|
|
|
|
+ border-radius: 28rpx;
|
|
|
|
+ font-size: 26rpx;
|
|
|
|
+ color: #ffffff;
|
|
|
|
+ text-align: center;
|
|
|
|
+ line-height: 42rpx;
|
|
|
|
+ }
|
|
|
|
+}
|
|
.cart-content {
|
|
.cart-content {
|
|
position: relative;
|
|
position: relative;
|
|
}
|
|
}
|
|
@@ -1072,6 +1173,7 @@ page {
|
|
position: fixed;
|
|
position: fixed;
|
|
bottom: 0rpx;
|
|
bottom: 0rpx;
|
|
z-index: 100;
|
|
z-index: 100;
|
|
|
|
+ border-top: 1px solid #EFEFEF;
|
|
.footer-le {
|
|
.footer-le {
|
|
width: 520rpx;
|
|
width: 520rpx;
|
|
height: 100%;
|
|
height: 100%;
|
|
@@ -1099,10 +1201,12 @@ page {
|
|
box-sizing: border-box;
|
|
box-sizing: border-box;
|
|
padding: 0 10rpx;
|
|
padding: 0 10rpx;
|
|
.sum-price {
|
|
.sum-price {
|
|
- text-align: right;
|
|
|
|
|
|
+ display: flex;
|
|
|
|
+ justify-content: center;
|
|
|
|
+ align-items: flex-end;
|
|
|
|
+ flex-direction: column;
|
|
width: 100%;
|
|
width: 100%;
|
|
height: 80rpx;
|
|
height: 80rpx;
|
|
- line-height: 80rpx;
|
|
|
|
font-size: $font-size-30;
|
|
font-size: $font-size-30;
|
|
color: $text-color;
|
|
color: $text-color;
|
|
float: left;
|
|
float: left;
|
|
@@ -1114,6 +1218,15 @@ page {
|
|
font-size: $font-size-24;
|
|
font-size: $font-size-24;
|
|
color: $color-system;
|
|
color: $color-system;
|
|
}
|
|
}
|
|
|
|
+ .discounted-price {
|
|
|
|
+ margin-right: 32rpx;
|
|
|
|
+ }
|
|
|
|
+ .row {
|
|
|
|
+ &:nth-child(2) {
|
|
|
|
+ font-size: 24rpx;
|
|
|
|
+ color: #ff457b;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|