feat: 新增数据看板与用户管理模块

- 数据看板:注册用户 / 图章收集 / 兑换次数 三张卡片,展示总数及本日 / 本周 / 本月新增
- 时间边界按 Asia/Shanghai 计算,周一为一周起点
- 用户管理:只读列表展示用户名、手机号、已收集、已兑换及注册时间,支持搜索
- 登录后默认跳转到数据看板,侧边栏重新编号为 7 项

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-19 19:37:05 +08:00
parent b4a0e23c7e
commit 52169ac71d
11 changed files with 414 additions and 11 deletions

View File

@@ -7,10 +7,12 @@ import MusicPage from "./pages/MusicPage";
import AdminLogin from "./admin/AdminLogin";
import AdminGuard from "./admin/AdminGuard";
import AdminLayout from "./admin/AdminLayout";
import Dashboard from "./admin/Dashboard";
import StampList from "./admin/StampList";
import ArticleList from "./admin/ArticleList";
import MusicList from "./admin/MusicList";
import RuleList from "./admin/RuleList";
import UsersList from "./admin/UsersList";
import RedemptionLog from "./admin/RedemptionLog";
function CollectRedirect() {
@@ -33,10 +35,12 @@ export default function App() {
<Route path="/admin" element={<AdminLogin />} />
<Route element={<AdminGuard />}>
<Route element={<AdminLayout />}>
<Route path="/admin/dashboard" element={<Dashboard />} />
<Route path="/admin/stamps" element={<StampList />} />
<Route path="/admin/articles" element={<ArticleList />} />
<Route path="/admin/music" element={<MusicList />} />
<Route path="/admin/rules" element={<RuleList />} />
<Route path="/admin/users" element={<UsersList />} />
<Route path="/admin/redemptions" element={<RedemptionLog />} />
</Route>
</Route>