diff --git a/components/UiButton.vue b/components/UiButton.vue index b1b823b..aae9a67 100644 --- a/components/UiButton.vue +++ b/components/UiButton.vue @@ -72,6 +72,7 @@ export default { height: 28px; padding: 0 10px; color: #FF512B; + background: #FFFFFF;; } &__yellow_panel{ background:#FF512B; diff --git a/pages/seckill/index.vue b/pages/seckill/index.vue index 3be6f4e..836bc8d 100644 --- a/pages/seckill/index.vue +++ b/pages/seckill/index.vue @@ -50,10 +50,15 @@ @click="onJumpGoodsDetail(item.productId)" class="seckill-products-wrap" > - +
+ +
+ 已售罄 +
+

{{ item.productName }}

@@ -64,10 +69,21 @@ class="products-wrap-content__footer flex flex-middle flex-between" > - + +
@@ -122,6 +138,7 @@ export default { seckillTime: 0, // 秒杀时间 seckillEndVisible: false, //秒杀结束弹窗 seckillStatus: SECKILL_STATUS.NOT_START, // 当前秒杀时间段状态 + inProgressId: 0, // 秒杀中的活动id }; }, computed: { @@ -136,6 +153,11 @@ export default { second: second < 10 ? `0${second}` : `${second}`, }; }, + goodsBtnText() { + return this.query.activityTimeId === this.inProgressId + ? "立即开抢" + : "即将开抢"; + }, }, watch: { // 切换秒杀时间段 @@ -186,10 +208,16 @@ export default { if (result && result.length > 0) { this.tabList = result; const inProgressItem = result.find((item) => item.isInProgress); - this.query.activityTimeId = - (inProgressItem && inProgressItem.id) || result[0].id; + if (inProgressItem) { + this.inProgressId = inProgressItem.id; + this.query.activityTimeId = inProgressItem.id; + } else { + this.query.activityTimeId = result[0].id; + } this.getGoodsList(); + return; } + this.seckillEndVisible = true; }, async getGoodsList() { this.loading = true; @@ -197,7 +225,17 @@ export default { this.loading = false; if (result) { this.total = result.total; - this.goodsList = result.records; + this.goodsList = result.records.map((item) => { + // 售出数量 + const saleNumber = item.number - item.stock; + return { + ...item, + percentage: + saleNumber === 0 + ? 0 + : (saleNumber / item.number).toFixed(2) * 100, + }; + }); } }, @@ -346,8 +384,25 @@ export default { box-shadow: 0px 0px 10px 1px rgba(0, 0, 0, 0.1); } .seckill-products-wrap__cover { + position: relative; width: 100%; height: 288px; + img { + width: 100%; + height: 100%; + } + .products-wrap-cover__sold { + position: absolute; + width: 110px; + height: 110px; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + background: rgba(0, 0, 0, 0.5); + font-size: 24px; + color: #ffffff; + border-radius: 50%; + } } .seckill-products-wrap__content { padding: 20px 16px; @@ -387,6 +442,10 @@ export default { background: #ff512b; font-size: 14px; color: #ffffff; + &--gray { + color: #999999; + background: #eeeeee; + } } } }