<template>
  <dl class="group-item" :class="{ disabled: !goodsItem.goodsCount }">
    <dt class="group-item-thumb">
      <cr-image :src="goodsItem.thumbImageUrl" />
      <span class="group-item-tag">3人团</span>
    </dt>
    <dd class="group-item-content">
      <div class="group-item-title">{{ goodsItem.goodsName }}</div>
      <!-- 进度条：已拼团消耗库存/该活动商品初始库存 -->
      <cr-progress
        class="group-item-progress"
        stroke-width="5"
        color="#EC1500"
        track-color="#F7F8F9"
        :show-pivot="false"
        :percentage="handleProgressByStatus(goodsItem)"
      />
      <div class="group-item-already">已拼2333团</div>
      <div class="group-item-price">成团价 ¥ <sup class="group-item-sup">0</sup></div>
      <div class="group-item-delprice">售价 ￥{{ goodsItem.activityPrice }}</div>
      <!-- 立即开团 -->
      <!-- 已抢光 -->
      <!-- 未开始 -->
      <!-- 已结束 -->
      <cr-button
        shape="circle"
        type="primary"
        :disabled="!goodsItem.goodsCount"
        @click.stop="onButtonClick"
        >立即开团</cr-button
      >
    </dd>
  </dl>
</template>
<script>
const EVENT_BUTTON_CLICK = 'on-button-click';
export default {
  name: 'GoodsCard',
  props: {
    goodsItem: {
      type: Object,
      default: () => {}
    },
    index: {
      type: Number
    }
  },
  methods: {
    handleProgressByStatus(item) {
      if (!item) return 0;
      let percentage = 0;
      const { showSaleCount, goodsCount } = item;
      percentage = (goodsCount / (goodsCount + showSaleCount)) * 100;
      percentage = percentage < 0 ? 0 : percentage;
      // percentage = !this.topicCfg.hasStart ? 0 : percentage;
      return Math.round(percentage * 100) / 100;
    },
    onButtonClick() {
      this.$emit(EVENT_BUTTON_CLICK, this.goodsItem);
    }
  }
};
</script>
<style scoped lang="less">
.group-item {
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 12px 0;
  border-bottom: #d8d8d8 solid 1px;
  position: relative;
  &:last-of-type {
    border-bottom: none;
  }
  &-thumb {
    box-sizing: border-box;
    width: 108px;
    height: 108px;
    background-color: #f7f8f9;
    border-radius: 6px;
    overflow: hidden;
    position: relative;
    padding: 3px;
    margin-right: 8px;
    .cr-image {
      width: 100%;
      height: 100%;
    }
  }
  &-content {
    flex: 1;
    height: 100%;
  }
  &-tag {
    position: absolute;
    top: 0;
    left: 0;
    font-size: @font-size-12;
    color: @white;
    width: 45px;
    height: 18px;
    line-height: 18px;
    text-align: center;
    background-image: linear-gradient(269deg, #ff5d00 12%, #ff1900 86%);
    border-radius: 6px 0 6px 0;
  }
  &-title {
    text-overflow: ellipsis;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    line-height: 18px;
  }
  &-progress {
    width: 163px;
    overflow: hidden;
    border-radius: 5px;
    margin-top: 4px;
  }
  &-already {
    font-size: @font-size-12;
    color: #999999;
    margin-top: 4px;
    margin-bottom: 7px;
  }
  &-price {
    font-size: @font-size-14;
    color: #f70d0d;
    margin-bottom: 4px;
    font-weight: bold;
  }
  &-sup {
    font-size: @font-size-18;
  }

  &-delprice {
    color: #999999;
    font-size: @font-size-12;
  }
  .cr-button {
    width: 90px;
    height: 28px;
    line-height: 28px;
    border-radius: 15px;
    position: absolute;
    bottom: 12px;
    right: 0;
  }

  &.disabled {
    opacity: 0.3;
    .group-item-price {
      color: #000;
    }
  }
}
</style>
