feat(admin): 优化后台运维与任务管理

完善平台、基准模型、定价规则和实时负载的紧凑查询与滚动展示,并固定关键操作列。

新增管理员任务记录、批量计费结算和用户组限流、额度及模型权限维护能力,同时补充任务脱敏、查询索引与 OpenAPI 契约。

验证:pnpm openapi、Go 全量测试、pnpm lint、pnpm test、pnpm build、gofmt 与差异格式检查均通过。
This commit is contained in:
2026-07-25 01:32:49 +08:00
parent b29d539d49
commit de10875439
38 changed files with 5015 additions and 425 deletions
+78
View File
@@ -239,6 +239,62 @@ strong {
margin-bottom: -52px;
}
.adminTaskRecordViewport {
--sh-table-viewport-gap: 10px;
--sh-table-viewport-height: calc(100dvh - 120px);
}
.adminTaskFilters {
grid-template-columns: minmax(300px, 1.35fr) minmax(330px, 1fr) auto;
gap: 10px;
}
.adminTaskSearchLabel,
.adminTaskRangeLabel {
min-width: 0;
}
.adminTaskToolbarActions {
display: flex;
align-items: end;
justify-content: flex-end;
gap: 8px;
min-height: 32px;
}
.adminTaskAdvancedDialog {
width: min(820px, 100%);
}
.adminTaskAdvancedDialogBody {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.adminTaskResultSummary {
display: flex;
align-items: center;
justify-content: space-between;
gap: 10px;
color: var(--text-normal);
font-size: var(--font-size-sm);
}
.adminTaskResultSummary small {
color: var(--text-soft);
font-size: var(--font-size-xs);
}
.adminTaskRecordTable .shTableRow {
grid-template-columns: minmax(190px, 0.9fr) minmax(180px, 0.8fr) minmax(210px, 1fr) minmax(90px, 0.4fr) minmax(100px, 0.45fr) minmax(250px, 1.2fr) minmax(150px, 0.65fr) minmax(104px, 0.42fr) minmax(118px, 0.44fr) minmax(126px, 0.55fr) minmax(145px, 0.62fr) minmax(150px, 0.62fr) minmax(82px, 0.36fr) minmax(130px, 0.55fr) minmax(98px, 0.42fr) minmax(150px, 0.66fr) minmax(130px, 0.54fr);
min-width: 2513px;
align-items: start;
}
.taskRecordAdminIdentityCell {
overflow: visible;
white-space: normal;
}
.taskRecordSearchBox {
display: grid;
grid-template-columns: 18px minmax(0, 1fr);
@@ -974,6 +1030,14 @@ strong {
}
@media (max-width: 980px) {
.adminTaskFilters {
grid-template-columns: 1fr;
}
.adminTaskToolbarActions {
justify-content: flex-start;
}
.contentShell {
width: 100%;
}
@@ -1027,6 +1091,20 @@ strong {
}
@media (max-width: 560px) {
.adminTaskToolbarActions {
align-items: stretch;
flex-direction: column;
}
.adminTaskAdvancedDialogBody {
grid-template-columns: 1fr;
}
.adminTaskResultSummary {
align-items: flex-start;
flex-direction: column;
}
.walletMetricGrid {
grid-template-columns: 1fr;
}