Files
Fuxsto-V4/Dashboard/t.html
2025-10-18 10:19:37 +08:00

984 lines
31 KiB
HTML

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title>移动端仪表盘</title>
<style>
:root {
--mdui-primary: #2962ff;
--mdui-surface: #ffffff;
--mdui-background: #f5f5f5;
--mdui-text-primary: rgba(0, 0, 0, 0.87);
--mdui-text-secondary: rgba(0, 0, 0, 0.6);
--mdui-shape-corner: 20px;
}
body {
margin: 0;
background: var(--mdui-background);
font-family: 'Segoe UI', system-ui;
color: var(--mdui-text-primary);
}
.container {
padding: 16px;
max-width: 500px;
margin: 0 auto;
}
.status-card {
background: var(--mdui-surface);
border-radius: var(--mdui-shape-corner);
padding: 24px;
margin-bottom: 16px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
transition: transform 0.2s;
}
.status-card:hover {
transform: translateY(-2px);
}
.metric-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 20px;
}
.metric-value {
font-size: 32px;
font-weight: 700;
color: var(--mdui-primary);
}
.metric-label {
color: var(--mdui-text-secondary);
font-size: 14px;
}
.quick-actions {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 12px;
margin: 24px 0;
}
.action-button {
background: var(--mdui-surface);
border: none;
border-radius: 16px;
padding: 16px;
display: flex;
flex-direction: column;
align-items: center;
gap: 8px;
cursor: pointer;
transition: all 0.2s;
}
.action-button:hover {
background: #f0f4ff;
}
.action-button svg {
width: 24px;
height: 24px;
fill: var(--mdui-primary);
}
.chart-container {
background: var(--mdui-surface);
border-radius: var(--mdui-shape-corner);
padding: 16px;
margin: 16px 0;
}
.progress-bar {
height: 8px;
background: #eeeeee;
border-radius: 4px;
overflow: hidden;
margin: 12px 0;
}
.progress-fill {
width: 65%;
height: 100%;
background: var(--mdui-primary);
border-radius: 4px;
transition: width 0.3s ease;
}
.nav-bottom {
position: fixed;
bottom: 0;
width: 100%;
background: var(--mdui-surface);
display: flex;
justify-content: space-around;
padding: 12px 0;
box-shadow: 0 -2px 12px rgba(0, 0, 0, 0.05);
}
.nav-item {
display: flex;
flex-direction: column;
align-items: center;
color: var(--mdui-text-secondary);
padding: 8px;
border-radius: 12px;
transition: all 0.2s;
}
.nav-item.active {
color: var(--mdui-primary);
background: #e8efff;
}
.nav-item svg {
width: 20px;
height: 20px;
margin-bottom: 4px;
}
.user-card {
background: var(--mdui-surface);
border-radius: var(--mdui-shape-corner);
padding: 16px;
margin-bottom: 16px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
transition: transform 0.2s;
}
.user-card:hover {
transform: translateY(-2px);
}
.user-card-header {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 16px;
}
.user-card-avatar {
width: 48px;
height: 48px;
border-radius: 50%;
background: #e8efff;
display: flex;
align-items: center;
justify-content: center;
}
.user-card-avatar svg {
width: 24px;
height: 24px;
fill: var(--mdui-primary);
}
.user-card-info {
flex: 1;
}
.user-card-name {
font-size: 18px;
font-weight: 600;
margin-bottom: 4px;
}
.user-card-role {
font-size: 14px;
color: var(--mdui-text-secondary);
}
.user-card-stats {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 12px;
}
.user-card-stat {
text-align: center;
}
.user-card-stat-value {
font-size: 18px;
font-weight: 600;
color: var(--mdui-primary);
}
.user-card-stat-label {
font-size: 12px;
color: var(--mdui-text-secondary);
}
.user-info-card {
background: var(--mdui-surface);
border-radius: var(--mdui-shape-corner);
padding: 16px;
margin-bottom: 16px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
transition: transform 0.2s;
}
.user-info-card:hover {
transform: translateY(-2px);
}
.user-info-card-header {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 16px;
}
.user-info-card-avatar {
width: 48px;
height: 48px;
border-radius: 50%;
background: #e8efff;
display: flex;
align-items: center;
justify-content: center;
}
.user-info-card-avatar svg {
width: 24px;
height: 24px;
fill: var(--mdui-primary);
}
.user-info-card-info {
flex: 1;
}
.user-info-card-name {
font-size: 18px;
font-weight: 600;
margin-bottom: 4px;
}
.user-info-card-role {
font-size: 14px;
color: var(--mdui-text-secondary);
}
.user-info-card-details {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 12px;
}
.user-info-card-detail {
display: flex;
align-items: center;
gap: 8px;
}
.user-info-card-detail svg {
width: 18px;
height: 18px;
fill: var(--mdui-primary);
}
.user-info-card-detail-label {
font-size: 14px;
color: var(--mdui-text-secondary);
}
.user-info-card-detail-value {
font-size: 14px;
font-weight: 600;
}
.table-container {
background: var(--mdui-surface);
border-radius: var(--mdui-shape-corner);
padding: 16px;
margin-bottom: 16px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}
.table-container table {
width: 100%;
border-collapse: collapse;
}
.table-container th,
.table-container td {
padding: 12px;
text-align: left;
border-bottom: 1px solid #eeeeee;
}
.table-container th {
font-weight: 600;
color: var(--mdui-text-primary);
}
.table-container td {
color: var(--mdui-text-secondary);
}
.form-container {
background: var(--mdui-surface);
border-radius: var(--mdui-shape-corner);
padding: 16px;
margin-bottom: 16px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}
.form-container label {
display: block;
font-size: 14px;
color: var(--mdui-text-secondary);
margin-bottom: 8px;
}
.form-container input,
.form-container select,
.form-container textarea {
width: 100%;
padding: 12px;
border: 1px solid #eeeeee;
border-radius: 8px;
font-size: 14px;
color: var(--mdui-text-primary);
margin-bottom: 16px;
transition: border-color 0.2s;
}
.form-container input:focus,
.form-container select:focus,
.form-container textarea:focus {
border-color: var(--mdui-primary);
outline: none;
}
.form-container button {
background: var(--mdui-primary);
color: white;
border: none;
border-radius: 8px;
padding: 12px 24px;
font-size: 14px;
cursor: pointer;
transition: background 0.2s;
}
.form-container button:hover {
background: #1e4dff;
}
.alert {
background: var(--mdui-surface);
border-radius: var(--mdui-shape-corner);
padding: 16px;
margin-bottom: 16px;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
display: flex;
align-items: center;
gap: 12px;
}
.alert svg {
width: 24px;
height: 24px;
fill: var(--mdui-primary);
}
.alert-success {
background: #e8f5e9;
}
.alert-success svg {
fill: #4caf50;
}
.alert-warning {
background: #fff3e0;
}
.alert-warning svg {
fill: #ff9800;
}
.alert-error {
background: #ffebee;
}
.alert-error svg {
fill: #f44336;
}
.alert-info {
background: #e3f2fd;
}
.alert-info svg {
fill: #2196f3;
}
.modal {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.5);
justify-content: center;
align-items: center;
}
.modal-content {
background: var(--mdui-surface);
border-radius: var(--mdui-shape-corner);
padding: 24px;
max-width: 400px;
width: 100%;
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}
.modal-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 16px;
}
.modal-title {
font-size: 18px;
font-weight: 600;
}
.modal-close {
background: none;
border: none;
cursor: pointer;
padding: 8px;
}
.modal-close svg {
width: 24px;
height: 24px;
fill: var(--mdui-text-secondary);
}
.modal-body {
margin-bottom: 16px;
}
.modal-footer {
display: flex;
justify-content: flex-end;
gap: 8px;
}
.modal-footer button {
padding: 8px 16px;
border: none;
border-radius: 8px;
cursor: pointer;
transition: background 0.2s;
}
.modal-footer button.primary {
background: var(--mdui-primary);
color: white;
}
.modal-footer button.primary:hover {
background: #1e4dff;
}
.modal-footer button.secondary {
background: #eeeeee;
color: var(--mdui-text-primary);
}
.modal-footer button.secondary:hover {
background: #dddddd;
}
.pagination {
display: flex;
justify-content: center;
gap: 8px;
margin: 16px 0;
}
.pagination button {
background: var(--mdui-surface);
border: none;
border-radius: 8px;
padding: 8px 12px;
cursor: pointer;
transition: background 0.2s;
}
.pagination button.active {
background: var(--mdui-primary);
color: white;
}
.pagination button:hover {
background: #f0f4ff;
}
.tabs {
display: flex;
gap: 8px;
margin-bottom: 16px;
}
.tabs button {
background: var(--mdui-surface);
border: none;
border-radius: 8px;
padding: 8px 16px;
cursor: pointer;
transition: background 0.2s;
}
.tabs button.active {
background: var(--mdui-primary);
color: white;
}
.tabs button:hover {
background: #f0f4ff;
}
.dropdown {
position: relative;
display: inline-block;
}
.dropdown-button {
background: var(--mdui-surface);
border: none;
border-radius: 8px;
padding: 8px 16px;
cursor: pointer;
transition: background 0.2s;
}
.dropdown-button:hover {
background: #f0f4ff;
}
.dropdown-content {
display: none;
position: absolute;
background: var(--mdui-surface);
border-radius: var(--mdui-shape-corner);
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
min-width: 160px;
z-index: 1;
}
.dropdown-content a {
display: block;
padding: 8px 16px;
text-decoration: none;
color: var(--mdui-text-primary);
transition: background 0.2s;
}
.dropdown-content a:hover {
background: #f0f4ff;
}
.dropdown:hover .dropdown-content {
display: block;
}
.timeline {
display: flex;
flex-direction: column;
gap: 16px;
}
.timeline-item {
display: flex;
align-items: flex-start;
gap: 12px;
}
.timeline-item-icon {
width: 24px;
height: 24px;
border-radius: 50%;
background: #e8efff;
display: flex;
align-items: center;
justify-content: center;
}
.timeline-item-icon svg {
width: 16px;
height: 16px;
fill: var(--mdui-primary);
}
.timeline-item-content {
flex: 1;
}
.timeline-item-title {
font-size: 14px;
font-weight: 600;
margin-bottom: 4px;
}
.timeline-item-description {
font-size: 12px;
color: var(--mdui-text-secondary);
}
.timeline-item-time {
font-size: 12px;
color: var(--mdui-text-secondary);
}
</style>
</head>
<body>
<div class="container">
<!-- 状态卡片 -->
<div class="status-card">
<div class="metric-header">
<div>
<div class="metric-value">85%</div>
<div class="metric-label">本月完成进度</div>
</div>
<svg viewBox="0 0 24 24" style="width: 40px; height: 40px; fill: var(--mdui-primary);">
<path d="M13 2.05v2.02c3.95.49 7 3.85 7 7.93 0 3.21-1.92 6.03-4.72 7.32l-1.43-1.43c2.13-1.1 3.65-3.29 3.65-5.89 0-3.31-2.69-6-6-6H15l-4 4 4 4h-2.07c-.5-2.84 1.7-5.38 4.5-5.9l1.03-1.03c-.91-.87-2.12-1.43-3.45-1.62V2.05zM12 19c-3.87 0-7-3.13-7-7 0-3.53 2.61-6.43 6-6.92V2.05C6.07 2.55 2 6.81 2 12c0 5.52 4.47 10 9.99 10 3.31 0 6.24-1.61 8.06-4.09l-1.6-1.6A7.925 7.925 0 0 1 12 19z"/>
</svg>
</div>
<div class="progress-bar">
<div class="progress-fill"></div>
</div>
</div>
<!-- 快速操作 -->
<div class="quick-actions">
<button class="action-button">
<svg viewBox="0 0 24 24">
<path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"/>
</svg>
<span>新建项目</span>
</button>
<button class="action-button">
<svg viewBox="0 0 24 24">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-1 17.93c-3.95-.49-7-3.85-7-7.93 0-.62.08-1.21.21-1.79L9 15v1c0 1.1.9 2 2 2v1.93zm6.9-2.54c-.26-.81-1-1.39-1.9-1.39h-1v-3c0-.55-.45-1-1-1H8v-2h2c.55 0 1-.45 1-1V7h2c1.1 0 2-.9 2-2v-.41c2.93 1.19 5 4.06 5 7.41 0 2.08-.8 3.97-2.1 5.39z"/>
</svg>
<span>数据分析</span>
</button>
<button class="action-button">
<svg viewBox="0 0 24 24">
<path d="M12 6v3l4-4-4-4v3c-4.42 0-8 3.58-8 8 0 1.57.46 3.03 1.24 4.26L6.7 14.8c-.45-.83-.7-1.79-.7-2.8 0-3.31 2.69-6 6-6zm6.76 1.74L17.3 9.2c.44.84.7 1.79.7 2.8 0 3.31-2.69 6-6 6v-3l-4 4 4 4v-3c4.42 0 8-3.58 8-8 0-1.57-.46-3.03-1.24-4.26z"/>
</svg>
<span>系统设置</span>
</button>
</div>
<!-- 数据图表 -->
<div class="chart-container">
<h3 style="margin:0 0 16px;">存储使用情况</h3>
<div style="display: flex; gap: 16px; align-items: center;">
<div style="flex:1;">
<div style="font-size: 12px; color: var(--mdui-text-secondary); margin-bottom: 8px;">
已用 15.2GB / 50GB
</div>
<div class="progress-bar">
<div class="progress-fill" style="width: 30%;"></div>
</div>
</div>
<svg viewBox="0 0 24 24" style="width: 24px; height:24px; fill: var(--mdui-primary);">
<path d="M8 17v-7.31l2.6 2.6L12 11l4-4 4 4 1.4-1.4-5.4-5.4L12 3 5.4 9.6 6.8 11 8 9.8v7.5z"/>
</svg>
</div>
</div>
<!-- 用户卡片 -->
<div class="user-card">
<div class="user-card-header">
<div class="user-card-avatar">
<svg viewBox="0 0 24 24">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z"/>
</svg>
</div>
<div class="user-card-info">
<div class="user-card-name">张三</div>
<div class="user-card-role">管理员</div>
</div>
</div>
<div class="user-card-stats">
<div class="user-card-stat">
<div class="user-card-stat-value">12</div>
<div class="user-card-stat-label">项目</div>
</div>
<div class="user-card-stat">
<div class="user-card-stat-value">45</div>
<div class="user-card-stat-label">任务</div>
</div>
<div class="user-card-stat">
<div class="user-card-stat-value">98%</div>
<div class="user-card-stat-label">完成率</div>
</div>
</div>
</div>
<!-- 用户信息卡片 -->
<div class="user-info-card">
<div class="user-info-card-header">
<div class="user-info-card-avatar">
<svg viewBox="0 0 24 24">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z"/>
</svg>
</div>
<div class="user-info-card-info">
<div class="user-info-card-name">李四</div>
<div class="user-info-card-role">开发者</div>
</div>
</div>
<div class="user-info-card-details">
<div class="user-info-card-detail">
<svg viewBox="0 0 24 24">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z"/>
</svg>
<div>
<div class="user-info-card-detail-label">邮箱</div>
<div class="user-info-card-detail-value">lisi@example.com</div>
</div>
</div>
<div class="user-info-card-detail">
<svg viewBox="0 0 24 24">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z"/>
</svg>
<div>
<div class="user-info-card-detail-label">电话</div>
<div class="user-info-card-detail-value">+86 123 4567 8901</div>
</div>
</div>
</div>
</div>
<!-- 表格 -->
<div class="table-container">
<h3 style="margin:0 0 16px;">用户列表</h3>
<table>
<thead>
<tr>
<th>姓名</th>
<th>角色</th>
<th>邮箱</th>
</tr>
</thead>
<tbody>
<tr>
<td>张三</td>
<td>管理员</td>
<td>zhangsan@example.com</td>
</tr>
<tr>
<td>李四</td>
<td>开发者</td>
<td>lisi@example.com</td>
</tr>
<tr>
<td>王五</td>
<td>设计师</td>
<td>wangwu@example.com</td>
</tr>
</tbody>
</table>
</div>
<!-- 表单 -->
<div class="form-container">
<h3 style="margin:0 0 16px;">用户注册</h3>
<form>
<label for="name">姓名</label>
<input type="text" id="name" placeholder="请输入姓名">
<label for="email">邮箱</label>
<input type="email" id="email" placeholder="请输入邮箱">
<label for="role">角色</label>
<select id="role">
<option value="admin">管理员</option>
<option value="developer">开发者</option>
<option value="designer">设计师</option>
</select>
<label for="bio">简介</label>
<textarea id="bio" rows="4" placeholder="请输入简介"></textarea>
<button type="submit">提交</button>
</form>
</div>
<!-- 提示信息 -->
<div class="alert alert-success">
<svg viewBox="0 0 24 24">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/>
</svg>
<div>操作成功!</div>
</div>
<div class="alert alert-warning">
<svg viewBox="0 0 24 24">
<path d="M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"/>
</svg>
<div>请注意,您的存储空间即将用完。</div>
</div>
<div class="alert alert-error">
<svg viewBox="0 0 24 24">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-2h2v2zm0-4h-2V7h2v6z"/>
</svg>
<div>操作失败,请重试。</div>
</div>
<div class="alert alert-info">
<svg viewBox="0 0 24 24">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"/>
</svg>
<div>这是一个信息提示。</div>
</div>
<!-- 模态框 -->
<div class="modal" id="modal">
<div class="modal-content">
<div class="modal-header">
<div class="modal-title">模态框标题</div>
<button class="modal-close" onclick="closeModal()">
<svg viewBox="0 0 24 24">
<path d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"/>
</svg>
</button>
</div>
<div class="modal-body">
<p>这是一个模态框的内容。</p>
</div>
<div class="modal-footer">
<button class="secondary" onclick="closeModal()">取消</button>
<button class="primary" onclick="closeModal()">确定</button>
</div>
</div>
</div>
<!-- 分页 -->
<div class="pagination">
<button class="active">1</button>
<button>2</button>
<button>3</button>
<button>4</button>
<button>5</button>
</div>
<!-- 标签页 -->
<div class="tabs">
<button class="active">标签1</button>
<button>标签2</button>
<button>标签3</button>
</div>
<!-- 下拉菜单 -->
<div class="dropdown">
<button class="dropdown-button">下拉菜单</button>
<div class="dropdown-content">
<a href="#">选项1</a>
<a href="#">选项2</a>
<a href="#">选项3</a>
</div>
</div>
<!-- 时间轴 -->
<div class="timeline">
<div class="timeline-item">
<div class="timeline-item-icon">
<svg viewBox="0 0 24 24">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z"/>
</svg>
</div>
<div class="timeline-item-content">
<div class="timeline-item-title">事件1</div>
<div class="timeline-item-description">这是事件1的描述。</div>
<div class="timeline-item-time">2023-10-01</div>
</div>
</div>
<div class="timeline-item">
<div class="timeline-item-icon">
<svg viewBox="0 0 24 24">
<path d="M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 3c1.66 0 3 1.34 3 3s-1.34 3-3 3-3-1.34-3-3 1.34-3 3-3zm0 14.2c-2.5 0-4.71-1.28-6-3.22.03-1.99 4-3.08 6-3.08 1.99 0 5.97 1.09 6 3.08-1.29 1.94-3.5 3.22-6 3.22z"/>
</svg>
</div>
<div class="timeline-item-content">
<div class="timeline-item-title">事件2</div>
<div class="timeline-item-description">这是事件2的描述。</div>
<div class="timeline-item-time">2023-10-02</div>
</div>
</div>
</div>
<!-- 最近活动 -->
<div class="status-card">
<h3 style="margin:0 0 16px;">最近活动</h3>
<div style="display: grid; gap: 12px;">
<div style="display: flex; align-items: center; gap: 12px;">
<div style="background: #e8efff; border-radius: 50%; padding: 8px;">
<svg viewBox="0 0 24 24" style="width: 18px; height:18px; fill: var(--mdui-primary);">
<path d="M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"/>
</svg>
</div>
<div>
<div>新用户注册</div>
<div style="font-size: 12px; color: var(--mdui-text-secondary);">2分钟前</div>
</div>
</div>
<!-- 更多活动项... -->
</div>
</div>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
</div>
<!-- 底部导航 -->
<nav class="nav-bottom">
<div class="nav-item active">
<svg viewBox="0 0 24 24"><path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/></svg>
首页
</div>
<div class="nav-item">
<svg viewBox="0 0 24 24"><path d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5s-3 1.34-3 3 1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z"/></svg>
用户
</div>
<div class="nav-item">
<svg viewBox="0 0 24 24"><path d="M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-8 12H8c-.55 0-1-.45-1-1s.45-1 1-1h3c.55 0 1 .45 1 1s-.45 1-1 1zm0-4H8c-.55 0-1-.45-1-1s.45-1 1-1h3c.55 0 1 .45 1 1s-.45 1-1 1zm0-4H8c-.55 0-1-.45-1-1s.45-1 1-1h3c.55 0 1 .45 1 1s-.45 1-1 1z"/></svg>
统计
</div>
</nav>
<script>
function openModal() {
document.getElementById('modal').style.display = 'flex';
}
function closeModal() {
document.getElementById('modal').style.display = 'none';
}
</script>
<script src="https://cdn.fss.fuxsto.cn/d/ajax/libs/eruda/eruda.js"></script>
<script>eruda.init();</script>
<script src="https://cdn.fss.fuxsto.cn/d/axios@1.7.9/dist/axios.min.js"></script>
<script src="https://cdn.fss.fuxsto.cn/d/vue@3.5.13/dist/vue.global.prod.js"></script>
<script src="msg.js"></script>
<script src="app.js"></script>
</body>
</html>