<template>
  <!-- 卡券组 -->
  <view class="diy-goods" :style="{ background: itemStyle.background }">
    <view class="goods-list" :class="[`display__${itemStyle.display}`, `column__${itemStyle.column}`]">
      <scroll-view :scroll-x="itemStyle.display === 'slide'">
        <view class="goods-item" v-for="(dataItem, index) in dataList" :key="index" @click="onTargetCoupon(dataItem.id, dataItem.type, dataItem.userCouponId)">
          <!-- 单列卡券 -->
          <block>
            <view class="dis-flex">
              <!-- 卡券图片 -->
              <view class="goods-item_left">
                <image class="image" :src="dataItem.image"></image>
              </view>
              <view class="goods-item_right">
                <!-- 卡券名称 -->
                <view class="goods-name twolist-hidden">
                  <text>{{ dataItem.name }}</text>
                </view>
                <view class="goods-item_desc">
                  <!-- 卡券卖点 -->
                  <view class="desc-selling_point dis-flex">
                    <text class="onelist-hidden">{{ dataItem.sellingPoint }}</text>
                  </view>
                  <view class="coupon-attr">
                      <view class="attr-l">
                          <!-- 参与人数 -->
                          <view class="desc-goods_sales dis-flex">
                            <text v-if="dataItem.type === 'C'">已领取{{ dataItem.gotNum }}，剩余{{ dataItem.leftNum }}</text>
                            <text v-if="dataItem.type === 'P'">已预存{{ dataItem.gotNum }}，剩余{{ dataItem.leftNum }}</text>
                            <text v-if="dataItem.type === 'T'">已领取{{ dataItem.gotNum }}</text>
                          </view>
                          <!-- 卡券面额 -->
                          <view v-if="dataItem.amount > 0" class="desc_footer">
                            <text class="price_x">¥{{ dataItem.amount }}</text>
                          </view>
                      </view>
                      <view class="attr-r">
                          <!--领券按钮-->
                          <view class="receive" v-if="dataItem.type === 'C' && dataItem.isReceive === false">
                              <text>立即领取</text>
                          </view>
                          <view class="receive state" v-if="dataItem.type === 'C' && dataItem.isReceive === true">
                              <text>已领取</text>
                          </view>
                          <view class="receive" v-if="dataItem.type === 'P' && dataItem.isReceive === false">
                              <text>立即预存</text>
                          </view>
                          <view v-if="dataItem.type === 'T' && dataItem.isReceive === false" class="receive">
                              <text>领取次卡</text>
                          </view>
                          <view v-if="dataItem.type === 'T' && dataItem.isReceive === true" class="receive state">
                              <text>已领取</text>
                          </view>
                      </view>
                  </view>
                </view>
              </view>
            </view>
          </block>
        </view>
      </scroll-view>
    </view>
  </view>
</template>

<script>
  import * as couponApi from '@/api/coupon'
  import * as pageApi from '@/api/page'
  export default {
    name: "Coupon",
    
    /**
     * 组件的属性列表
     * 用于组件自定义设置
     */
    props: {
      itemIndex: String,
      itemStyle: Object,
      params: Object,
      dataList: Array
    },

    /**
     * 组件的方法列表
     * 更新属性和数据的方法与更新页面数据的方法类似
     */
    methods: {
      /**
       * 卡券详情页
       */
      onTargetCoupon(couponId, type, userCouponId) {
          if (type === 'P') {
              this.$navTo(`pages/prestore/buy`, { couponId })
          } else {
              if (type === 'C') {
                    this.$navTo(`pages/coupon/detail`, { couponId: couponId, userCouponId: userCouponId })
              } else if(type === 'T') {
                  this.$navTo(`pages/timer/detail`, { couponId: couponId, userCouponId: userCouponId })
              }
         }
      }
    }
  }
</script>

<style lang="scss" scoped>
  .diy-goods {
    .goods-list {
      padding: 4rpx;
      box-sizing: border-box;

      .goods-item {
        box-sizing: border-box;
        padding: 6rpx;

        .goods-image {
          position: relative;
          width: 80rpx;
          height: 63rpx;
          border-radius: 5rpx;
          padding-bottom: 100%;
          overflow: hidden;
          background: #fff;

          &:after {
            content: '';
            display: block;
            margin-top: 100%;
          }

          .image {
            position: absolute;
            width: 80rpx;
            height: 63rpx;
            border-radius: 5rpx;
            top: 0;
            left: 0;
            -o-object-fit: cover;
            object-fit: cover;
          }
        }

        .detail {
          padding: 8rpx;
          background: #fff;

          .goods-name {
            height: 64rpx;
            line-height: 1.3;
            white-space: normal;
            color: #484848;
            font-size: 26rpx;
          }

          .detail-price {
            .goods-price {
              margin-right: 8rpx;
            }

            .line-price {
              text-decoration: line-through;
            }
          }
        }
      }

      &.display__slide {
        white-space: nowrap;
        font-size: 0;

        .goods-item {
          display: inline-block;
        }
      }

      &.display__list {
        .goods-item {
          float: left;
        }
      }

      &.column__2 {
        .goods-item {
          width: 50%;
        }
      }

      &.column__3 {
        .goods-item {
          width: 33.33333%;
        }
      }

      &.column__1 {
        .goods-item {
          width: 100%;
          height: 240rpx;
          margin-bottom: 12rpx;
          padding: 20rpx;
          box-sizing: border-box;
          background: #fff;
          line-height: 1.6;

          &:last-child {
            margin-bottom: 0;
          }
        }

        .goods-item_left {
          display: flex;
          width: 35%;
          background: #fff;
          align-items: center;

          .image {
            display: block;
            margin-top: 20rpx;
            width: 200rpx;
            height: 157rpx;
            border-radius: 6rpx;
          }
        }

        .goods-item_right {
          position: relative;
          width: 65%;
          .goods-name {
            margin-top: 20rpx;
            height: 40rpx;
            line-height: 1.0;
            white-space: normal;
            color: #484848;
            font-size: 30rpx;
          }
        }

        .goods-item_desc {
          margin-top: 0rpx;
          .coupon-attr {
             .attr-l {
                 float:left;
                 width: 70%;
             }
             .attr-r {
                 margin-top:20rpx;
                 float:left;
             }
          }
        }

        .desc-selling_point {
          width: 400rpx;
          font-size: 24rpx;
          color: #e49a3d;
        }
        .receive {
          height: 46rpx;
          width: 128rpx;
          line-height: 46rpx;
          text-align: center;
          border: 1px solid #f8df00;
          border-radius: 5rpx;
          color: #f86d48;
          background: #f8df98;
          font-size: 22rpx;
          &.state {
            border: none;
            color: #cccccc;
            background: #F5F5F5;
          }
        }

        .desc-goods_sales {
          color: #999;
          font-size: 24rpx;
        }

        .desc_footer {
          font-size: 24rpx;

          .price_x {
            margin-right: 16rpx;
            color: #f03c3c;
            font-size: 30rpx;
          }

          .price_y {
            text-decoration: line-through;
          }
        }
      }
    }
  }
</style>
