You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
	
	
		
		
			
	
    
		
			
				
					
						                                                                                                                                             | 
						 | 
						<!-- 拼团活动参团记录卡片 --><template>  <view v-if="state.list.length > 0" class="groupon-list detail-card ss-p-x-20">    <view class="join-activity ss-flex ss-row-between ss-m-t-30">      <!-- todo: 接口缺少总数 -->      <view class="">已有{{ state.list.length }}人参与活动</view>      <text class="cicon-forward"></text>    </view>    <view      v-for="(record, index) in state.list"      @tap="sheep.$router.go('/pages/activity/groupon/detail', { id: record.id })"      :key="index"      class="ss-m-t-40 ss-flex ss-row-between border-bottom ss-p-b-30"    >      <view class="ss-flex ss-col-center">        <image :src="sheep.$url.cdn(record.avatar)" class="user-avatar"></image>        <view class="user-nickname ss-m-l-20 ss-line-1">{{ record.nickname }}</view>      </view>      <view class="ss-flex ss-col-center">        <view class="ss-flex-col ss-col-bottom ss-m-r-20">          <view class="title ss-flex ss-m-b-14">            还差            <view class="num">{{ record.userSize - record.userCount }}人</view>            成团          </view>          <view class="end-time">{{ endTime(record.expireTime) }}</view>        </view>        <view class="">          <button class="ss-reset-button go-btn" @tap.stop="onJoinGroupon(record)"> 去参团 </button>        </view>      </view>    </view>  </view></template>
<script setup>  import { onMounted, reactive } from 'vue';  import sheep from '@/sheep';  import { useDurationTime } from '@/sheep/hooks/useGoods';  import CombinationApi from "@/sheep/api/promotion/combination";
  const props = defineProps({    modelValue: {      type: Object,      default() {},    },  });  const state = reactive({    list: [],  });
  // 去参团
  const emits = defineEmits(['join']);  function onJoinGroupon(record) {    emits('join', record);  }
  // 结束时间或状态
  function endTime(time) {    const durationTime = useDurationTime(time);
    if (durationTime.ms <= 0) {      return '该团已解散';    }
    let timeText = '剩余 ';    timeText += `${durationTime.h}时`;    timeText += `${durationTime.m}分`;    timeText += `${durationTime.s}秒`;    return timeText;  }
  // 初始化
  onMounted(async () => {    // 查询参团记录
    // status = 0 表示未成团
    const { data } = await CombinationApi.getHeadCombinationRecordList(props.modelValue.id, 0 , 10);    state.list = data;  });</script>
<style lang="scss" scoped>  .detail-card {    background-color: $white;    margin: 14rpx 20rpx;    border-radius: 10rpx;    overflow: hidden;  }  .groupon-list {    .join-activity {      font-size: 28rpx;      font-weight: 500;      color: #999999;
      .cicon-forward {        font-weight: 400;      }    }
    .user-avatar {      width: 60rpx;      height: 60rpx;      background: #ececec;      border-radius: 60rpx;    }
    .user-nickname {      font-size: 28rpx;      font-weight: 500;      color: #333333;      width: 160rpx;    }
    .title {      font-size: 24rpx;      font-weight: 500;      color: #666666;
      .num {        color: #ff6000;      }    }
    .end-time {      font-size: 24rpx;      font-weight: 500;      color: #999999;    }
    .go-btn {      width: 140rpx;      height: 60rpx;      background: linear-gradient(90deg, #ff6000 0%, #fe832a 100%);      border-radius: 30rpx;      color: #fff;      font-weight: 500;      font-size: 26rpx;      line-height: normal;    }  }</style>
  |