| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187 |
- <template id="group-goods-style3">
- <div class="group-goods-style" :style="{background: bgColor}">
- <div :style="[groupBox]">
- <div class="group-goods-title" :style="[titleStyle]" v-if="showTitle">{{ title || '商品拼团' }}</div>
- <div class="group-goods-list" flex="main:justify wrap:wrap">
- <div class="group-goods-column" v-for="(it, i) in goodsList" :key="i" :style="[goodsStyle]">
- <div class="column-imgs">
- <el-image style="width: 100%;height: 171px;" class="goods-image" :src="it.cover_pic"></el-image>
- <div class="goods-time">
- <div>活动时间:</div>
- <div class="detail-time">{{ it.start_at | dateTimeFormat('Y-m-d H:i:s') }} - {{ it.end_at | dateTimeFormat('Y-m-d H:i:s') }}</div>
- </div>
- </div>
- <div class="goods-content">
- <div class="goods-name over2">{{ it.goods_name }}</div>
- <div class="goods-tags-item" flex="cross:center">
- <div class="goods-people">{{ it.group_size }}人团</div>
- <div class="goods-save">省¥{{ it.sheng }}</div>
- </div>
- <div class="goods-origin">¥{{ it.price }}</div>
- <div class="goods-price">¥{{ it.group_buy_price }}</div>
- </div>
- <div class="goods-btn" :style="[btnStyle]">立即参团</div>
- </div>
- </div>
- </div>
- </div>
- </template>
- <script>
- /**
- * @descriptions
- * 1. 组件名字必须对应模板形式 - 递归组件name
- * 2. 样式内容方法尽量内部维护 - 前端方便通用
- * 3. 父级组件会传预览数据 - activeItem
- */
- Vue.component('group-goods-style3', {
- name: "group-goods-style3",
- props: {
- activeItem: {
- type: Object,
- default () {
- return {}
- }
- },
- goodsList: {
- type: Array,
- default: () => []
- },
- showTitle: { // 是否展示标题
- type: Number,
- default: 0
- },
- title: { // 标题
- type: String,
- default: ''
- },
- titleStyle: { // 标题的样式
- type: Object,
- default: () => {}
- },
- groupBox: { // 最外层样式
- type: Object,
- default: () => {}
- },
- goodsStyle: { // 商品的样式
- type: Object,
- default: () => {}
- },
- btnStyle: { // 按钮的样式
- type: Object,
- default: () => {}
- },
- bgColor: {
- type: String,
- default: ''
- }
- },
- template: '#group-goods-style3',
- data() {
- return {
- imgUrl: '/resources/img/decorate/group-goods/',
- defaultImg: '/resources/img/decorate/default_picture.png'
- }
- },
- });
- </script>
- <style>
- .group-goods-style {
- position: relative;
- overflow: hidden;
- }
- .group-goods-list {
- margin-left: 10px;
- margin-right: 10px;
- background-color: transparent;
- }
- .group-goods-column {
- position: relative;
- width: calc((100% - 8px) / 2);
- margin-bottom: 8px;
- border-radius: 8px;
- overflow: hidden;
- background-color: #fff;
- }
- .column-imgs {
- position: relative;
- width: 100%;
- height: 171px;
- border-radius: 0 0 8px 8px;
- overflow: hidden;
- }
- .group-goods-list .goods-time {
- position: absolute;
- bottom: 0;
- left: 0;
- background-color: rgba(12, 12, 12, 0.4);
- color: #fff;
- font-size: 11px;
- padding: 8px 12px;
- }
- .group-goods-list .goods-content {
- padding: 8px;
- }
- .group-goods-list .goods-name {
- font-size: 13px;
- color: #0C0C0C;
- padding-top: 6px;
- min-height: 40px;
- }
- .group-goods-list .goods-tags-item {
- font-size: 10px;
- padding-top: 4px;
- }
- .group-goods-list .goods-people {
- min-width: 50px;
- background-color: #FEF3E3;
- padding: 2px 0;
- text-align: center;
- /* padding: 2px 8px; */
- color: #F69E19;
- border-radius: 16px;
- }
- .group-goods-list .goods-save {
- background-color: rgba(219, 5, 5, 0.08);
- padding: 2px 8px;
- color: #DB0505;
- border-radius: 16px;
- margin-left: 6px;
- overflow: hidden;
- white-space: nowrap;
- }
- .group-goods-list .goods-origin {
- font-size: 11px;
- color: #707070;
- padding-top: 12px;
- }
- .group-goods-list .goods-price {
- color: #DB0505;
- font-size: 16px;
- }
- .group-goods-list .goods-btn {
- position: absolute;
- bottom: 12px;
- right: 12px;
- width: 68px;
- height: 32px;
- background: linear-gradient(32deg, #DB0505 0%, #EF5E1E 100%);
- border-radius: 8px;
- text-align: center;
- line-height: 32px;
- color: #FEF8F8;
- font-size: 12px;
- }
- </style>
|