559 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			HTML
		
	
	
	
			
		
		
	
	
			559 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			HTML
		
	
	
	
<!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', Roboto, sans-serif;
 | 
						||
            background-color: #f5f5f5;
 | 
						||
            color: #333;
 | 
						||
            line-height: 1.4;
 | 
						||
        }
 | 
						||
 | 
						||
        .container {
 | 
						||
            max-width: 100%;
 | 
						||
            margin: 0 auto;
 | 
						||
            background: white;
 | 
						||
            min-height: 100vh;
 | 
						||
        }
 | 
						||
 | 
						||
        /* Header Section */
 | 
						||
        .header {
 | 
						||
            padding: 20px 16px;
 | 
						||
            background: white;
 | 
						||
            border-bottom: 1px solid #e5e5e5;
 | 
						||
        }
 | 
						||
 | 
						||
        .member-info {
 | 
						||
            display: grid;
 | 
						||
            grid-template-columns: 1fr 1fr;
 | 
						||
            gap: 12px 20px;
 | 
						||
            margin-bottom: 20px;
 | 
						||
        }
 | 
						||
 | 
						||
        .info-item {
 | 
						||
            display: flex;
 | 
						||
            align-items: center;
 | 
						||
            font-size: 14px;
 | 
						||
        }
 | 
						||
 | 
						||
        .info-label {
 | 
						||
            color: #666;
 | 
						||
            margin-right: 8px;
 | 
						||
            min-width: 60px;
 | 
						||
        }
 | 
						||
 | 
						||
        .info-value {
 | 
						||
            color: #333;
 | 
						||
            font-weight: 500;
 | 
						||
        }
 | 
						||
 | 
						||
        /* Stats Cards */
 | 
						||
        .stats-container {
 | 
						||
            display: flex;
 | 
						||
            justify-content: space-around;
 | 
						||
            margin-top: 20px;
 | 
						||
            padding: 16px;
 | 
						||
            background: #f8f9fa;
 | 
						||
            border-radius: 8px;
 | 
						||
        }
 | 
						||
 | 
						||
        .stat-item {
 | 
						||
            text-align: center;
 | 
						||
            flex: 1;
 | 
						||
        }
 | 
						||
 | 
						||
        .stat-number {
 | 
						||
            font-size: 24px;
 | 
						||
            font-weight: bold;
 | 
						||
            color: #333;
 | 
						||
            margin-bottom: 4px;
 | 
						||
        }
 | 
						||
 | 
						||
        .stat-label {
 | 
						||
            font-size: 12px;
 | 
						||
            color: #666;
 | 
						||
        }
 | 
						||
 | 
						||
        /* Tab Navigation */
 | 
						||
        .tab-nav {
 | 
						||
            display: flex;
 | 
						||
            background: white;
 | 
						||
            border-bottom: 1px solid #e5e5e5;
 | 
						||
            overflow-x: auto;
 | 
						||
        }
 | 
						||
 | 
						||
        .tab-item {
 | 
						||
            flex: 1;
 | 
						||
            padding: 16px 12px;
 | 
						||
            text-align: center;
 | 
						||
            font-size: 14px;
 | 
						||
            color: #666;
 | 
						||
            border-bottom: 2px solid transparent;
 | 
						||
            cursor: pointer;
 | 
						||
            transition: all 0.3s;
 | 
						||
            white-space: nowrap;
 | 
						||
            min-width: 120px;
 | 
						||
        }
 | 
						||
 | 
						||
        .tab-item.active {
 | 
						||
            color: #1890ff;
 | 
						||
            border-bottom-color: #1890ff;
 | 
						||
            font-weight: 500;
 | 
						||
        }
 | 
						||
 | 
						||
        /* Content Area */
 | 
						||
        .content {
 | 
						||
            padding: 0 16px 20px;
 | 
						||
        }
 | 
						||
 | 
						||
        .tab-content {
 | 
						||
            display: none;
 | 
						||
        }
 | 
						||
 | 
						||
        .tab-content.active {
 | 
						||
            display: block;
 | 
						||
        }
 | 
						||
 | 
						||
        /* Table Styles */
 | 
						||
        .table-container {
 | 
						||
            background: white;
 | 
						||
            border-radius: 8px;
 | 
						||
            overflow: hidden;
 | 
						||
            margin-top: 16px;
 | 
						||
        }
 | 
						||
 | 
						||
        .table-header {
 | 
						||
            display: grid;
 | 
						||
            background: #f8f9fa;
 | 
						||
            padding: 12px 8px;
 | 
						||
            font-size: 12px;
 | 
						||
            color: #666;
 | 
						||
            font-weight: 500;
 | 
						||
            border-bottom: 1px solid #e5e5e5;
 | 
						||
        }
 | 
						||
 | 
						||
        .table-row {
 | 
						||
            display: grid;
 | 
						||
            padding: 12px 8px;
 | 
						||
            border-bottom: 1px solid #f0f0f0;
 | 
						||
            font-size: 13px;
 | 
						||
            align-items: center;
 | 
						||
        }
 | 
						||
 | 
						||
        .table-row:last-child {
 | 
						||
            border-bottom: none;
 | 
						||
        }
 | 
						||
 | 
						||
        /* Coupon Table */
 | 
						||
        .coupon-header {
 | 
						||
            grid-template-columns: 1fr 60px 60px 80px 60px;
 | 
						||
        }
 | 
						||
 | 
						||
        .coupon-row {
 | 
						||
            grid-template-columns: 1fr 60px 60px 80px 60px;
 | 
						||
        }
 | 
						||
 | 
						||
        /* Growth Table */
 | 
						||
        .growth-header {
 | 
						||
            grid-template-columns: 1fr 80px 1fr 60px;
 | 
						||
        }
 | 
						||
 | 
						||
        .growth-row {
 | 
						||
            grid-template-columns: 1fr 80px 1fr 60px;
 | 
						||
        }
 | 
						||
 | 
						||
        /* Points Table */
 | 
						||
        .points-header {
 | 
						||
            grid-template-columns: 1fr 60px 80px 1fr 60px;
 | 
						||
        }
 | 
						||
 | 
						||
        .points-row {
 | 
						||
            grid-template-columns: 1fr 60px 80px 1fr 60px;
 | 
						||
        }
 | 
						||
 | 
						||
        .status-available {
 | 
						||
            color: #52c41a;
 | 
						||
            font-size: 12px;
 | 
						||
        }
 | 
						||
 | 
						||
        .status-expired {
 | 
						||
            color: #ff4d4f;
 | 
						||
            font-size: 12px;
 | 
						||
        }
 | 
						||
 | 
						||
        .status-used {
 | 
						||
            color: #999;
 | 
						||
            font-size: 12px;
 | 
						||
        }
 | 
						||
 | 
						||
        .points-positive {
 | 
						||
            color: #52c41a;
 | 
						||
        }
 | 
						||
 | 
						||
        .points-negative {
 | 
						||
            color: #ff4d4f;
 | 
						||
        }
 | 
						||
 | 
						||
        .detail-link {
 | 
						||
            color: #1890ff;
 | 
						||
            text-decoration: none;
 | 
						||
            font-size: 12px;
 | 
						||
        }
 | 
						||
 | 
						||
        /* Pagination */
 | 
						||
        .pagination {
 | 
						||
            display: flex;
 | 
						||
            justify-content: center;
 | 
						||
            align-items: center;
 | 
						||
            padding: 20px;
 | 
						||
            gap: 12px;
 | 
						||
        }
 | 
						||
 | 
						||
        .pagination button {
 | 
						||
            padding: 8px 12px;
 | 
						||
            border: 1px solid #d9d9d9;
 | 
						||
            background: white;
 | 
						||
            color: #666;
 | 
						||
            border-radius: 4px;
 | 
						||
            font-size: 12px;
 | 
						||
            cursor: pointer;
 | 
						||
        }
 | 
						||
 | 
						||
        .pagination button:disabled {
 | 
						||
            opacity: 0.5;
 | 
						||
            cursor: not-allowed;
 | 
						||
        }
 | 
						||
 | 
						||
        .pagination .current-page {
 | 
						||
            color: #333;
 | 
						||
            font-weight: 500;
 | 
						||
        }
 | 
						||
 | 
						||
        /* Mobile Optimizations */
 | 
						||
        @media (max-width: 480px) {
 | 
						||
            .member-info {
 | 
						||
                grid-template-columns: 1fr;
 | 
						||
                gap: 8px;
 | 
						||
            }
 | 
						||
 | 
						||
            .stats-container {
 | 
						||
                padding: 12px;
 | 
						||
            }
 | 
						||
 | 
						||
            .stat-number {
 | 
						||
                font-size: 20px;
 | 
						||
            }
 | 
						||
 | 
						||
            .table-container {
 | 
						||
                font-size: 12px;
 | 
						||
            }
 | 
						||
 | 
						||
            .table-header,
 | 
						||
            .table-row {
 | 
						||
                padding: 8px 4px;
 | 
						||
            }
 | 
						||
 | 
						||
            /* Stack table cells vertically on very small screens */
 | 
						||
            .coupon-header,
 | 
						||
            .coupon-row {
 | 
						||
                grid-template-columns: 1fr;
 | 
						||
                gap: 4px;
 | 
						||
            }
 | 
						||
 | 
						||
            .growth-header,
 | 
						||
            .growth-row {
 | 
						||
                grid-template-columns: 1fr;
 | 
						||
                gap: 4px;
 | 
						||
            }
 | 
						||
 | 
						||
            .points-header,
 | 
						||
            .points-row {
 | 
						||
                grid-template-columns: 1fr;
 | 
						||
                gap: 4px;
 | 
						||
            }
 | 
						||
 | 
						||
            .table-row {
 | 
						||
                padding: 12px 8px;
 | 
						||
                border-left: 3px solid #1890ff;
 | 
						||
                margin-bottom: 8px;
 | 
						||
                border-radius: 0 4px 4px 0;
 | 
						||
            }
 | 
						||
        }
 | 
						||
 | 
						||
        /* Loading State */
 | 
						||
        .loading {
 | 
						||
            text-align: center;
 | 
						||
            padding: 40px;
 | 
						||
            color: #999;
 | 
						||
        }
 | 
						||
 | 
						||
        /* Empty State */
 | 
						||
        .empty-state {
 | 
						||
            text-align: center;
 | 
						||
            padding: 40px;
 | 
						||
            color: #999;
 | 
						||
        }
 | 
						||
    </style>
 | 
						||
</head>
 | 
						||
<body>
 | 
						||
    <div class="container">
 | 
						||
        <!-- Header Section -->
 | 
						||
        <div class="header">
 | 
						||
            <div class="member-info">
 | 
						||
                <div class="info-item">
 | 
						||
                    <span class="info-label">会员姓名:</span>
 | 
						||
                    <span class="info-value">张三</span>
 | 
						||
                </div>
 | 
						||
                <div class="info-item">
 | 
						||
                    <span class="info-label">系统编号:</span>
 | 
						||
                    <span class="info-value">3</span>
 | 
						||
                </div>
 | 
						||
                <div class="info-item">
 | 
						||
                    <span class="info-label">手机号:</span>
 | 
						||
                    <span class="info-value">138****1234</span>
 | 
						||
                </div>
 | 
						||
                <div class="info-item">
 | 
						||
                    <span class="info-label">生日:</span>
 | 
						||
                    <span class="info-value">1990-05-15</span>
 | 
						||
                </div>
 | 
						||
            </div>
 | 
						||
 | 
						||
            <div class="stats-container">
 | 
						||
                <div class="stat-item">
 | 
						||
                    <div class="stat-number">1250</div>
 | 
						||
                    <div class="stat-label">会员成长值</div>
 | 
						||
                </div>
 | 
						||
                <div class="stat-item">
 | 
						||
                    <div class="stat-number">890</div>
 | 
						||
                    <div class="stat-label">会员积分</div>
 | 
						||
                </div>
 | 
						||
                <div class="stat-item">
 | 
						||
                    <div class="stat-number">5</div>
 | 
						||
                    <div class="stat-label">会员优惠券</div>
 | 
						||
                </div>
 | 
						||
            </div>
 | 
						||
        </div>
 | 
						||
 | 
						||
        <!-- Tab Navigation -->
 | 
						||
        <div class="tab-nav">
 | 
						||
            <div class="tab-item" onclick="switchTab('growth')">会员成长值明细</div>
 | 
						||
            <div class="tab-item" onclick="switchTab('points')">会员积分明细</div>
 | 
						||
            <div class="tab-item active" onclick="switchTab('coupons')">会员优惠券</div>
 | 
						||
        </div>
 | 
						||
 | 
						||
        <!-- Content Area -->
 | 
						||
        <div class="content">
 | 
						||
            <!-- Coupons Tab -->
 | 
						||
            <div id="coupons" class="tab-content active">
 | 
						||
                <div class="table-container">
 | 
						||
                    <div class="table-header coupon-header">
 | 
						||
                        <div>优惠券名称</div>
 | 
						||
                        <div>类型</div>
 | 
						||
                        <div>面额</div>
 | 
						||
                        <div>使用条件</div>
 | 
						||
                        <div>状态</div>
 | 
						||
                    </div>
 | 
						||
                    <div class="table-row coupon-row">
 | 
						||
                        <div>
 | 
						||
                            <div style="font-weight: 500;">新用户专享券</div>
 | 
						||
                            <div style="font-size: 11px; color: #999; margin-top: 2px;">获得时间: 2024-01-01 10:00:00</div>
 | 
						||
                            <div style="font-size: 11px; color: #999;">有效期: 2024-02-01</div>
 | 
						||
                        </div>
 | 
						||
                        <div>满减券</div>
 | 
						||
                        <div>¥20</div>
 | 
						||
                        <div>满100元可用</div>
 | 
						||
                        <div class="status-available">可使用</div>
 | 
						||
                    </div>
 | 
						||
                    <div class="table-row coupon-row">
 | 
						||
                        <div>
 | 
						||
                            <div style="font-weight: 500;">生日特惠券</div>
 | 
						||
                            <div style="font-size: 11px; color: #999; margin-top: 2px;">获得时间: 2024-01-05 12:30:15</div>
 | 
						||
                            <div style="font-size: 11px; color: #999;">有效期: 2024-02-05</div>
 | 
						||
                        </div>
 | 
						||
                        <div>折扣券</div>
 | 
						||
                        <div>9折</div>
 | 
						||
                        <div>全品类可用</div>
 | 
						||
                        <div class="status-available">可使用</div>
 | 
						||
                    </div>
 | 
						||
                    <div class="table-row coupon-row">
 | 
						||
                        <div>
 | 
						||
                            <div style="font-weight: 500;">积分兑换券</div>
 | 
						||
                            <div style="font-size: 11px; color: #999; margin-top: 2px;">获得时间: 2024-01-10 16:20:30</div>
 | 
						||
                            <div style="font-size: 11px; color: #999;">有效期: 2024-03-10</div>
 | 
						||
                        </div>
 | 
						||
                        <div>满减券</div>
 | 
						||
                        <div>¥50</div>
 | 
						||
                        <div>满300元可用</div>
 | 
						||
                        <div class="status-available">可使用</div>
 | 
						||
                    </div>
 | 
						||
                    <div class="table-row coupon-row">
 | 
						||
                        <div>
 | 
						||
                            <div style="font-weight: 500;">限时抢购券</div>
 | 
						||
                            <div style="font-size: 11px; color: #999; margin-top: 2px;">获得时间: 2023-12-20 14:15:20</div>
 | 
						||
                            <div style="font-size: 11px; color: #999;">有效期: 2024-01-20</div>
 | 
						||
                        </div>
 | 
						||
                        <div>满减券</div>
 | 
						||
                        <div>¥10</div>
 | 
						||
                        <div>满50元可用</div>
 | 
						||
                        <div class="status-expired">已过期</div>
 | 
						||
                    </div>
 | 
						||
                    <div class="table-row coupon-row">
 | 
						||
                        <div>
 | 
						||
                            <div style="font-weight: 500;">会员专属券</div>
 | 
						||
                            <div style="font-size: 11px; color: #999; margin-top: 2px;">获得时间: 2023-12-15 09:45:10</div>
 | 
						||
                            <div style="font-size: 11px; color: #999;">有效期: 2024-01-15</div>
 | 
						||
                        </div>
 | 
						||
                        <div>满减券</div>
 | 
						||
                        <div>¥30</div>
 | 
						||
                        <div>满200元可用</div>
 | 
						||
                        <div class="status-used">已使用</div>
 | 
						||
                    </div>
 | 
						||
                </div>
 | 
						||
            </div>
 | 
						||
 | 
						||
            <!-- Growth Tab -->
 | 
						||
            <div id="growth" class="tab-content">
 | 
						||
                <div class="table-container">
 | 
						||
                    <div class="table-header growth-header">
 | 
						||
                        <div>变化时间</div>
 | 
						||
                        <div>成长值变动</div>
 | 
						||
                        <div>关联订单</div>
 | 
						||
                        <div>详情</div>
 | 
						||
                    </div>
 | 
						||
                    <div class="table-row growth-row">
 | 
						||
                        <div>2024-01-15 14:30:25</div>
 | 
						||
                        <div class="points-positive">+50</div>
 | 
						||
                        <div>ORDER202401501</div>
 | 
						||
                        <div><a href="#" class="detail-link">查看详情</a></div>
 | 
						||
                    </div>
 | 
						||
                    <div class="table-row growth-row">
 | 
						||
                        <div>2024-01-10 09:15:10</div>
 | 
						||
                        <div class="points-positive">+100</div>
 | 
						||
                        <div>ORDER202401002</div>
 | 
						||
                        <div><a href="#" class="detail-link">查看详情</a></div>
 | 
						||
                    </div>
 | 
						||
                    <div class="table-row growth-row">
 | 
						||
                        <div>2024-01-05 16:45:33</div>
 | 
						||
                        <div class="points-positive">+30</div>
 | 
						||
                        <div>ORDER202401503</div>
 | 
						||
                        <div><a href="#" class="detail-link">查看详情</a></div>
 | 
						||
                    </div>
 | 
						||
                    <div class="table-row growth-row">
 | 
						||
                        <div>2024-01-02 11:20:15</div>
 | 
						||
                        <div class="points-positive">+20</div>
 | 
						||
                        <div>ORDER202401204</div>
 | 
						||
                        <div><a href="#" class="detail-link">查看详情</a></div>
 | 
						||
                    </div>
 | 
						||
                    <div class="table-row growth-row">
 | 
						||
                        <div>2023-12-28 13:55:40</div>
 | 
						||
                        <div class="points-positive">+75</div>
 | 
						||
                        <div>ORDER202312805</div>
 | 
						||
                        <div><a href="#" class="detail-link">查看详情</a></div>
 | 
						||
                    </div>
 | 
						||
                </div>
 | 
						||
            </div>
 | 
						||
 | 
						||
            <!-- Points Tab -->
 | 
						||
            <div id="points" class="tab-content">
 | 
						||
                <div class="table-container">
 | 
						||
                    <div class="table-header points-header">
 | 
						||
                        <div>变化时间</div>
 | 
						||
                        <div>积分变动</div>
 | 
						||
                        <div>变动类型</div>
 | 
						||
                        <div>关联订单</div>
 | 
						||
                        <div>详情</div>
 | 
						||
                    </div>
 | 
						||
                    <div class="table-row points-row">
 | 
						||
                        <div>2024-01-15 14:30:25</div>
 | 
						||
                        <div class="points-positive">+100</div>
 | 
						||
                        <div>购物获得</div>
 | 
						||
                        <div>ORDER202401501</div>
 | 
						||
                        <div><a href="#" class="detail-link">查看详情</a></div>
 | 
						||
                    </div>
 | 
						||
                    <div class="table-row points-row">
 | 
						||
                        <div>2024-01-12 10:20:15</div>
 | 
						||
                        <div class="points-negative">-50</div>
 | 
						||
                        <div>积分抵扣</div>
 | 
						||
                        <div>ORDER202401202</div>
 | 
						||
                        <div><a href="#" class="detail-link">查看详情</a></div>
 | 
						||
                    </div>
 | 
						||
                    <div class="table-row points-row">
 | 
						||
                        <div>2024-01-10 09:15:10</div>
 | 
						||
                        <div class="points-positive">+200</div>
 | 
						||
                        <div>购物获得</div>
 | 
						||
                        <div>ORDER202401002</div>
 | 
						||
                        <div><a href="#" class="detail-link">查看详情</a></div>
 | 
						||
                    </div>
 | 
						||
                    <div class="table-row points-row">
 | 
						||
                        <div>2024-01-08 15:45:30</div>
 | 
						||
                        <div class="points-positive">+10</div>
 | 
						||
                        <div>签到奖励</div>
 | 
						||
                        <div>-</div>
 | 
						||
                        <div><a href="#" class="detail-link">查看详情</a></div>
 | 
						||
                    </div>
 | 
						||
                    <div class="table-row points-row">
 | 
						||
                        <div>2024-01-05 16:45:33</div>
 | 
						||
                        <div class="points-positive">+60</div>
 | 
						||
                        <div>购物获得</div>
 | 
						||
                        <div>ORDER202401503</div>
 | 
						||
                        <div><a href="#" class="detail-link">查看详情</a></div>
 | 
						||
                    </div>
 | 
						||
                </div>
 | 
						||
            </div>
 | 
						||
 | 
						||
            <!-- Pagination -->
 | 
						||
            <div class="pagination">
 | 
						||
                <button disabled>上一页</button>
 | 
						||
                <span class="current-page">第1页,共1页</span>
 | 
						||
                <button disabled>下一页</button>
 | 
						||
            </div>
 | 
						||
        </div>
 | 
						||
    </div>
 | 
						||
 | 
						||
    <script>
 | 
						||
        function switchTab(tabName) {
 | 
						||
            // Remove active class from all tabs and content
 | 
						||
            document.querySelectorAll('.tab-item').forEach(tab => {
 | 
						||
                tab.classList.remove('active');
 | 
						||
            });
 | 
						||
            document.querySelectorAll('.tab-content').forEach(content => {
 | 
						||
                content.classList.remove('active');
 | 
						||
            });
 | 
						||
 | 
						||
            // Add active class to clicked tab and corresponding content
 | 
						||
            event.target.classList.add('active');
 | 
						||
            document.getElementById(tabName).classList.add('active');
 | 
						||
        }
 | 
						||
 | 
						||
        // Add touch feedback for better mobile experience
 | 
						||
        document.querySelectorAll('.tab-item, .detail-link').forEach(element => {
 | 
						||
            element.addEventListener('touchstart', function() {
 | 
						||
                this.style.opacity = '0.7';
 | 
						||
            });
 | 
						||
            
 | 
						||
            element.addEventListener('touchend', function() {
 | 
						||
                this.style.opacity = '1';
 | 
						||
            });
 | 
						||
        });
 | 
						||
 | 
						||
        // Prevent zoom on double tap for better mobile experience
 | 
						||
        let lastTouchEnd = 0;
 | 
						||
        document.addEventListener('touchend', function (event) {
 | 
						||
            const now = (new Date()).getTime();
 | 
						||
            if (now - lastTouchEnd <= 300) {
 | 
						||
                event.preventDefault();
 | 
						||
            }
 | 
						||
            lastTouchEnd = now;
 | 
						||
        }, false);
 | 
						||
    </script>
 | 
						||
</body>
 | 
						||
</html> |