增加H5会员列表
This commit is contained in:
parent
7a506fb30e
commit
4f42c3ea57
|
|
@ -0,0 +1,541 @@
|
||||||
|
<!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>
|
||||||
Loading…
Reference in New Issue