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> |