Add vue-router, login/setup flow and backend logging

Refactor frontend to route-based navigation with vue-router, add
system setup and login pages with API integration. Add structured
logging, access-log middleware and startup lifecycle to FastAPI
backend.
This commit is contained in:
2026-05-06 22:23:42 +08:00
parent 83d7da3d62
commit ae63766c91
35 changed files with 3762 additions and 404 deletions

View File

@@ -4,6 +4,68 @@
grid-template-columns: 220px minmax(0, 1fr);
background: var(--bg);
}
.boot-state {
min-height: 100dvh;
display: grid;
place-items: center;
padding: 24px;
background:
radial-gradient(circle at top left, rgba(16, 185, 129, 0.16), transparent 24rem),
radial-gradient(circle at bottom right, rgba(59, 130, 246, 0.14), transparent 28rem),
#f8fafc;
}
.boot-card {
width: min(560px, 100%);
padding: 36px;
border-radius: 8px;
border: 1px solid rgba(148, 163, 184, 0.22);
background: rgba(255, 255, 255, 0.88);
box-shadow: 0 24px 60px rgba(15, 23, 42, 0.12);
display: grid;
gap: 14px;
}
.boot-card h1 {
font-size: 28px;
}
.boot-card p {
color: var(--muted);
line-height: 1.7;
}
.boot-badge {
display: inline-flex;
width: fit-content;
min-height: 28px;
align-items: center;
padding: 0 10px;
border-radius: 999px;
background: rgba(16, 185, 129, 0.12);
color: #059669;
font-size: 12px;
font-weight: 800;
letter-spacing: 0.12em;
}
.boot-badge-error {
background: rgba(239, 68, 68, 0.12);
color: #b91c1c;
}
.boot-action {
width: fit-content;
min-height: 44px;
padding: 0 18px;
border: 1px solid transparent;
border-radius: 8px;
background: #0f172a;
color: #fff;
font-weight: 700;
}
.main { min-width: 0; display: grid; grid-template-rows: auto auto minmax(0, 1fr); }
.main.overview-main {
grid-template-rows: auto minmax(0, 1fr);