541 lines
		
	
	
		
			16 KiB
		
	
	
	
		
			HTML
		
	
	
	
			
		
		
	
	
			541 lines
		
	
	
		
			16 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;
 | 
						||
        }
 | 
						||
 | 
						||
        .header {
 | 
						||
            background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
 | 
						||
            color: white;
 | 
						||
            padding: 20px 16px;
 | 
						||
            text-align: center;
 | 
						||
            box-shadow: 0 2px 10px rgba(0,0,0,0.1);
 | 
						||
        }
 | 
						||
 | 
						||
        .header h1 {
 | 
						||
            font-size: 20px;
 | 
						||
            font-weight: 600;
 | 
						||
        }
 | 
						||
 | 
						||
        .search-section {
 | 
						||
            background: white;
 | 
						||
            padding: 16px;
 | 
						||
            margin-bottom: 12px;
 | 
						||
            border-radius: 12px;
 | 
						||
            margin: 12px 16px;
 | 
						||
            box-shadow: 0 2px 8px rgba(0,0,0,0.05);
 | 
						||
        }
 | 
						||
 | 
						||
        .search-row {
 | 
						||
            display: flex;
 | 
						||
            gap: 8px;
 | 
						||
            margin-bottom: 12px;
 | 
						||
        }
 | 
						||
 | 
						||
        .search-row:last-child {
 | 
						||
            margin-bottom: 0;
 | 
						||
        }
 | 
						||
 | 
						||
        .form-group {
 | 
						||
            flex: 1;
 | 
						||
        }
 | 
						||
 | 
						||
        .form-group label {
 | 
						||
            display: block;
 | 
						||
            font-size: 12px;
 | 
						||
            color: #666;
 | 
						||
            margin-bottom: 4px;
 | 
						||
        }
 | 
						||
 | 
						||
        .form-control {
 | 
						||
            width: 100%;
 | 
						||
            padding: 10px 12px;
 | 
						||
            border: 1px solid #e0e0e0;
 | 
						||
            border-radius: 8px;
 | 
						||
            font-size: 14px;
 | 
						||
            background: #fafafa;
 | 
						||
        }
 | 
						||
 | 
						||
        .form-control:focus {
 | 
						||
            outline: none;
 | 
						||
            border-color: #667eea;
 | 
						||
            background: white;
 | 
						||
        }
 | 
						||
 | 
						||
        .search-btn {
 | 
						||
            background: linear-gradient(135deg, #4CAF50, #45a049);
 | 
						||
            color: white;
 | 
						||
            border: none;
 | 
						||
            padding: 12px 24px;
 | 
						||
            border-radius: 8px;
 | 
						||
            font-size: 14px;
 | 
						||
            font-weight: 500;
 | 
						||
            cursor: pointer;
 | 
						||
            width: 100%;
 | 
						||
            margin-top: 12px;
 | 
						||
            box-shadow: 0 2px 8px rgba(76, 175, 80, 0.3);
 | 
						||
        }
 | 
						||
 | 
						||
        .search-btn:active {
 | 
						||
            transform: translateY(1px);
 | 
						||
        }
 | 
						||
 | 
						||
        .stats-section {
 | 
						||
            display: flex;
 | 
						||
            gap: 12px;
 | 
						||
            padding: 0 16px;
 | 
						||
            margin-bottom: 16px;
 | 
						||
        }
 | 
						||
 | 
						||
        .stat-card {
 | 
						||
            flex: 1;
 | 
						||
            background: white;
 | 
						||
            padding: 16px;
 | 
						||
            border-radius: 12px;
 | 
						||
            text-align: center;
 | 
						||
            box-shadow: 0 2px 8px rgba(0,0,0,0.05);
 | 
						||
        }
 | 
						||
 | 
						||
        .stat-number {
 | 
						||
            font-size: 24px;
 | 
						||
            font-weight: bold;
 | 
						||
            color: #333;
 | 
						||
            margin-bottom: 4px;
 | 
						||
        }
 | 
						||
 | 
						||
        .stat-label {
 | 
						||
            font-size: 12px;
 | 
						||
            color: #666;
 | 
						||
        }
 | 
						||
 | 
						||
        .stat-card:first-child .stat-number {
 | 
						||
            color: #2196F3;
 | 
						||
        }
 | 
						||
 | 
						||
        .stat-card:last-child .stat-number {
 | 
						||
            color: #FF9800;
 | 
						||
        }
 | 
						||
 | 
						||
        .member-list {
 | 
						||
            padding: 0 16px;
 | 
						||
        }
 | 
						||
 | 
						||
        .member-card {
 | 
						||
            background: white;
 | 
						||
            border-radius: 12px;
 | 
						||
            padding: 16px;
 | 
						||
            margin-bottom: 12px;
 | 
						||
            box-shadow: 0 2px 8px rgba(0,0,0,0.05);
 | 
						||
            position: relative;
 | 
						||
        }
 | 
						||
 | 
						||
        .member-header {
 | 
						||
            display: flex;
 | 
						||
            align-items: center;
 | 
						||
            margin-bottom: 12px;
 | 
						||
        }
 | 
						||
 | 
						||
        .avatar {
 | 
						||
            width: 48px;
 | 
						||
            height: 48px;
 | 
						||
            border-radius: 50%;
 | 
						||
            display: flex;
 | 
						||
            align-items: center;
 | 
						||
            justify-content: center;
 | 
						||
            color: white;
 | 
						||
            font-weight: bold;
 | 
						||
            font-size: 16px;
 | 
						||
            margin-right: 12px;
 | 
						||
        }
 | 
						||
 | 
						||
        .member-info {
 | 
						||
            flex: 1;
 | 
						||
        }
 | 
						||
 | 
						||
        .member-name {
 | 
						||
            font-size: 16px;
 | 
						||
            font-weight: 600;
 | 
						||
            color: #333;
 | 
						||
            margin-bottom: 2px;
 | 
						||
        }
 | 
						||
 | 
						||
        .member-id {
 | 
						||
            font-size: 12px;
 | 
						||
            color: #999;
 | 
						||
        }
 | 
						||
 | 
						||
        .level-badge {
 | 
						||
            padding: 4px 8px;
 | 
						||
            border-radius: 12px;
 | 
						||
            font-size: 10px;
 | 
						||
            font-weight: bold;
 | 
						||
            color: white;
 | 
						||
        }
 | 
						||
 | 
						||
        .level-lv1 { background: #4CAF50; }
 | 
						||
        .level-lv2 { background: #2196F3; }
 | 
						||
        .level-lv3 { background: #FF9800; }
 | 
						||
        .level-lv4 { background: #F44336; }
 | 
						||
 | 
						||
        .member-details {
 | 
						||
            display: grid;
 | 
						||
            grid-template-columns: 1fr 1fr;
 | 
						||
            gap: 8px;
 | 
						||
            margin-bottom: 12px;
 | 
						||
        }
 | 
						||
 | 
						||
        .detail-item {
 | 
						||
            font-size: 12px;
 | 
						||
        }
 | 
						||
 | 
						||
        .detail-label {
 | 
						||
            color: #666;
 | 
						||
            margin-bottom: 2px;
 | 
						||
        }
 | 
						||
 | 
						||
        .detail-value {
 | 
						||
            color: #333;
 | 
						||
            font-weight: 500;
 | 
						||
        }
 | 
						||
 | 
						||
        .member-actions {
 | 
						||
            text-align: right;
 | 
						||
        }
 | 
						||
 | 
						||
        .detail-btn {
 | 
						||
            background: #667eea;
 | 
						||
            color: white;
 | 
						||
            border: none;
 | 
						||
            padding: 8px 16px;
 | 
						||
            border-radius: 6px;
 | 
						||
            font-size: 12px;
 | 
						||
            cursor: pointer;
 | 
						||
        }
 | 
						||
 | 
						||
        .detail-btn:active {
 | 
						||
            background: #5a6fd8;
 | 
						||
        }
 | 
						||
 | 
						||
        .pagination {
 | 
						||
            display: flex;
 | 
						||
            justify-content: center;
 | 
						||
            align-items: center;
 | 
						||
            padding: 20px 16px;
 | 
						||
            gap: 8px;
 | 
						||
        }
 | 
						||
 | 
						||
        .page-btn {
 | 
						||
            padding: 8px 12px;
 | 
						||
            border: 1px solid #e0e0e0;
 | 
						||
            background: white;
 | 
						||
            border-radius: 6px;
 | 
						||
            font-size: 12px;
 | 
						||
            cursor: pointer;
 | 
						||
        }
 | 
						||
 | 
						||
        .page-btn.active {
 | 
						||
            background: #667eea;
 | 
						||
            color: white;
 | 
						||
            border-color: #667eea;
 | 
						||
        }
 | 
						||
 | 
						||
        .page-info {
 | 
						||
            font-size: 12px;
 | 
						||
            color: #666;
 | 
						||
            margin: 0 8px;
 | 
						||
        }
 | 
						||
 | 
						||
        .store-tag {
 | 
						||
            display: inline-block;
 | 
						||
            background: #f0f0f0;
 | 
						||
            color: #666;
 | 
						||
            padding: 2px 6px;
 | 
						||
            border-radius: 4px;
 | 
						||
            font-size: 10px;
 | 
						||
            margin-bottom: 4px;
 | 
						||
        }
 | 
						||
 | 
						||
        /* Avatar colors */
 | 
						||
        .avatar-blue { background: #2196F3; }
 | 
						||
        .avatar-green { background: #4CAF50; }
 | 
						||
        .avatar-red { background: #F44336; }
 | 
						||
        .avatar-orange { background: #FF9800; }
 | 
						||
        .avatar-purple { background: #9C27B0; }
 | 
						||
 | 
						||
        @media (max-width: 480px) {
 | 
						||
            .search-row {
 | 
						||
                flex-direction: column;
 | 
						||
            }
 | 
						||
            
 | 
						||
            .member-details {
 | 
						||
                grid-template-columns: 1fr;
 | 
						||
            }
 | 
						||
        }
 | 
						||
    </style>
 | 
						||
</head>
 | 
						||
<body>
 | 
						||
    <div class="header">
 | 
						||
        <h1>会员列表</h1>
 | 
						||
    </div>
 | 
						||
 | 
						||
    <div class="search-section">
 | 
						||
        <div class="search-row">
 | 
						||
            <div class="form-group">
 | 
						||
                <label>所属店铺</label>
 | 
						||
                <select class="form-control">
 | 
						||
                    <option>全部店铺</option>
 | 
						||
                    <option>总店</option>
 | 
						||
                    <option>分店1</option>
 | 
						||
                    <option>分店2</option>
 | 
						||
                </select>
 | 
						||
            </div>
 | 
						||
            <div class="form-group">
 | 
						||
                <label>会员等级</label>
 | 
						||
                <select class="form-control">
 | 
						||
                    <option>全部等级</option>
 | 
						||
                    <option>LV1</option>
 | 
						||
                    <option>LV2</option>
 | 
						||
                    <option>LV3</option>
 | 
						||
                    <option>LV4</option>
 | 
						||
                </select>
 | 
						||
            </div>
 | 
						||
        </div>
 | 
						||
        <div class="search-row">
 | 
						||
            <div class="form-group">
 | 
						||
                <label>用户昵称</label>
 | 
						||
                <input type="text" class="form-control" placeholder="请输入用户昵称">
 | 
						||
            </div>
 | 
						||
            <div class="form-group">
 | 
						||
                <label>手机号</label>
 | 
						||
                <input type="text" class="form-control" placeholder="请输入手机号">
 | 
						||
            </div>
 | 
						||
        </div>
 | 
						||
        <div class="search-row">
 | 
						||
            <div class="form-group">
 | 
						||
                <label>注册时间</label>
 | 
						||
                <input type="date" class="form-control">
 | 
						||
            </div>
 | 
						||
        </div>
 | 
						||
        <button class="search-btn" onclick="searchMembers()">筛选查询</button>
 | 
						||
    </div>
 | 
						||
 | 
						||
    <div class="stats-section">
 | 
						||
        <div class="stat-card">
 | 
						||
            <div class="stat-number">1,247</div>
 | 
						||
            <div class="stat-label">会员总数</div>
 | 
						||
        </div>
 | 
						||
        <div class="stat-card">
 | 
						||
            <div class="stat-number">23</div>
 | 
						||
            <div class="stat-label">今日新增</div>
 | 
						||
        </div>
 | 
						||
    </div>
 | 
						||
 | 
						||
    <div class="member-list">
 | 
						||
        <div class="member-card">
 | 
						||
            <div class="member-header">
 | 
						||
                <div class="avatar avatar-blue">张</div>
 | 
						||
                <div class="member-info">
 | 
						||
                    <div class="member-name">张小明</div>
 | 
						||
                    <div class="member-id">ID: 001234</div>
 | 
						||
                </div>
 | 
						||
                <span class="level-badge level-lv2">LV2</span>
 | 
						||
            </div>
 | 
						||
            <div class="store-tag">总店</div>
 | 
						||
            <div class="member-details">
 | 
						||
                <div class="detail-item">
 | 
						||
                    <div class="detail-label">手机号</div>
 | 
						||
                    <div class="detail-value">138****1234</div>
 | 
						||
                </div>
 | 
						||
                <div class="detail-item">
 | 
						||
                    <div class="detail-label">生日</div>
 | 
						||
                    <div class="detail-value">1990-01-15</div>
 | 
						||
                </div>
 | 
						||
                <div class="detail-item">
 | 
						||
                    <div class="detail-label">注册时间</div>
 | 
						||
                    <div class="detail-value">2024-01-15 10:30:25</div>
 | 
						||
                </div>
 | 
						||
            </div>
 | 
						||
            <div class="member-actions">
 | 
						||
                <button class="detail-btn" onclick="viewDetails('001234')">详情</button>
 | 
						||
            </div>
 | 
						||
        </div>
 | 
						||
 | 
						||
        <div class="member-card">
 | 
						||
            <div class="member-header">
 | 
						||
                <div class="avatar avatar-green">李</div>
 | 
						||
                <div class="member-info">
 | 
						||
                    <div class="member-name">李美丽</div>
 | 
						||
                    <div class="member-id">ID: 001235</div>
 | 
						||
                </div>
 | 
						||
                <span class="level-badge level-lv1">LV1</span>
 | 
						||
            </div>
 | 
						||
            <div class="store-tag">分店1</div>
 | 
						||
            <div class="member-details">
 | 
						||
                <div class="detail-item">
 | 
						||
                    <div class="detail-label">手机号</div>
 | 
						||
                    <div class="detail-value">139****5678</div>
 | 
						||
                </div>
 | 
						||
                <div class="detail-item">
 | 
						||
                    <div class="detail-label">生日</div>
 | 
						||
                    <div class="detail-value">1985-03-22</div>
 | 
						||
                </div>
 | 
						||
                <div class="detail-item">
 | 
						||
                    <div class="detail-label">注册时间</div>
 | 
						||
                    <div class="detail-value">2024-01-14 14:20:18</div>
 | 
						||
                </div>
 | 
						||
            </div>
 | 
						||
            <div class="member-actions">
 | 
						||
                <button class="detail-btn" onclick="viewDetails('001235')">详情</button>
 | 
						||
            </div>
 | 
						||
        </div>
 | 
						||
 | 
						||
        <div class="member-card">
 | 
						||
            <div class="member-header">
 | 
						||
                <div class="avatar avatar-red">王</div>
 | 
						||
                <div class="member-info">
 | 
						||
                    <div class="member-name">王大力</div>
 | 
						||
                    <div class="member-id">ID: 001236</div>
 | 
						||
                </div>
 | 
						||
                <span class="level-badge level-lv3">LV3</span>
 | 
						||
            </div>
 | 
						||
            <div class="store-tag">总店</div>
 | 
						||
            <div class="member-details">
 | 
						||
                <div class="detail-item">
 | 
						||
                    <div class="detail-label">手机号</div>
 | 
						||
                    <div class="detail-value">136****9876</div>
 | 
						||
                </div>
 | 
						||
                <div class="detail-item">
 | 
						||
                    <div class="detail-label">生日</div>
 | 
						||
                    <div class="detail-value">1992-07-08</div>
 | 
						||
                </div>
 | 
						||
                <div class="detail-item">
 | 
						||
                    <div class="detail-label">注册时间</div>
 | 
						||
                    <div class="detail-value">2024-01-13 09:15:42</div>
 | 
						||
                </div>
 | 
						||
            </div>
 | 
						||
            <div class="member-actions">
 | 
						||
                <button class="detail-btn" onclick="viewDetails('001236')">详情</button>
 | 
						||
            </div>
 | 
						||
        </div>
 | 
						||
 | 
						||
        <div class="member-card">
 | 
						||
            <div class="member-header">
 | 
						||
                <div class="avatar avatar-orange">陈</div>
 | 
						||
                <div class="member-info">
 | 
						||
                    <div class="member-name">陈小芳</div>
 | 
						||
                    <div class="member-id">ID: 001237</div>
 | 
						||
                </div>
 | 
						||
                <span class="level-badge level-lv4">LV4</span>
 | 
						||
            </div>
 | 
						||
            <div class="store-tag">分店2</div>
 | 
						||
            <div class="member-details">
 | 
						||
                <div class="detail-item">
 | 
						||
                    <div class="detail-label">手机号</div>
 | 
						||
                    <div class="detail-value">135****4321</div>
 | 
						||
                </div>
 | 
						||
                <div class="detail-item">
 | 
						||
                    <div class="detail-label">生日</div>
 | 
						||
                    <div class="detail-value">1988-11-30</div>
 | 
						||
                </div>
 | 
						||
                <div class="detail-item">
 | 
						||
                    <div class="detail-label">注册时间</div>
 | 
						||
                    <div class="detail-value">2024-01-12 16:45:33</div>
 | 
						||
                </div>
 | 
						||
            </div>
 | 
						||
            <div class="member-actions">
 | 
						||
                <button class="detail-btn" onclick="viewDetails('001237')">详情</button>
 | 
						||
            </div>
 | 
						||
        </div>
 | 
						||
 | 
						||
        <div class="member-card">
 | 
						||
            <div class="member-header">
 | 
						||
                <div class="avatar avatar-purple">刘</div>
 | 
						||
                <div class="member-info">
 | 
						||
                    <div class="member-name">刘强东</div>
 | 
						||
                    <div class="member-id">ID: 001238</div>
 | 
						||
                </div>
 | 
						||
                <span class="level-badge level-lv2">LV2</span>
 | 
						||
            </div>
 | 
						||
            <div class="store-tag">分店1</div>
 | 
						||
            <div class="member-details">
 | 
						||
                <div class="detail-item">
 | 
						||
                    <div class="detail-label">手机号</div>
 | 
						||
                    <div class="detail-value">137****8765</div>
 | 
						||
                </div>
 | 
						||
                <div class="detail-item">
 | 
						||
                    <div class="detail-label">生日</div>
 | 
						||
                    <div class="detail-value">1995-05-12</div>
 | 
						||
                </div>
 | 
						||
                <div class="detail-item">
 | 
						||
                    <div class="detail-label">注册时间</div>
 | 
						||
                    <div class="detail-value">2024-01-11 11:30:15</div>
 | 
						||
                </div>
 | 
						||
            </div>
 | 
						||
            <div class="member-actions">
 | 
						||
                <button class="detail-btn" onclick="viewDetails('001238')">详情</button>
 | 
						||
            </div>
 | 
						||
        </div>
 | 
						||
    </div>
 | 
						||
 | 
						||
    <div class="pagination">
 | 
						||
        <button class="page-btn">首页</button>
 | 
						||
        <button class="page-btn">上一页</button>
 | 
						||
        <span class="page-info">第1页,共63页</span>
 | 
						||
        <button class="page-btn">下一页</button>
 | 
						||
        <button class="page-btn">尾页</button>
 | 
						||
    </div>
 | 
						||
 | 
						||
    <script>
 | 
						||
        function searchMembers() {
 | 
						||
            // 模拟搜索功能
 | 
						||
            alert('搜索功能已触发!');
 | 
						||
            // 这里可以添加实际的搜索逻辑
 | 
						||
        }
 | 
						||
 | 
						||
        function viewDetails(memberId) {
 | 
						||
            // 模拟查看详情功能
 | 
						||
            alert(`查看会员 ${memberId} 的详细信息`);
 | 
						||
            // 这里可以添加跳转到详情页面的逻辑
 | 
						||
        }
 | 
						||
 | 
						||
        // 添加触摸反馈
 | 
						||
        document.addEventListener('touchstart', function(e) {
 | 
						||
            if (e.target.classList.contains('member-card')) {
 | 
						||
                e.target.style.transform = 'scale(0.98)';
 | 
						||
            }
 | 
						||
        });
 | 
						||
 | 
						||
        document.addEventListener('touchend', function(e) {
 | 
						||
            if (e.target.classList.contains('member-card')) {
 | 
						||
                e.target.style.transform = 'scale(1)';
 | 
						||
            }
 | 
						||
        });
 | 
						||
 | 
						||
        // 模拟加载更多数据
 | 
						||
        let isLoading = false;
 | 
						||
        window.addEventListener('scroll', function() {
 | 
						||
            if ((window.innerHeight + window.scrollY) >= document.body.offsetHeight - 1000 && !isLoading) {
 | 
						||
                isLoading = true;
 | 
						||
                // 这里可以添加加载更多数据的逻辑
 | 
						||
                setTimeout(() => {
 | 
						||
                    isLoading = false;
 | 
						||
                }, 1000);
 | 
						||
            }
 | 
						||
        });
 | 
						||
    </script>
 | 
						||
</body>
 | 
						||
</html> |