feat: 统一管理端多语言、配置与票据/结算页面重构

This commit is contained in:
2026-05-20 16:27:06 +08:00
parent 37b13278ef
commit 08a11a1589
81 changed files with 2059 additions and 490 deletions

View File

@@ -78,6 +78,10 @@ export function AdminUsersConsole(): React.ReactElement {
() => items.find((u) => u.id === selectedId) ?? null,
[items, selectedId],
);
const roleNameBySlug = useMemo(
() => new Map((catalog?.roles ?? []).map((role) => [role.slug, role.name])),
[catalog],
);
const selectClassName = cn(
"h-8 w-full min-w-0 rounded-lg border border-input bg-transparent px-2.5 py-1 text-base outline-none transition-colors",
@@ -355,7 +359,7 @@ export function AdminUsersConsole(): React.ReactElement {
<Table id="admin-users-table">
<TableHeader>
<TableRow>
<TableHead className="w-16">ID</TableHead>
<TableHead className="w-16">{t("table.id", { ns: "common" })}</TableHead>
<TableHead>{t("table.account")}</TableHead>
<TableHead>{t("table.nickname")}</TableHead>
<TableHead className="w-20 whitespace-nowrap">{t("table.status")}</TableHead>
@@ -403,7 +407,7 @@ export function AdminUsersConsole(): React.ReactElement {
) : (
row.roles.map((slug) => (
<Badge key={slug} variant="secondary">
{slug}
{roleNameBySlug.get(slug) ?? slug}
</Badge>
))
)}
@@ -497,7 +501,7 @@ export function AdminUsersConsole(): React.ReactElement {
/>
<span className="space-y-0.5">
<span className="block leading-none font-medium">{role.name}</span>
<span className="text-xs text-muted-foreground">{role.slug}</span>
<span className="text-xs text-muted-foreground">{role.description ?? ""}</span>
</span>
</label>
);
@@ -605,7 +609,7 @@ export function AdminUsersConsole(): React.ReactElement {
/>
<span className="space-y-0.5">
<span className="block leading-none font-medium">{role.name}</span>
<span className="text-xs text-muted-foreground">{role.slug}</span>
<span className="text-xs text-muted-foreground">{role.description ?? ""}</span>
</span>
</label>
);