秒杀细节

master
gongfuxiang 2025-03-30 21:08:50 +08:00
parent 68c3dca9a9
commit 7b36a53faf
1 changed files with 55 additions and 54 deletions

View File

@ -1,63 +1,65 @@
<template>
<view :class="theme_view">
<component-nav-back :propFixed="false" :propStyle="'background: url(' + (current.header_bg || seckill_static_url + 'app/header-bg.png')+') top/100% no-repeat;background-size:100% 100%;'">
<template slot="right" class="flex-1 flex-width seckill-right-title">
<view class="flex-1 seckill-right-title tc">
<image :src="current.header_logo || seckill_static_url + 'app/header-logo.png'" mode="widthFix" class="title pr top-md"></image>
</view>
</template>
<template v-if="periods_list.length > 0" slot="content">
<!-- 秒杀时段 -->
<scroll-view :scroll-x="true" :scroll-with-animation="true" :scroll-into-view="'one-nav-item-' + nav_active_index" class="top-nav-scroll wh-auto">
<view class="nav_seckill flex-row flex-nowrap cr-white tc">
<view v-for="(item, index) in periods_list" :key="index" class="item text-size-xss" :class="nav_active_index === index ? 'active' : ''" :id="'one-nav-item-' + index" :data-index="index" :data-text="item.time.time_first_text" :data-status="item.time.status" @tap="nav_event">
<view class="time text-size-lg">{{ item.name }}</view>
<view class="state text-size-xs round" :class="nav_active_index === index ? 'cr-red' : ''">{{ item.time.msg }}</view>
</view>
<view :class="theme_view">
<block v-if="data_list_loding_status == 3">
<component-nav-back :propFixed="false" :propStyle="'background: url(' + current.header_bg +') top/100% no-repeat;background-size:100% 100%;'">
<template slot="right" class="flex-1 flex-width seckill-right-title">
<view class="flex-1 seckill-right-title tc">
<image :src="current.header_logo" mode="widthFix" class="title pr top-md"></image>
</view>
</scroll-view>
</template>
</component-nav-back>
<scroll-view v-if="periods_list.length > 0" :scroll-top="scroll_top" scroll-y="true" class="scroll-y" @scroll="scroll_event" :style="'height: calc(100vh - 210rpx - ' + (status_bar_height + 5) + 'px);'">
<view class="padding-horizontal-main padding-top-main">
<!-- 基础信息倒计时 -->
<view class="oh spacing-mb flex-row jc-sb align-c">
<view>
<text :class="'va-m text-size-xs fw-b cr-blak ' + (is_valid == 1 ? 'cr-base' : 'cr-red')">{{ time_first_text }}</text>
<view v-if="is_valid == 1" class="dis-inline-block va-m margin-left-sm">
<view v-for="(item, index) in periods_list" :key="index">
<view v-show="nav_active_index === index">
<component-countdown :propHour="item.time.hours" :propMinute="item.time.minutes" :propSecond="item.time.seconds" :propTimeBackgroundColor="seckill_status === 1 ? '#E22C08' : '#333333'"></component-countdown>
</template>
<template v-if="periods_list.length > 0" slot="content">
<!-- 秒杀时段 -->
<scroll-view :scroll-x="true" :scroll-with-animation="true" :scroll-into-view="'one-nav-item-' + nav_active_index" class="top-nav-scroll wh-auto">
<view class="nav_seckill flex-row flex-nowrap cr-white tc">
<view v-for="(item, index) in periods_list" :key="index" class="item text-size-xss" :class="nav_active_index === index ? 'active' : ''" :id="'one-nav-item-' + index" :data-index="index" :data-text="item.time.time_first_text" :data-status="item.time.status" @tap="nav_event">
<view class="time text-size-lg">{{ item.name }}</view>
<view class="state text-size-xs round" :class="nav_active_index === index ? 'cr-red' : ''">{{ item.time.msg }}</view>
</view>
</view>
</scroll-view>
</template>
</component-nav-back>
<scroll-view v-if="periods_list.length > 0" :scroll-top="scroll_top" scroll-y="true" class="scroll-y" @scroll="scroll_event" :style="'height: calc(100vh - 210rpx - ' + (status_bar_height + 5) + 'px);'">
<view class="padding-horizontal-main padding-top-main">
<!-- 基础信息倒计时 -->
<view class="oh spacing-mb flex-row jc-sb align-c">
<view>
<text :class="'va-m text-size-xs fw-b cr-blak ' + (is_valid == 1 ? 'cr-base' : 'cr-red')">{{ time_first_text }}</text>
<view v-if="is_valid == 1" class="dis-inline-block va-m margin-left-sm">
<view v-for="(item, index) in periods_list" :key="index">
<view v-show="nav_active_index === index">
<component-countdown :propHour="item.time.hours" :propMinute="item.time.minutes" :propSecond="item.time.seconds" :propTimeBackgroundColor="seckill_status === 1 ? '#E22C08' : '#333333'"></component-countdown>
</view>
</view>
</view>
</view>
<view v-if="(data_base.content_notice || null) != null && data_base.content_notice.length > 0" class="text-size-xs cr-blak" @tap="quick_open_event">{{$t('index.index.516559')}}<iconfont name="icon-miaosha-hdgz" size="26rpx" propClass="margin-left-xs pr top-xs" color="#999"></iconfont>
</view>
</view>
<view v-if="(data_base.content_notice || null) != null && data_base.content_notice.length > 0" class="text-size-xs cr-blak" @tap="quick_open_event">{{$t('index.index.516559')}}<iconfont name="icon-miaosha-hdgz" size="26rpx" propClass="margin-left-xs pr top-xs" color="#999"></iconfont>
</view>
</view>
<!-- 商品 -->
<view v-if="goods.length > 0">
<component-goods-list :propData="{ style_type: 1, goods_list: goods }" :propCurrencySymbol="currency_symbol" :propGridBtnConfig="grid_btn_config" :propIsOpenGridBtnSet="isOpenGridBtnSet" propPriceField="seckill_min_price"></component-goods-list>
<!-- 商品 -->
<view v-if="goods.length > 0">
<component-goods-list :propData="{ style_type: 1, goods_list: goods }" :propCurrencySymbol="currency_symbol" :propGridBtnConfig="grid_btn_config" :propIsOpenGridBtnSet="isOpenGridBtnSet" propPriceField="seckill_min_price"></component-goods-list>
</view>
<view v-else>
<!-- 提示信息 -->
<component-no-data propStatus="0" :propMsg="$t('detail.detail.5knxg6')"></component-no-data>
</view>
</view>
<view v-else>
<!-- 提示信息 -->
<component-no-data propStatus="0" :propMsg="$t('detail.detail.5knxg6')"></component-no-data>
</view>
</view>
<!-- 结尾 -->
<component-bottom-line :propStatus="data_bottom_line_status"></component-bottom-line>
<!-- 弹窗 -->
<component-popup v-if="(data_base.content_notice || null) != null && data_base.content_notice.length > 0" :propShow="popup_status" :propIsBar="propIsBar" propPosition="bottom" @onclose="quick_close_event">
<view class="rule">
<view class="title cr-black text-size-md fw-b margin-bottom-main tc">{{$t('index.index.516559')}}</view>
<scroll-view :scroll-y="true" class="item">
<view v-for="(item, index) in data_base.content_notice" :key="index" class="cr-grey text-size-md">{{ item }}</view>
</scroll-view>
<button type="default" class="bg-main cr-white round text-size-md pa bottom-0 left-0 right-0" @tap="quick_close_event">{{$t('index.index.qbi72m')}}</button>
</view>
</component-popup>
</scroll-view>
<!-- 结尾 -->
<component-bottom-line :propStatus="data_bottom_line_status"></component-bottom-line>
<!-- 弹窗 -->
<component-popup v-if="(data_base.content_notice || null) != null && data_base.content_notice.length > 0" :propShow="popup_status" :propIsBar="propIsBar" propPosition="bottom" @onclose="quick_close_event">
<view class="rule">
<view class="title cr-black text-size-md fw-b margin-bottom-main tc">{{$t('index.index.516559')}}</view>
<scroll-view :scroll-y="true" class="item">
<view v-for="(item, index) in data_base.content_notice" :key="index" class="cr-grey text-size-md">{{ item }}</view>
</scroll-view>
<button type="default" class="bg-main cr-white round text-size-md pa bottom-0 left-0 right-0" @tap="quick_close_event">{{$t('index.index.qbi72m')}}</button>
</view>
</component-popup>
</scroll-view>
</block>
<block v-else>
<!-- 提示信息 -->
<component-no-data :propStatus="data_list_loding_status" :propMsg="data_list_loding_msg"></component-no-data>
@ -76,7 +78,6 @@
import componentBottomLine from '@/components/bottom-line/bottom-line';
import componentGoodsList from '@/components/goods-list/goods-list';
import componentPopup from '@/components/popup/popup';
var seckill_static_url = app.globalData.get_static_url('seckill', true);
export default {
data() {
return {
@ -216,7 +217,7 @@
goods: goods,
is_valid: is_valid,
data_list_loding_msg: '',
data_list_loding_status: 0,
data_list_loding_status: (periods_list.length > 0) ? 3 : 0,
data_bottom_line_status: goods.length > 0,
});
if ((this.data_base || null) != null) {