dm-design/用户端APP/福利专区.html

1995 lines
71 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>用户福利中心</title>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Hiragino Sans GB', sans-serif;
background: linear-gradient(180deg, #ff6b35 0%, #f7931e 50%, #f5f5f5 50%);
min-height: 100vh;
}
/* 状态栏 */
.status-bar {
background: #ff6b35;
color: white;
padding: 8px 20px;
display: flex;
justify-content: space-between;
align-items: center;
font-size: 16px;
font-weight: bold;
}
.status-icons {
display: flex;
gap: 8px;
font-size: 14px;
}
/* 头部区域 */
.header {
background: linear-gradient(180deg, #ff6b35 0%, #f7931e 100%);
padding: 15px 20px 25px;
}
.page-title {
color: white;
font-size: 20px;
font-weight: bold;
text-align: center;
margin-bottom: 15px;
}
.back-btn {
position: absolute;
left: 20px;
top: 45px;
color: white;
font-size: 18px;
cursor: pointer;
}
/* 积分余额 */
.points-balance {
background: rgba(255, 255, 255, 0.2);
border-radius: 15px;
padding: 15px 20px;
margin-bottom: 20px;
color: white;
text-align: center;
}
.points-amount {
font-size: 28px;
font-weight: bold;
margin-bottom: 5px;
}
.points-label {
font-size: 14px;
opacity: 0.9;
}
/* 主要内容区域 */
.main-content {
background: #f5f5f5;
border-radius: 20px 20px 0 0;
margin-top: -15px;
padding: 20px;
min-height: calc(100vh - 200px);
}
/* 专区标签 */
.section-tabs {
display: flex;
justify-content: center;
gap: 20px;
margin-bottom: 20px;
background: white;
border-radius: 15px;
padding: 5px;
}
.section-tab {
flex: 1;
text-align: center;
padding: 12px 0;
border-radius: 10px;
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: all 0.3s ease;
}
.section-tab.active {
background: #ff6b35;
color: white;
}
.section-tab:not(.active) {
color: #666;
}
/* 专区内容 */
.section-content {
display: none;
}
.section-content.active {
display: block;
}
/* 积分专区tabs */
.points-tabs {
display: flex;
justify-content: center;
gap: 20px;
margin-bottom: 20px;
background: white;
border-radius: 15px;
padding: 5px;
}
.points-tab {
flex: 1;
text-align: center;
padding: 12px 0;
border-radius: 10px;
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: all 0.3s ease;
}
.points-tab.active {
background: #ff6b35;
color: white;
}
.points-tab:not(.active) {
color: #666;
}
/* 积分内容区域 */
.points-content {
display: none;
}
.points-content.active {
display: block;
}
/* 下拉提示 */
.load-more-tip {
text-align: center;
color: #999;
font-size: 12px;
margin-top: 20px;
padding: 10px;
opacity: 0.7;
}
/* 积分订单样式 */
.points-orders-container {
background: white;
border-radius: 15px;
padding: 20px;
margin-bottom: 15px;
}
.points-order-item {
background: #f8f9fa;
border-radius: 12px;
padding: 15px;
margin-bottom: 15px;
border: 1px solid #e9ecef;
}
.points-order-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 15px;
padding-bottom: 10px;
border-bottom: 1px solid #e9ecef;
}
.points-order-no {
font-size: 14px;
font-weight: bold;
color: #333;
}
.points-order-status {
font-size: 12px;
padding: 4px 8px;
border-radius: 12px;
font-weight: 500;
}
.points-order-status.completed {
background: #f6ffed;
color: #52c41a;
}
.points-order-status.pending {
background: #fff7e6;
color: #fa8c16;
}
.points-order-status.processing {
background: #e6f7ff;
color: #1890ff;
}
.points-order-info {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 10px;
}
.points-order-detail {
flex: 1;
}
.points-order-time {
font-size: 12px;
color: #666;
margin-bottom: 5px;
}
.points-order-fees {
font-size: 12px;
color: #666;
}
.points-order-total {
text-align: right;
color: #ff6b35;
font-size: 16px;
font-weight: bold;
}
.points-order-expand {
text-align: center;
margin-top: 10px;
}
.expand-toggle {
background: none;
border: 1px solid #ff6b35;
color: #ff6b35;
padding: 5px 15px;
border-radius: 15px;
font-size: 12px;
cursor: pointer;
transition: all 0.3s;
}
.expand-toggle:hover {
background: #ff6b35;
color: white;
}
.points-order-stores {
display: none;
margin-top: 15px;
padding-top: 15px;
border-top: 1px solid #e9ecef;
}
.points-order-stores.expanded {
display: block;
}
.points-store-item {
background: white;
border-radius: 8px;
padding: 12px;
margin-bottom: 10px;
border: 1px solid #e9ecef;
}
.points-store-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 10px;
font-size: 13px;
font-weight: 500;
}
.points-store-name {
color: #333;
}
.points-product-list {
display: none;
}
.points-product-list.expanded {
display: block;
}
.points-product-item {
display: flex;
align-items: center;
padding: 8px 0;
border-bottom: 1px solid #f0f0f0;
}
.points-product-item:last-child {
border-bottom: none;
}
.points-product-image {
width: 40px;
height: 40px;
border-radius: 6px;
background: linear-gradient(135deg, #ff6b35, #f7931e);
display: flex;
align-items: center;
justify-content: center;
font-size: 18px;
margin-right: 10px;
flex-shrink: 0;
}
.points-product-info {
flex: 1;
min-width: 0;
}
.points-product-name {
font-size: 12px;
color: #333;
margin-bottom: 2px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.points-product-specs {
font-size: 11px;
color: #666;
display: flex;
gap: 10px;
}
.points-product-price {
text-align: right;
font-size: 12px;
color: #ff6b35;
font-weight: 500;
}
.points-product-points {
font-size: 11px;
color: #666;
margin-top: 2px;
}
.store-expand-btn {
background: none;
border: 1px solid #ddd;
color: #666;
padding: 2px 8px;
border-radius: 10px;
font-size: 11px;
cursor: pointer;
}
/* 积分专区样式 */
.points-section {
background: white;
border-radius: 15px;
padding: 20px;
margin-bottom: 15px;
}
.points-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 15px;
}
.points-title {
font-size: 16px;
font-weight: bold;
color: #333;
}
.points-more {
font-size: 12px;
color: #ff6b35;
cursor: pointer;
}
/* 积分商品网格 */
.points-grid {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 15px;
}
.points-item {
background: #f8f9fa;
border-radius: 12px;
padding: 15px;
text-align: center;
position: relative;
}
.points-item-image {
width: 60px;
height: 60px;
border-radius: 50%;
margin: 0 auto 10px;
background: linear-gradient(135deg, #ff6b35, #f7931e);
display: flex;
align-items: center;
justify-content: center;
font-size: 24px;
}
.points-item-name {
font-size: 13px;
color: #333;
margin-bottom: 8px;
line-height: 1.3;
}
.points-item-points {
font-size: 14px;
color: #ff6b35;
font-weight: bold;
margin-bottom: 5px;
}
.points-item-original {
font-size: 12px;
color: #999;
text-decoration: line-through;
}
.points-item-store {
font-size: 11px;
color: #666;
margin-bottom: 10px;
}
.exchange-btn {
background: #ff6b35;
color: white;
border: none;
border-radius: 15px;
padding: 6px 12px;
font-size: 12px;
cursor: pointer;
}
/* 秒杀专区样式 */
.seckill-section {
background: white;
border-radius: 15px;
padding: 20px;
margin-bottom: 15px;
}
.seckill-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 15px;
}
.seckill-title {
font-size: 16px;
font-weight: bold;
color: #333;
}
.seckill-timer {
background: #ff4444;
color: white;
padding: 4px 8px;
border-radius: 8px;
font-size: 12px;
}
/* 秒杀时间段tabs容器 */
.seckill-tabs-container {
display: flex;
align-items: center;
gap: 15px;
margin-bottom: 20px;
}
/* 刷新按钮样式 */
.refresh-btn {
display: flex;
flex-direction: column;
align-items: center;
background: #ff4444;
color: white;
border: none;
border-radius: 12px;
padding: 10px;
font-size: 10px;
cursor: pointer;
transition: all 0.3s ease;
min-width: 50px;
box-shadow: 0 2px 4px rgba(255, 68, 68, 0.3);
}
.refresh-btn:hover {
background: #e63939;
transform: translateY(-1px);
box-shadow: 0 4px 8px rgba(255, 68, 68, 0.4);
}
.refresh-btn:active {
transform: translateY(0);
}
.refresh-btn span:first-child {
font-size: 18px;
margin-bottom: 2px;
}
/* 秒杀时间段tabs */
.seckill-tabs {
display: flex;
justify-content: center;
flex: 1;
gap: 20px;
background: white;
border-radius: 15px;
padding: 5px;
}
.seckill-tab {
flex: 1;
text-align: center;
padding: 12px 0;
border-radius: 10px;
font-size: 14px;
font-weight: 500;
cursor: pointer;
transition: all 0.3s ease;
position: relative;
}
.seckill-tab.active {
background: #ff4444;
color: white;
}
.seckill-tab:not(.active) {
color: #999;
}
/* 秒杀时间段内容 */
.seckill-content {
display: none;
}
.seckill-content.active {
display: block;
}
/* 秒杀商品 */
.seckill-item {
background: #fff5f5;
border: 1px solid #ffcccc;
border-radius: 12px;
padding: 15px;
margin-bottom: 15px;
position: relative;
}
.seckill-badge {
position: absolute;
top: 10px;
right: 10px;
background: #ff4444;
color: white;
padding: 2px 8px;
border-radius: 10px;
font-size: 10px;
font-weight: bold;
}
.seckill-item-header {
display: flex;
gap: 15px;
margin-bottom: 15px;
}
.seckill-item-image {
width: 80px;
height: 80px;
border-radius: 8px;
background: linear-gradient(135deg, #ff6b35, #f7931e);
display: flex;
align-items: center;
justify-content: center;
font-size: 30px;
flex-shrink: 0;
}
.seckill-item-info {
flex: 1;
}
.seckill-item-name {
font-size: 14px;
color: #333;
margin-bottom: 5px;
font-weight: 500;
}
.seckill-item-spec {
font-size: 12px;
color: #666;
margin-bottom: 5px;
}
.seckill-item-store {
font-size: 11px;
color: #999;
margin-bottom: 8px;
}
.seckill-price-section {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 10px;
}
.seckill-price {
color: #ff4444;
font-size: 16px;
font-weight: bold;
}
.seckill-original-price {
font-size: 12px;
color: #999;
text-decoration: line-through;
}
.seckill-progress {
background: #f0f0f0;
border-radius: 10px;
height: 8px;
overflow: hidden;
margin-bottom: 5px;
}
.seckill-progress-bar {
background: #ff4444;
height: 100%;
border-radius: 10px;
}
.seckill-stock {
font-size: 11px;
color: #666;
margin-bottom: 10px;
}
.seckill-timing {
display: flex;
justify-content: space-between;
font-size: 11px;
color: #666;
margin-bottom: 10px;
}
.seckill-btn {
background: #ff4444;
color: white;
border: none;
border-radius: 15px;
padding: 8px 20px;
font-size: 12px;
cursor: pointer;
width: 100%;
}
/* 预定专区样式 */
.reservation-section {
background: white;
border-radius: 15px;
padding: 20px;
margin-bottom: 15px;
}
.reservation-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 15px;
}
.reservation-title {
font-size: 16px;
font-weight: bold;
color: #333;
}
.reservation-explain {
background: #e8f4fd;
border-radius: 10px;
padding: 15px;
margin-bottom: 20px;
font-size: 13px;
color: #333;
line-height: 1.5;
}
.reservation-explain-title {
font-weight: bold;
margin-bottom: 5px;
color: #2196f3;
}
/* 预定商品 */
.reservation-item {
background: #f0f8ff;
border: 1px solid #b3d9ff;
border-radius: 12px;
padding: 15px;
margin-bottom: 15px;
position: relative;
}
.reservation-badge {
position: absolute;
top: 10px;
right: 10px;
background: #2196f3;
color: white;
padding: 2px 8px;
border-radius: 10px;
font-size: 10px;
font-weight: bold;
}
.reservation-item-header {
display: flex;
gap: 15px;
margin-bottom: 15px;
}
.reservation-item-image {
width: 80px;
height: 80px;
border-radius: 8px;
background: linear-gradient(135deg, #2196f3, #64b5f6);
display: flex;
align-items: center;
justify-content: center;
font-size: 30px;
flex-shrink: 0;
}
.reservation-item-info {
flex: 1;
}
.reservation-item-name {
font-size: 14px;
color: #333;
margin-bottom: 5px;
font-weight: 500;
}
.reservation-item-spec {
font-size: 12px;
color: #666;
margin-bottom: 5px;
}
.reservation-item-store {
font-size: 11px;
color: #999;
margin-bottom: 8px;
}
.reservation-pricing {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 10px;
}
.reservation-price-section {
flex: 1;
}
.reservation-price {
color: #2196f3;
font-size: 16px;
font-weight: bold;
}
.reservation-original-price {
font-size: 12px;
color: #999;
text-decoration: line-through;
}
.reservation-discount {
background: #e3f2fd;
color: #1976d2;
padding: 2px 6px;
border-radius: 6px;
font-size: 11px;
font-weight: bold;
}
.reservation-schedule {
display: flex;
justify-content: space-between;
font-size: 11px;
color: #666;
margin-bottom: 10px;
}
.reservation-schedule-item {
text-align: center;
flex: 1;
}
.reservation-schedule-label {
font-weight: bold;
margin-bottom: 2px;
}
.reservation-btn {
background: #2196f3;
color: white;
border: none;
border-radius: 15px;
padding: 8px 20px;
font-size: 12px;
cursor: pointer;
width: 100%;
}
/* 底部导航 */
.bottom-nav {
background: white;
display: flex;
justify-content: space-around;
padding: 10px 0 25px;
border-top: 1px solid #eee;
margin-top: 20px;
}
.nav-item {
display: flex;
flex-direction: column;
align-items: center;
color: #999;
font-size: 12px;
cursor: pointer;
}
.nav-item.active {
color: #ff6b35;
}
.nav-icon {
width: 25px;
height: 25px;
margin-bottom: 5px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 18px;
}
/* 悬浮购物车图标 */
.floating-cart {
position: fixed;
bottom: 20px;
right: 20px;
width: 60px;
height: 60px;
background: #ff6b35;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 28px;
color: white;
box-shadow: 0 4px 12px rgba(255, 107, 53, 0.4);
cursor: pointer;
z-index: 1000;
transition: all 0.3s ease;
}
.floating-cart:hover {
transform: scale(1.1);
box-shadow: 0 6px 20px rgba(255, 107, 53, 0.6);
}
.floating-cart.bounce {
animation: bounce 0.6s ease;
}
.cart-badge {
position: absolute;
top: -5px;
right: -5px;
background: #ff4444;
color: white;
width: 24px;
height: 24px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
font-size: 12px;
font-weight: bold;
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}
.cart-badge.hidden {
display: none;
}
@keyframes bounce {
0%, 20%, 50%, 80%, 100% {
transform: translateY(0);
}
40% {
transform: translateY(-10px);
}
60% {
transform: translateY(-5px);
}
}
</style>
</head>
<body>
<!-- 状态栏 -->
<div class="status-bar">
<div>09:15</div>
<div class="status-icons">
<span>🔵</span>
<span>📶</span>
<span>📶</span>
<span>🔋 52%</span>
</div>
</div>
<!-- 头部区域 -->
<div class="header">
<div class="back-btn"></div>
<div class="page-title">福利专区</div>
</div>
<!-- 主要内容区域 -->
<div class="main-content">
<!-- 专区标签 -->
<div class="section-tabs">
<div class="section-tab active" onclick="switchTab('points')">积分专区</div>
<div class="section-tab" onclick="switchTab('seckill')">秒杀专区</div>
<div class="section-tab" onclick="switchTab('reservation')">预定专区</div>
</div>
<!-- 积分专区 -->
<div id="points" class="section-content active">
<!-- 积分专区tabs -->
<div class="points-tabs">
<div class="points-tab active" onclick="switchPointsTab('exchange')">积分换购</div>
<div class="points-tab" onclick="switchPointsTab('discount')">积分优惠购</div>
<div class="points-tab" onclick="switchPointsTab('orders')">积分订单</div>
</div>
<!-- 积分换购内容 -->
<div id="exchange" class="points-content active">
<div class="points-grid">
<div class="points-item">
<div class="points-item-image">🥛</div>
<div class="points-item-name">有机纯牛奶 250ml</div>
<div class="points-item-points">500积分</div>
<div class="points-item-original">原价 ¥8</div>
<div class="points-item-store">华清市场/华清超市</div>
<button class="exchange-btn" onclick="addToPointsCart(this)">添加到积分购物车</button>
</div>
<div class="points-item">
<div class="points-item-image">🍎</div>
<div class="points-item-name">红富士苹果 约500g</div>
<div class="points-item-points">800积分</div>
<div class="points-item-original">原价 ¥12</div>
<div class="points-item-store">新鲜市场/新鲜果园</div>
<button class="exchange-btn" onclick="addToPointsCart(this)">添加到积分购物车</button>
</div>
<div class="points-item">
<div class="points-item-image">🥖</div>
<div class="points-item-name">法式面包 300g</div>
<div class="points-item-points">600积分</div>
<div class="points-item-original">原价 ¥10</div>
<div class="points-item-store">烘焙市场/烘焙坊</div>
<button class="exchange-btn" onclick="addToPointsCart(this)">添加到积分购物车</button>
</div>
<div class="points-item">
<div class="points-item-image">🍵</div>
<div class="points-item-name">龙井茶 50g</div>
<div class="points-item-points">1200积分</div>
<div class="points-item-original">原价 ¥25</div>
<div class="points-item-store">茶叶市场/茶叶专营店</div>
<button class="exchange-btn" onclick="addToPointsCart(this)">添加到积分购物车</button>
</div>
</div>
<div class="load-more-tip">下滑展示更多</div>
</div>
<!-- 积分优惠购内容 -->
<div id="discount" class="points-content">
<div class="points-grid">
<div class="points-item">
<div class="points-item-image">🥩</div>
<div class="points-item-name">优质牛肉 500g</div>
<div class="points-item-points">300积分+¥45</div>
<div class="points-item-original">原价 ¥68</div>
<div class="points-item-store">华清市场/华清肉店</div>
<button class="exchange-btn" onclick="addToPointsCart(this)">添加到积分购物车</button>
</div>
<div class="points-item">
<div class="points-item-image">🍯</div>
<div class="points-item-name">纯天然蜂蜜 500g</div>
<div class="points-item-points">200积分+¥35</div>
<div class="points-item-original">原价 ¥48</div>
<div class="points-item-store">农家市场/农家特产</div>
<button class="exchange-btn" onclick="addToPointsCart(this)">添加到积分购物车</button>
</div>
<div class="points-item">
<div class="points-item-image">🧀</div>
<div class="points-item-name">进口奶酪 200g</div>
<div class="points-item-points">500积分+¥25</div>
<div class="points-item-original">原价 ¥45</div>
<div class="points-item-store">进口市场/进口食品店</div>
<button class="exchange-btn" onclick="addToPointsCart(this)">添加到积分购物车</button>
</div>
<div class="points-item">
<div class="points-item-image">🍫</div>
<div class="points-item-name">比利时巧克力 100g</div>
<div class="points-item-points">400积分+¥18</div>
<div class="points-item-original">原价 ¥32</div>
<div class="points-item-store">甜品市场/甜品屋</div>
<button class="exchange-btn" onclick="addToPointsCart(this)">添加到积分购物车</button>
</div>
</div>
<div class="load-more-tip">下滑展示更多</div>
</div>
<!-- 积分订单内容 -->
<div id="orders" class="points-content">
<div class="points-orders-container">
<!-- 积分订单列表 -->
<div class="points-orders-list" id="pointsOrdersList">
<!-- 订单数据将通过JavaScript动态生成 -->
</div>
</div>
<div class="load-more-tip">下滑展示更多</div>
</div>
</div>
<!-- 秒杀专区 -->
<div id="seckill" class="section-content">
<!-- 秒杀时间段tabs -->
<div class="seckill-tabs-container">
<button class="refresh-btn" onclick="refreshSeckill()">
<span>🔄</span>
<span>刷新</span>
</button>
<div class="seckill-tabs">
<div class="seckill-tab active" onclick="switchSeckillTab('10-12')">10:00-12:00</div>
<div class="seckill-tab" onclick="switchSeckillTab('14-16')">14:00-16:00</div>
<div class="seckill-tab" onclick="switchSeckillTab('16-18')">16:00-18:00</div>
<div class="seckill-tab" onclick="switchSeckillTab('20-22')">20:00-22:00</div>
</div>
</div>
<!-- 10:00-12:00时间段 -->
<div id="10-12" class="seckill-content active">
<div class="seckill-section">
<div class="seckill-header">
<div class="seckill-title">10:00-12:00 秒杀专场</div>
<div class="seckill-timer">距离结束 01:25:30</div>
</div>
<!-- 秒杀商品1 -->
<div class="seckill-item">
<div class="seckill-badge">正在秒杀</div>
<div class="seckill-item-header">
<div class="seckill-item-image">🍓</div>
<div class="seckill-item-info">
<div class="seckill-item-name">新鲜草莓 约500g</div>
<div class="seckill-item-spec">规格500g/份</div>
<div class="seckill-item-store">四季水果店(春申菜市场)</div>
<div class="seckill-price-section">
<div>
<div class="seckill-price">¥9.9</div>
<div class="seckill-original-price">原价 ¥28</div>
</div>
<div class="seckill-discount">3.5折</div>
</div>
</div>
</div>
<div class="seckill-progress">
<div class="seckill-progress-bar" style="width: 75%;"></div>
</div>
<div class="seckill-stock">已抢75件 剩余25件</div>
<div class="seckill-timing">
<div>开始时间10:00</div>
<div>结束时间12:00</div>
<div>总数量100件</div>
</div>
<button class="seckill-btn">立即秒杀</button>
</div>
<!-- 秒杀商品2 -->
<div class="seckill-item">
<div class="seckill-badge">正在秒杀</div>
<div class="seckill-item-header">
<div class="seckill-item-image">🥑</div>
<div class="seckill-item-info">
<div class="seckill-item-name">新鲜牛油果 2个装</div>
<div class="seckill-item-spec">规格2个/份</div>
<div class="seckill-item-store">精品果园(华径菜场)</div>
<div class="seckill-price-section">
<div>
<div class="seckill-price">¥12.9</div>
<div class="seckill-original-price">原价 ¥32</div>
</div>
<div class="seckill-discount">4.0折</div>
</div>
</div>
</div>
<div class="seckill-progress">
<div class="seckill-progress-bar" style="width: 60%;"></div>
</div>
<div class="seckill-stock">已抢30件 剩余20件</div>
<div class="seckill-timing">
<div>开始时间10:00</div>
<div>结束时间12:00</div>
<div>总数量50件</div>
</div>
<button class="seckill-btn">立即秒杀</button>
</div>
</div>
</div>
<!-- 14:00-16:00时间段 -->
<div id="14-16" class="seckill-content">
<div class="seckill-section">
<div class="seckill-header">
<div class="seckill-title">14:00-16:00 秒杀专场</div>
<div class="seckill-timer">即将开始 03:25:30</div>
</div>
<!-- 秒杀商品1 -->
<div class="seckill-item">
<div class="seckill-badge">即将开抢</div>
<div class="seckill-item-header">
<div class="seckill-item-image">🥩</div>
<div class="seckill-item-info">
<div class="seckill-item-name">精品牛排 200g</div>
<div class="seckill-item-spec">规格200g/份</div>
<div class="seckill-item-store">华清肉店(全季菜市场)</div>
<div class="seckill-price-section">
<div>
<div class="seckill-price">¥29.9</div>
<div class="seckill-original-price">原价 ¥68</div>
</div>
<div class="seckill-discount">4.4折</div>
</div>
</div>
</div>
<div class="seckill-progress">
<div class="seckill-progress-bar" style="width: 0%;"></div>
</div>
<div class="seckill-stock">总数量50件</div>
<div class="seckill-timing">
<div>开始时间14:00</div>
<div>结束时间16:00</div>
<div>总数量50件</div>
</div>
<button class="seckill-btn" disabled style="background: #ccc; cursor: not-allowed;">即将开抢</button>
</div>
<!-- 秒杀商品2 -->
<div class="seckill-item">
<div class="seckill-badge">即将开抢</div>
<div class="seckill-item-header">
<div class="seckill-item-image">🐟</div>
<div class="seckill-item-info">
<div class="seckill-item-name">挪威三文鱼 300g</div>
<div class="seckill-item-spec">规格300g/份</div>
<div class="seckill-item-store">海鲜专营店(华径菜场)</div>
<div class="seckill-price-section">
<div>
<div class="seckill-price">¥39.9</div>
<div class="seckill-original-price">原价 ¥89</div>
</div>
<div class="seckill-discount">4.5折</div>
</div>
</div>
</div>
<div class="seckill-progress">
<div class="seckill-progress-bar" style="width: 0%;"></div>
</div>
<div class="seckill-stock">总数量30件</div>
<div class="seckill-timing">
<div>开始时间14:00</div>
<div>结束时间16:00</div>
<div>总数量30件</div>
</div>
<button class="seckill-btn" disabled style="background: #ccc; cursor: not-allowed;">即将开抢</button>
</div>
</div>
</div>
<!-- 16:00-18:00时间段 -->
<div id="16-18" class="seckill-content">
<div class="seckill-section">
<div class="seckill-header">
<div class="seckill-title">16:00-18:00 秒杀专场</div>
<div class="seckill-timer">即将开始 05:25:30</div>
</div>
<!-- 秒杀商品1 -->
<div class="seckill-item">
<div class="seckill-badge">即将开抢</div>
<div class="seckill-item-header">
<div class="seckill-item-image">🍯</div>
<div class="seckill-item-info">
<div class="seckill-item-name">天然百花蜜 500g</div>
<div class="seckill-item-spec">规格500g/瓶</div>
<div class="seckill-item-store">农家特产店(华径菜场)</div>
<div class="seckill-price-section">
<div>
<div class="seckill-price">¥19.9</div>
<div class="seckill-original-price">原价 ¥48</div>
</div>
<div class="seckill-discount">4.1折</div>
</div>
</div>
</div>
<div class="seckill-progress">
<div class="seckill-progress-bar" style="width: 0%;"></div>
</div>
<div class="seckill-stock">总数量40件</div>
<div class="seckill-timing">
<div>开始时间16:00</div>
<div>结束时间18:00</div>
<div>总数量40件</div>
</div>
<button class="seckill-btn" style="background: #ccc; cursor: not-allowed;">即将开抢</button>
</div>
<!-- 秒杀商品2 -->
<div class="seckill-item">
<div class="seckill-badge">即将开抢</div>
<div class="seckill-item-header">
<div class="seckill-item-image">🥜</div>
<div class="seckill-item-info">
<div class="seckill-item-name">精选芹菜 500g</div>
<div class="seckill-item-spec">规格500g/份</div>
<div class="seckill-item-store">新鲜蔬菜店(春申菜市场)</div>
<div class="seckill-price-section">
<div>
<div class="seckill-price">¥5.9</div>
<div class="seckill-original-price">原价 ¥12</div>
</div>
<div class="seckill-discount">4.9折</div>
</div>
</div>
</div>
<div class="seckill-progress">
<div class="seckill-progress-bar" style="width: 0%;"></div>
</div>
<div class="seckill-stock">总数量80件</div>
<div class="seckill-timing">
<div>开始时间16:00</div>
<div>结束时间18:00</div>
<div>总数量80件</div>
</div>
<button class="seckill-btn" style="background: #ccc; cursor: not-allowed;">即将开抢</button>
</div>
</div>
</div>
<!-- 20:00-22:00时间段 -->
<div id="20-22" class="seckill-content">
<div class="seckill-section">
<div class="seckill-header">
<div class="seckill-title">20:00-22:00 秒杀专场</div>
<div class="seckill-timer">即将开始 09:25:30</div>
</div>
<!-- 秒杀商品1 -->
<div class="seckill-item">
<div class="seckill-badge">即将开抢</div>
<div class="seckill-item-header">
<div class="seckill-item-image">🧈</div>
<div class="seckill-item-info">
<div class="seckill-item-name">进口黄油 200g</div>
<div class="seckill-item-spec">规格200g/块</div>
<div class="seckill-item-store">进口食品店(全季菜市场)</div>
<div class="seckill-price-section">
<div>
<div class="seckill-price">¥15.9</div>
<div class="seckill-original-price">原价 ¥35</div>
</div>
<div class="seckill-discount">4.5折</div>
</div>
</div>
</div>
<div class="seckill-progress">
<div class="seckill-progress-bar" style="width: 0%;"></div>
</div>
<div class="seckill-stock">总数量60件</div>
<div class="seckill-timing">
<div>开始时间20:00</div>
<div>结束时间22:00</div>
<div>总数量60件</div>
</div>
<button class="seckill-btn" style="background: #ccc; cursor: not-allowed;">即将开抢</button>
</div>
<!-- 秒杀商品2 -->
<div class="seckill-item">
<div class="seckill-badge">即将开抢</div>
<div class="seckill-item-header">
<div class="seckill-item-image">🍇</div>
<div class="seckill-item-info">
<div class="seckill-item-name">新疆葡萄 1kg</div>
<div class="seckill-item-spec">规格1kg/份</div>
<div class="seckill-item-store">精品果园(华径菜场)</div>
<div class="seckill-price-section">
<div>
<div class="seckill-price">¥22.9</div>
<div class="seckill-original-price">原价 ¥45</div>
</div>
<div class="seckill-discount">5.1折</div>
</div>
</div>
</div>
<div class="seckill-progress">
<div class="seckill-progress-bar" style="width: 0%;"></div>
</div>
<div class="seckill-stock">总数量70件</div>
<div class="seckill-timing">
<div>开始时间20:00</div>
<div>结束时间22:00</div>
<div>总数量70件</div>
</div>
<button class="seckill-btn" style="background: #ccc; cursor: not-allowed;">即将开抢</button>
</div>
</div>
</div>
</div>
<!-- 预定专区 -->
<div id="reservation" class="section-content">
<div class="reservation-section">
<div class="reservation-header">
<div class="reservation-title">新品预定</div>
<div class="points-more">查看更多 ></div>
</div>
<!-- 预定说明 -->
<div class="reservation-explain">
<div class="reservation-explain-title">预定说明</div>
<div>商品预计某日开始上架销售,此时提前预定,可以享受折扣价格。预定成功后,商品上架时将优先发货。</div>
</div>
<!-- 预定商品1 -->
<div class="reservation-item">
<div class="reservation-badge">新品预定</div>
<div class="reservation-item-header">
<div class="reservation-item-image">🦀</div>
<div class="reservation-item-info">
<div class="reservation-item-name">阳澄湖大闸蟹 公4两 母3两</div>
<div class="reservation-item-spec">规格公4两母3两/对</div>
<div class="reservation-item-store">水产专营店(春申菜市场)</div>
<div class="reservation-pricing">
<div class="reservation-price-section">
<div class="reservation-price">预定价 ¥168</div>
<div class="reservation-original-price">上架价 ¥258</div>
</div>
<div class="reservation-discount">6.5折</div>
</div>
</div>
</div>
<div class="reservation-schedule">
<div class="reservation-schedule-item">
<div class="reservation-schedule-label">开始上架价格</div>
<div>¥258</div>
</div>
<div class="reservation-schedule-item">
<div class="reservation-schedule-label">预定上架时间</div>
<div>9月15日</div>
</div>
<div class="reservation-schedule-item">
<div class="reservation-schedule-label">上架销售价格</div>
<div>¥258</div>
</div>
<div class="reservation-schedule-item">
<div class="reservation-schedule-label">预定销售价格</div>
<div>¥168</div>
</div>
</div>
<button class="reservation-btn">立即预定</button>
</div>
<!-- 预定商品2 -->
<div class="reservation-item">
<div class="reservation-badge">新品预定</div>
<div class="reservation-item-header">
<div class="reservation-item-image">🍐</div>
<div class="reservation-item-info">
<div class="reservation-item-name">新疆香梨 约2kg</div>
<div class="reservation-item-spec">规格2kg/箱</div>
<div class="reservation-item-store">新鲜果园(华径菜场)</div>
<div class="reservation-pricing">
<div class="reservation-price-section">
<div class="reservation-price">预定价 ¥29.9</div>
<div class="reservation-original-price">上架价 ¥45</div>
</div>
<div class="reservation-discount">6.6折</div>
</div>
</div>
</div>
<div class="reservation-schedule">
<div class="reservation-schedule-item">
<div class="reservation-schedule-label">开始上架价格</div>
<div>¥45</div>
</div>
<div class="reservation-schedule-item">
<div class="reservation-schedule-label">预定上架时间</div>
<div>9月10日</div>
</div>
<div class="reservation-schedule-item">
<div class="reservation-schedule-label">上架销售价格</div>
<div>¥45</div>
</div>
<div class="reservation-schedule-item">
<div class="reservation-schedule-label">预定销售价格</div>
<div>¥29.9</div>
</div>
</div>
<button class="reservation-btn">立即预定</button>
</div>
<!-- 预定商品3 -->
<div class="reservation-item">
<div class="reservation-badge">新品预定</div>
<div class="reservation-item-header">
<div class="reservation-item-image">🧈</div>
<div class="reservation-item-info">
<div class="reservation-item-name">进口黄油 200g</div>
<div class="reservation-item-spec">规格200g/块</div>
<div class="reservation-item-store">进口食品店(全季菜市场)</div>
<div class="reservation-pricing">
<div class="reservation-price-section">
<div class="reservation-price">预定价 ¥18.8</div>
<div class="reservation-original-price">上架价 ¥32</div>
</div>
<div class="reservation-discount">5.9折</div>
</div>
</div>
</div>
<div class="reservation-schedule">
<div class="reservation-schedule-item">
<div class="reservation-schedule-label">开始上架价格</div>
<div>¥32</div>
</div>
<div class="reservation-schedule-item">
<div class="reservation-schedule-label">预定上架时间</div>
<div>9月8日</div>
</div>
<div class="reservation-schedule-item">
<div class="reservation-schedule-label">上架销售价格</div>
<div>¥32</div>
</div>
<div class="reservation-schedule-item">
<div class="reservation-schedule-label">预定销售价格</div>
<div>¥18.8</div>
</div>
</div>
<button class="reservation-btn">立即预定</button>
</div>
</div>
</div>
</div>
<!-- 底部导航 -->
<div class="bottom-nav">
<div class="nav-item" onclick="goToPage('home')">
<div class="nav-icon">🏠</div>
<span>首页</span>
</div>
<div class="nav-item" onclick="goToPage('message')">
<div class="nav-icon">💬</div>
<span>消息</span>
</div>
<div class="nav-item" onclick="goToPage('cart')">
<div class="nav-icon">🛒</div>
<span>购物车</span>
</div>
<div class="nav-item active" onclick="goToPage('profile')">
<div class="nav-icon">👤</div>
<span>我的</span>
</div>
</div>
<!-- 悬浮购物车图标 -->
<div class="floating-cart" id="floatingCart" onclick="goToPointsCart()">
<div class="cart-badge hidden" id="cartBadge">0</div>
🛒
</div>
<script>
// 积分购物车功能
let pointsCartCount = 0;
// 模拟积分订单数据
const pointsOrdersData = [
{
settlementOrderNo: 'SU2024010001',
status: '已完成',
statusClass: 'completed',
deliveryFee: 8.00,
packageFee: 2.00,
dispatchFee: 3.00,
totalFee: 13.00,
paymentTime: '2024-01-15 14:30:22',
storeOrders: [
{
storeOrderNo: 'SO2024010001',
storeName: '华清超市',
items: [
{
productOrderNo: 'PO2024010001',
productName: '有机纯牛奶 250ml',
productEmoji: '🥛',
originalPrice: 8.00,
productQuantity: 1,
pointsUsed: 500,
customerPayment: 0.00,
pointsType: '积分换购',
status: '已完成'
}
]
}
]
},
{
settlementOrderNo: 'SU2024010002',
status: '待备货',
statusClass: 'pending',
deliveryFee: 6.00,
packageFee: 1.50,
dispatchFee: 2.00,
totalFee: 9.50,
paymentTime: '2024-01-15 15:45:10',
storeOrders: [
{
storeOrderNo: 'SO2024010002',
storeName: '新鲜果园',
items: [
{
productOrderNo: 'PO2024010002',
productName: '红富士苹果 约500g',
productEmoji: '🍎',
originalPrice: 12.00,
productQuantity: 1,
pointsUsed: 800,
customerPayment: 0.00,
pointsType: '积分换购',
status: '待备货'
}
]
}
]
},
{
settlementOrderNo: 'SU2024010003',
status: '待取货',
statusClass: 'processing',
deliveryFee: 10.00,
packageFee: 3.00,
dispatchFee: 4.00,
totalFee: 17.00,
paymentTime: '2024-01-15 16:20:35',
storeOrders: [
{
storeOrderNo: 'SO2024010003',
storeName: '农家特产',
items: [
{
productOrderNo: 'PO2024010003',
productName: '纯天然蜂蜜 500g',
productEmoji: '🍯',
originalPrice: 48.00,
productQuantity: 1,
pointsUsed: 200,
customerPayment: 35.00,
pointsType: '积分优惠购',
status: '待取货'
}
]
}
]
}
];
// 页面切换功能
function switchTab(tabName) {
// 隐藏所有内容
const contents = document.querySelectorAll('.section-content');
contents.forEach(content => {
content.classList.remove('active');
});
// 移除所有标签的激活状态
const tabs = document.querySelectorAll('.section-tab');
tabs.forEach(tab => {
tab.classList.remove('active');
});
// 显示选中的内容
document.getElementById(tabName).classList.add('active');
// 激活选中的标签
event.target.classList.add('active');
// 只在积分专区显示购物车
const floatingCart = document.getElementById('floatingCart');
if (tabName === 'points') {
floatingCart.style.display = 'flex';
} else {
floatingCart.style.display = 'none';
}
}
// 积分专区tab切换功能
function switchPointsTab(tabName) {
// 隐藏所有积分内容
const contents = document.querySelectorAll('.points-content');
contents.forEach(content => {
content.classList.remove('active');
});
// 移除所有积分标签的激活状态
const tabs = document.querySelectorAll('.points-tab');
tabs.forEach(tab => {
tab.classList.remove('active');
});
// 显示选中的积分内容
document.getElementById(tabName).classList.add('active');
// 激活选中的积分标签
event.target.classList.add('active');
// 如果切换到积分订单tab渲染订单数据
if (tabName === 'orders') {
renderPointsOrders();
}
// 积分订单tab不显示购物车按钮
const floatingCart = document.getElementById('floatingCart');
if (tabName === 'orders') {
floatingCart.style.display = 'none';
} else {
floatingCart.style.display = 'flex';
}
}
// 渲染积分订单数据
function renderPointsOrders() {
const ordersList = document.getElementById('pointsOrdersList');
if (pointsOrdersData.length === 0) {
ordersList.innerHTML = '<div style="text-align: center; padding: 40px; color: #999;">暂无积分订单</div>';
return;
}
ordersList.innerHTML = pointsOrdersData.map(order => `
<div class="points-order-item">
<div class="points-order-header">
<div class="points-order-no">订单号:${order.settlementOrderNo}</div>
<div class="points-order-status ${order.statusClass}">${order.status}</div>
</div>
<div class="points-order-info">
<div class="points-order-detail">
<div class="points-order-time">${order.paymentTime}</div>
<div class="points-order-fees">配送费 ¥${order.deliveryFee.toFixed(2)} | 打包费 ¥${order.packageFee.toFixed(2)} | 调度费 ¥${order.dispatchFee.toFixed(2)}</div>
</div>
<div class="points-order-total">¥${order.totalFee.toFixed(2)}</div>
</div>
<div class="points-order-expand">
<button class="expand-toggle" onclick="toggleOrderDetails('${order.settlementOrderNo}')">
查看详情
</button>
</div>
<div class="points-order-stores" id="stores-${order.settlementOrderNo}">
${order.storeOrders.map(store => `
<div class="points-store-item">
<div class="points-store-header">
<div class="points-store-name">${store.storeName}</div>
<button class="store-expand-btn" onclick="toggleStoreProducts('${order.settlementOrderNo}', '${store.storeOrderNo}')">
商品详情
</button>
</div>
<div class="points-product-list" id="products-${order.settlementOrderNo}-${store.storeOrderNo}">
${store.items.map(item => `
<div class="points-product-item">
<div class="points-product-image">${item.productEmoji}</div>
<div class="points-product-info">
<div class="points-product-name">${item.productName}</div>
<div class="points-product-specs">
<span>数量: ${item.productQuantity}</span>
<span>${item.pointsType}</span>
</div>
</div>
<div class="points-product-price">
${item.customerPayment > 0 ? '¥' + item.customerPayment.toFixed(2) : ''}
<div class="points-product-points">${item.pointsUsed}积分</div>
</div>
</div>
`).join('')}
</div>
</div>
`).join('')}
</div>
</div>
`).join('');
}
// 切换订单详情显示
function toggleOrderDetails(orderNo) {
const storesContainer = document.getElementById(`stores-${orderNo}`);
const button = event.target;
if (storesContainer.classList.contains('expanded')) {
storesContainer.classList.remove('expanded');
button.textContent = '查看详情';
} else {
storesContainer.classList.add('expanded');
button.textContent = '收起详情';
}
}
// 切换店铺商品详情显示
function toggleStoreProducts(orderNo, storeOrderNo) {
const productsList = document.getElementById(`products-${orderNo}-${storeOrderNo}`);
const button = event.target;
if (productsList.classList.contains('expanded')) {
productsList.classList.remove('expanded');
button.textContent = '商品详情';
} else {
productsList.classList.add('expanded');
button.textContent = '收起详情';
}
}
// 秒杀时间段tab切换功能
function switchSeckillTab(tabName) {
// 隐藏所有秒杀内容
const contents = document.querySelectorAll('.seckill-content');
contents.forEach(content => {
content.classList.remove('active');
});
// 移除所有秒杀标签的激活状态
const tabs = document.querySelectorAll('.seckill-tab');
tabs.forEach(tab => {
tab.classList.remove('active');
});
// 显示选中的秒杀内容
document.getElementById(tabName).classList.add('active');
// 激活选中的秒杀标签
event.target.classList.add('active');
}
// 页面跳转功能
function goToPage(page) {
switch(page) {
case 'home':
window.location.href = '电商首页.html';
break;
case 'message':
// 跳转到消息页面
break;
case 'cart':
// 跳转到购物车页面
break;
case 'profile':
// 跳转到个人中心页面
break;
}
}
// 返回按钮
document.querySelector('.back-btn').addEventListener('click', function() {
window.location.href = '电商首页.html';
});
// 页面加载时初始化积分购物车显示状态
document.addEventListener('DOMContentLoaded', function() {
// 页面加载时默认在积分专区,显示购物车
const floatingCart = document.getElementById('floatingCart');
floatingCart.style.display = 'flex';
});
function addToPointsCart(button) {
// 获取商品名称
const itemElement = button.closest('.points-item');
const itemName = itemElement.querySelector('.points-item-name').textContent;
// 增加购物车数量
pointsCartCount++;
// 更新购物车徽章
updateCartBadge();
// 触发购物车动效
const cartIcon = document.getElementById('floatingCart');
cartIcon.classList.add('bounce');
// 移除动效类
setTimeout(() => {
cartIcon.classList.remove('bounce');
}, 600);
// 显示添加成功提示
showAddToCartSuccess(itemName);
}
function updateCartBadge() {
const badge = document.getElementById('cartBadge');
badge.textContent = pointsCartCount;
if (pointsCartCount > 0) {
badge.classList.remove('hidden');
} else {
badge.classList.add('hidden');
}
}
function showAddToCartSuccess(itemName) {
// 创建临时提示元素
const toast = document.createElement('div');
toast.style.cssText = `
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: rgba(0, 0, 0, 0.8);
color: white;
padding: 12px 24px;
border-radius: 25px;
font-size: 14px;
z-index: 2000;
opacity: 0;
transition: opacity 0.3s ease;
`;
toast.textContent = `${itemName} 已添加到积分购物车`;
document.body.appendChild(toast);
// 显示提示
setTimeout(() => {
toast.style.opacity = '1';
}, 100);
// 3秒后移除提示
setTimeout(() => {
toast.style.opacity = '0';
setTimeout(() => {
document.body.removeChild(toast);
}, 300);
}, 3000);
}
function goToPointsCart() {
alert('跳转到积分购物车页面');
}
// 秒杀按钮
document.querySelectorAll('.seckill-btn').forEach(btn => {
btn.addEventListener('click', function() {
alert('跳转到秒杀确认页');
});
});
// 秒杀刷新功能
function refreshSeckill() {
const refreshBtn = document.querySelector('.refresh-btn');
const refreshIcon = refreshBtn.querySelector('span:first-child');
// 添加旋转动画
refreshIcon.style.transition = 'transform 1s ease-in-out';
refreshIcon.style.transform = 'rotate(360deg)';
// 模拟刷新数据
refreshBtn.disabled = true;
refreshBtn.style.opacity = '0.7';
setTimeout(() => {
// 重置按钮状态
refreshBtn.disabled = false;
refreshBtn.style.opacity = '1';
refreshIcon.style.transform = 'rotate(0deg)';
// 显示刷新完成提示
showRefreshSuccess();
}, 1000);
}
function showRefreshSuccess() {
// 创建临时提示元素
const toast = document.createElement('div');
toast.style.cssText = `
position: fixed;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
background: rgba(0, 0, 0, 0.8);
color: white;
padding: 12px 24px;
border-radius: 25px;
font-size: 14px;
z-index: 2000;
opacity: 0;
transition: opacity 0.3s ease;
`;
toast.textContent = '秒杀数据已刷新';
document.body.appendChild(toast);
// 显示提示
setTimeout(() => {
toast.style.opacity = '1';
}, 100);
// 2秒后移除提示
setTimeout(() => {
toast.style.opacity = '0';
setTimeout(() => {
document.body.removeChild(toast);
}, 300);
}, 2000);
}
</script>
</body>
</html>