123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297 |
- <template>
- <view class="bd-hc" v-if="(integral && integral.title) || (balance && balance.title) || (card && card.list.length > 0) || (coupon && coupon.list.length > 0)">
- <view class="bd-block dir-left-nowrap cross-center" v-if="integral && integral.title">
- <view class="box-grow-0">活动</view>
- <view class="bd-give box-grow-0 main-center cross-center" :class="theme.color">
- 送积分
- </view>
- <view class="content u-line-1 box-grow-1">{{integral.title}}</view>
- </view>
- <view class="bd-block dir-left-nowrap cross-center" v-if="balance && balance.title">
- <view class="box-grow-0">促销</view>
- <view class="bd-give box-grow-0 main-center cross-center" :class="theme.color">
- 赠余额
- </view>
- <view class="content u-line-1 box-grow-1">{{balance.title}}</view>
- </view>
- <view class="bd-block dir-left-nowrap cross-center" v-if="card && card.list.length > 0" @click="change('card', '卡券')">
- <view class="box-grow-0">{{!(balance && balance.title) ? '促销' : ''}}</view>
- <view class="bd-give box-grow-0 main-center cross-center" :class="theme.color">
- 赠卡券
- </view>
- <view class="content u-line-1 box-grow-1">{{card.title}}</view>
- <image class="box-grow-0 bd-icon" src="../../../static/image/icon/arrow-right.png"></image>
- </view>
- <view class="bd-block dir-left-nowrap cross-center" v-if="coupon && coupon.list.length > 0" @click="change('coupon', '优惠券')">
- <view class="box-grow-0">{{!(balance && balance.title && card && card.list.length > 0) ? '促销' : ''}}</view>
- <view class="bd-give box-grow-0 main-center cross-center" :class="theme.color">
- 赠优惠券
- </view>
- <view class="content u-line-1 box-grow-1">{{coupon.title}}</view>
- <image class="box-grow-0 bd-icon" src="../../../static/image/icon/arrow-right.png"></image>
- </view>
- <u-popup v-model="show" mode="bottom" border-radius="14" @close="show = false">
- <view class="model" @touchmove.stop.prevent>
- <view class="f-top dir-left-nowrap main-between cross-center">
- <view class="f-title dir-left-nowrap cross-center u-line-1">
- <view class="p-title">{{title}}</view>
- </view>
- <view class="f-image" @click="show = false">
- <image class="f-img" src="/static/image/icon/icon-close.png"></image>
- </view>
- </view>
- <scroll-view scroll-y class="f-scroll">
- <view class="f-scroll-content">
- <view class="coupon-content" v-if="showModal === 'coupon'">
- <view class="coupon dir-left-nowrap cross-center" v-for="(item, index) in coupon.list" :key="index">
- <view class="dis" v-if="item.type === 1">
- <text>{{item.discount}}</text>
- <text>折</text>
- </view>
- <view class="price" v-else-if="item.type === 2">
- <text>¥</text>
- <text>{{item.sub_price}}</text>
- </view>
- <view class="box-grow-1 dir-top-nowrap">
- <text class="name">{{item.name}}</text>
- <text class="limit">满{{item.min_price}}可用</text>
- <text class="number">赠送{{item.number}}张</text>
- </view>
- </view>
- </view>
- <view class="card-content" v-if="showModal === 'card'">
- <view class="card dir-left-nowrap cross-center" v-for="(item, index) in card.list" :key="index">
- <image :src="item.pic_url"></image>
- <view class="box-grow-1 dir-top-nowrap">
- <text class="name">{{item.name}}</text>
- <text class="number">赠送{{item.number}}张</text>
- </view>
- </view>
- </view>
- </view>
- </scroll-view>
- </view>
- </u-popup>
- </view>
- </template>
- <script>
- import uPopup from '../../basic-component/u-popup/u-popup.vue';
- export default {
- name: "bd-hc",
- components: {
- uPopup
- },
- props: {
- card: {
- type: Object,
- default() {
- return {};
- }
- },
- integral: {
- type: Object,
- default() {
- return {};
- }
- },
- balance: {
- type: Object,
- default() {
- return {};
- }
- },
- coupon: {
- type: Object,
- default() {
- return {};
- }
- },
- theme: {
- type: Object,
- default() {
- return {};
- }
- },
- },
- data() {
- return {
- show: false,
- showModal: '',
- title: ''
- };
- },
- methods: {
- change(key, title) {
- this.showModal = key;
- this.title = title;
- this.show = true;
- }
- }
- }
- </script>
- <style scoped lang="scss">
- .bd-hc {
- width: 702upx;
- border-radius: 15upx;
- padding: 20upx 20upx 0 20upx;
- background-color: #ffffff;
- overflow: hidden;
- margin: 24upx 24upx 24upx 24upx;
- }
- .bd-block {
- font-size: 26upx;
- color: #999999;
- margin-bottom: 20upx;
- .content {
- color: #353535;
- }
- }
- .bd-give {
- padding: 2upx 4upx;
- border: 1upx solid;
- border-radius: 4upx;
- font-size: 22upx;
- margin-right: 12upx;
- }
- .bd-block view:first-child {
- margin-right: 26upx;
- width: 60upx;
- }
- .bd-icon {
- width: 12upx;
- height: 22upx;
- }
- .card-content {
- width: 100%;
- .card {
- width: 100%;
- height: #{160rpx};
- background-image: url('../../../static/image/icon/goods-card.png');
- background-position: center;
- background-repeat: no-repeat;
- background-size: contain;
- padding: 0 #{32rpx} 0 #{36rpx};
- margin-bottom: #{20rpx};
- image {
- width: #{88rpx};
- height: #{88rpx};
- display: block;
- margin-right: #{68rpx};
- border-radius: #{88rpx};
- }
- .name {
- width: 478#{rpx};
- text-overflow: ellipsis;
- white-space: nowrap;
- overflow: hidden;
- font-size: 28#{rpx};
- color: #353535;
- }
- .number {
- font-size:24#{rpx};
- color: #999999;
- margin-top:10#{rpx};
- }
- }
- }
- .coupon-content {
- width: 100%;
- .coupon {
- width: 100%;
- height: #{160rpx};
- background-image: url('../../../static/image/icon/goods-card.png');
- background-position: center;
- background-repeat: no-repeat;
- background-size: contain;
- margin-bottom: #{20rpx};
- .dis {
- >text:first-child {
- font-weight: bold;
- font-size: 36upx;
- }
- >text:last-child {
- font-size: 22upx;
- font-weight: bold;
- }
- }
- .price {
- >text:first-child {
- font-size: 18upx;
- font-weight: bold;
- }
- >text:last-child {
- font-size: 36upx;
- font-weight: bold;
- }
- }
- view:first-child {
- width: 160upx;
- text-align: center;
- }
- view:last-child {
- padding-left: 32upx;
- }
- image {
- width: #{88rpx};
- height: #{88rpx};
- display: block;
- margin-right: #{68rpx};
- border-radius: #{88rpx};
- }
- .name {
- width: 478#{rpx};
- text-overflow: ellipsis;
- white-space: nowrap;
- overflow: hidden;
- font-size: 28#{rpx};
- color: #353535;
- }
- .limit {
- font-size: 19upx;
- color: #353535;
- }
- .number {
- font-size:24#{rpx};
- color: #999999;
- margin-top:10#{rpx};
- }
- }
- }
- .model {
- height: 80vh;
- width: 750upx;
- }
- .f-top {
- height: 105upx;
- background-color: #ffffff;
- position: relative;
- border-radius: 15rpx;
- }
- .f-image {
- width: 78upx;
- height: 78upx;
- padding: 24upx;
- position: absolute;
- right: 0;
- }
- .f-img {
- width: 30upx;
- height: 30upx;
- }
- .f-title {
- position: absolute;
- left: 50%;
- transform: translateX(-50%);
- max-width: 594upx;
- }
- .f-scroll {
- height: calc(80vh - 105upx);
- width: 100%;
- }
- .f-scroll-content {
- padding: 0 24upx;
- }
- </style>
|