dm-design/web/merchant/pages/member-view.html

556 lines
13 KiB
HTML

<div class="page-content">
<h2>会员列表</h2>
<!-- 筛选区域 -->
<div class="filter-section">
<div class="filter-row">
<div class="filter-item">
<label>店铺</label>
<select id="storeFilter">
<option value="">全部店铺</option>
<option value="时尚服装店">时尚服装店</option>
<option value="数码电子城">数码电子城</option>
<option value="美食餐厅">美食餐厅</option>
<option value="家居生活馆">家居生活馆</option>
<option value="运动健身店">运动健身店</option>
</select>
</div>
<div class="filter-item">
<label>用户昵称</label>
<input type="text" id="nicknameFilter" placeholder="请输入用户昵称">
</div>
<div class="filter-item">
<label>会员等级</label>
<select id="levelFilter">
<option value="">全部等级</option>
<option value="LV1">LV1</option>
<option value="LV2">LV2</option>
<option value="LV3">LV3</option>
<option value="LV4">LV4</option>
</select>
</div>
<div class="filter-item">
<label>注册时间</label>
<input type="date" id="registrationDate">
</div>
</div>
<div class="filter-actions">
<button class="btn btn-primary" onclick="searchMembers()">筛选查询</button>
</div>
</div>
<!-- 统计信息 -->
<div class="stats-section">
<div class="stats-item">
<div class="stats-icon member-icon"></div>
<div class="stats-content">
<div class="stats-label">会员总数</div>
<div class="stats-value">1,247</div>
</div>
</div>
<div class="stats-item">
<div class="stats-icon new-member-icon"></div>
<div class="stats-content">
<div class="stats-label">今日新增</div>
<div class="stats-value">23</div>
</div>
</div>
</div>
<!-- 会员列表表格 -->
<div class="table-container">
<table class="member-table">
<thead>
<tr>
<th><input type="checkbox" id="selectAll"></th>
<th>所属摊位 <span class="sort-icon"></span></th>
<th>用户ID <span class="sort-icon"></span></th>
<th>用户头像</th>
<th>用户昵称 <span class="sort-icon"></span></th>
<th>手机号</th>
<th>会员等级 <span class="sort-icon"></span></th>
<th>生日</th>
<th>注册时间 <span class="sort-icon"></span></th>
<th>操作</th>
</tr>
</thead>
<tbody id="memberTableBody">
<tr>
<td><input type="checkbox"></td>
<td>时尚服装店</td>
<td>M001</td>
<td><div class="avatar green-avatar"></div></td>
<td>张三</td>
<td>138****1234</td>
<td><span class="level-badge lv2">LV2</span></td>
<td>1990-05-15</td>
<td>2024-01-15 14:30:25</td>
<td><a href="#" class="detail-link" onclick="viewMemberDetail('M001')">详情</a></td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>数码电子城</td>
<td>M002</td>
<td><div class="avatar orange-avatar"></div></td>
<td>李四</td>
<td>139****5678</td>
<td><span class="level-badge lv1">LV1</span></td>
<td>1985-08-20</td>
<td>2024-02-20 09:15:30</td>
<td><a href="#" class="detail-link" onclick="viewMemberDetail('M002')">详情</a></td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>美食餐厅</td>
<td>M003</td>
<td><div class="avatar red-avatar"></div></td>
<td>王五</td>
<td>136****9012</td>
<td><span class="level-badge lv3">LV3</span></td>
<td>1992-12-08</td>
<td>2024-03-10 16:45:12</td>
<td><a href="#" class="detail-link" onclick="viewMemberDetail('M003')">详情</a></td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>家居生活馆</td>
<td>M004</td>
<td><div class="avatar purple-avatar"></div></td>
<td>赵六</td>
<td>137****3456</td>
<td><span class="level-badge lv1">LV1</span></td>
<td>1988-03-25</td>
<td>2024-04-05 11:20:45</td>
<td><a href="#" class="detail-link" onclick="viewMemberDetail('M004')">详情</a></td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>运动健身店</td>
<td>M005</td>
<td><div class="avatar pink-avatar"></div></td>
<td>孙七</td>
<td>135****7890</td>
<td><span class="level-badge lv4">LV4</span></td>
<td>1995-07-12</td>
<td>2024-05-22 13:55:18</td>
<td><a href="#" class="detail-link" onclick="viewMemberDetail('M005')">详情</a></td>
</tr>
<tr>
<td><input type="checkbox"></td>
<td>时尚服装店</td>
<td>M006</td>
<td><div class="avatar blue-avatar"></div></td>
<td>周八</td>
<td>134****2468</td>
<td><span class="level-badge lv2">LV2</span></td>
<td>1991-11-30</td>
<td>2024-06-18 08:35:22</td>
<td><a href="#" class="detail-link" onclick="viewMemberDetail('M006')">详情</a></td>
</tr>
</tbody>
</table>
</div>
<!-- 分页 -->
<div class="pagination-section">
<div class="pagination-info">
显示
<select id="pageSize">
<option value="20" selected>20</option>
<option value="50">50</option>
<option value="100">100</option>
</select>
条记录,共 1,247 条
</div>
<div class="pagination-controls">
<span>首页</span>
<span>上一页</span>
<span><input type="number" value="1" min="1" max="63"> 页,共 63 页</span>
<span>下一页</span>
<span>尾页</span>
</div>
</div>
</div>
<style>
/* 会员查看页面专用样式 */
/* 筛选区域样式 */
.filter-section {
background: #fff;
padding: 20px;
margin-bottom: 20px;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
}
.filter-row {
display: flex;
gap: 20px;
flex-wrap: wrap;
align-items: end;
}
.filter-item {
display: flex;
flex-direction: column;
min-width: 150px;
}
.filter-item label {
color: #666;
font-size: 14px;
margin-bottom: 5px;
font-weight: normal;
}
.filter-item select,
.filter-item input {
padding: 8px 12px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 14px;
min-height: 36px;
}
.filter-item input::placeholder {
color: #999;
}
.filter-actions {
margin-top: 15px;
}
.filter-actions .btn {
background: #10b981;
color: white;
border: none;
padding: 8px 20px;
border-radius: 4px;
cursor: pointer;
font-size: 14px;
}
.filter-actions .btn:hover {
background: #059669;
}
/* 统计信息样式 */
.stats-section {
display: flex;
gap: 20px;
margin-bottom: 20px;
}
.stats-item {
background: #fff;
padding: 20px;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
display: flex;
align-items: center;
gap: 15px;
min-width: 200px;
}
.stats-icon {
width: 40px;
height: 40px;
border-radius: 50%;
display: flex;
align-items: center;
justify-content: center;
position: relative;
}
.member-icon {
background: rgba(59, 130, 246, 0.1);
}
.member-icon::before {
content: "👥";
font-size: 20px;
}
.new-member-icon {
background: rgba(16, 185, 129, 0.1);
}
.new-member-icon::before {
content: "✨";
font-size: 18px;
}
.stats-content {
flex: 1;
}
.stats-label {
color: #666;
font-size: 14px;
margin-bottom: 4px;
}
.stats-value {
color: #333;
font-size: 24px;
font-weight: bold;
}
/* 表格容器样式 */
.table-container {
background: #fff;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
overflow: hidden;
margin-bottom: 20px;
}
/* 会员表格样式 */
.member-table {
width: 100%;
border-collapse: collapse;
font-size: 14px;
}
.member-table thead {
background: #f8fafc;
}
.member-table th {
padding: 12px 16px;
text-align: left;
font-weight: 500;
color: #374151;
border-bottom: 1px solid #e5e7eb;
position: relative;
}
.member-table th:first-child {
width: 40px;
text-align: center;
}
.member-table td {
padding: 12px 16px;
border-bottom: 1px solid #f3f4f6;
vertical-align: middle;
}
.member-table td:first-child {
text-align: center;
}
.member-table tbody tr:hover {
background-color: #f9fafb;
}
/* 排序图标样式 */
.sort-icon {
color: #9ca3af;
margin-left: 4px;
cursor: pointer;
user-select: none;
}
.sort-icon:hover {
color: #374151;
}
/* 头像样式 */
.avatar {
width: 32px;
height: 32px;
border-radius: 50%;
display: inline-flex;
align-items: center;
justify-content: center;
color: white;
font-weight: 500;
font-size: 14px;
}
.green-avatar {
background: #10b981;
}
.orange-avatar {
background: #f59e0b;
}
.red-avatar {
background: #ef4444;
}
.purple-avatar {
background: #8b5cf6;
}
.pink-avatar {
background: #ec4899;
}
.blue-avatar {
background: #3b82f6;
}
/* 等级徽章样式 */
.level-badge {
padding: 4px 8px;
border-radius: 12px;
font-size: 12px;
font-weight: 500;
text-align: center;
min-width: 36px;
display: inline-block;
}
.level-badge.lv1 {
background: #fef3c7;
color: #92400e;
}
.level-badge.lv2 {
background: #ddd6fe;
color: #6b21a8;
}
.level-badge.lv3 {
background: #fecaca;
color: #991b1b;
}
.level-badge.lv4 {
background: #a7f3d0;
color: #065f46;
}
/* 详情链接样式 */
.detail-link {
color: #10b981;
text-decoration: none;
font-size: 14px;
}
.detail-link:hover {
color: #059669;
text-decoration: underline;
}
/* 分页样式 */
.pagination-section {
background: #fff;
padding: 15px 20px;
border-radius: 8px;
box-shadow: 0 2px 4px rgba(0,0,0,0.1);
display: flex;
justify-content: space-between;
align-items: center;
flex-wrap: wrap;
gap: 15px;
}
.pagination-info {
color: #666;
font-size: 14px;
display: flex;
align-items: center;
gap: 8px;
}
.pagination-info select {
padding: 4px 8px;
border: 1px solid #ddd;
border-radius: 4px;
font-size: 14px;
}
.pagination-controls {
display: flex;
align-items: center;
gap: 12px;
color: #666;
font-size: 14px;
}
.pagination-controls span {
cursor: pointer;
padding: 4px 8px;
border-radius: 4px;
transition: background-color 0.2s;
}
.pagination-controls span:hover {
background: #f3f4f6;
color: #374151;
}
.pagination-controls input {
width: 50px;
padding: 4px 8px;
border: 1px solid #ddd;
border-radius: 4px;
text-align: center;
font-size: 14px;
}
/* 复选框样式优化 */
input[type="checkbox"] {
width: 16px;
height: 16px;
cursor: pointer;
}
/* 响应式设计 */
@media (max-width: 1200px) {
.filter-row {
gap: 15px;
}
.filter-item {
min-width: 120px;
}
.stats-section {
flex-wrap: wrap;
}
.stats-item {
min-width: 180px;
}
}
@media (max-width: 768px) {
.filter-row {
flex-direction: column;
gap: 15px;
}
.filter-item {
min-width: auto;
width: 100%;
}
.stats-section {
flex-direction: column;
}
.stats-item {
min-width: auto;
}
.member-table {
font-size: 12px;
}
.member-table th,
.member-table td {
padding: 8px 12px;
}
.pagination-section {
flex-direction: column;
text-align: center;
}
}
</style>