feat(web): 管理端菜单顺序与总览操作列查调用

This commit is contained in:
2026-10-09 13:42:14 +08:00
parent 31d963e956
commit 665fa088f5
4 changed files with 19 additions and 7 deletions
+2 -2
View File
@@ -43,10 +43,10 @@ const username = computed(
/** 收起时仅剩图标——每项必须带 icon(交互共性侧边栏六项) */ /** 收起时仅剩图标——每项必须带 icon(交互共性侧边栏六项) */
const items: MenuItemType[] = [ const items: MenuItemType[] = [
{ key: "/admin/overview", icon: DashboardOutlined, label: "总览" }, { key: "/admin/overview", icon: DashboardOutlined, label: "总览" },
{ key: "/admin/logs", icon: FileTextOutlined, label: "调用日志" }, { key: "/admin/members", icon: TeamOutlined, label: "成员管理" },
{ key: "/admin/keys", icon: KeyOutlined, label: "Key 管理" }, { key: "/admin/keys", icon: KeyOutlined, label: "Key 管理" },
{ key: "/admin/payments", icon: AccountBookOutlined, label: "支付记录" }, { key: "/admin/payments", icon: AccountBookOutlined, label: "支付记录" },
{ key: "/admin/members", icon: TeamOutlined, label: "成员管理" }, { key: "/admin/logs", icon: FileTextOutlined, label: "调用日志" },
{ key: "/admin/audit", icon: AuditOutlined, label: "审计日志" }, { key: "/admin/audit", icon: AuditOutlined, label: "审计日志" },
{ key: "/admin/settings", icon: SettingOutlined, label: "账号设置" }, { key: "/admin/settings", icon: SettingOutlined, label: "账号设置" },
]; ];
+12 -2
View File
@@ -87,7 +87,9 @@ function onMemberLogs(memberId: number | null) {
void router.push({ void router.push({
path: "/admin/logs", path: "/admin/logs",
query: { query: {
...(memberId == null ? { member_id: "unassigned" } : { member_id: String(memberId) }), ...(memberId == null
? { member_id: "unassigned" }
: { member_id: String(memberId) }),
...range.value, ...range.value,
}, },
}); });
@@ -144,6 +146,7 @@ const memberColumns = [
), ),
key: "data_cutoff", key: "data_cutoff",
}, },
{ title: "操作", key: "actions", width: 100 },
]; ];
const keyColumns = [ const keyColumns = [
@@ -233,7 +236,6 @@ const keyColumns = [
<a @click="onMemberClick(record.member_id)"> <a @click="onMemberClick(record.member_id)">
{{ record.member_name ?? "未归属" }} {{ record.member_name ?? "未归属" }}
</a> </a>
<a class="ov-log-link" @click="onMemberLogs(record.member_id)">查调用</a>
</template> </template>
<template v-else-if="column.key === 'key_count'"> <template v-else-if="column.key === 'key_count'">
{{ record.key_count }} {{ record.key_count }}
@@ -252,6 +254,14 @@ const keyColumns = [
<template v-else-if="column.key === 'data_cutoff'"> <template v-else-if="column.key === 'data_cutoff'">
{{ formatMinute(record.data_cutoff) }} {{ formatMinute(record.data_cutoff) }}
</template> </template>
<template v-else-if="column.key === 'actions'">
<a-button
size="small"
@click="() => onMemberLogs(record.member_id)"
>
查调用
</a-button>
</template>
</template> </template>
</a-table> </a-table>
</section> </section>
+4 -2
View File
@@ -28,13 +28,15 @@
| 菜单 | 页面 | 职责一句话 | | 菜单 | 页面 | 职责一句话 |
|------|------|-----------| |------|------|-----------|
| 总览 | 全员总览 | 健康与用量全景(首页,登录后落地) | | 总览 | 全员总览 | 健康与用量全景(首页,登录后落地) |
| 调用日志 | 请求明细 | 全池模型请求查询与筛选 | | 成员管理 | 成员清单 | 开户、令牌、停用 |
| Key 管理 | key 清单 | 登记、启停、归属 | | Key 管理 | key 清单 | 登记、启停、归属 |
| 支付记录 | 记录清单 | 订阅/充值登记、核对 | | 支付记录 | 记录清单 | 订阅/充值登记、核对 |
| 成员管理 | 成员清单 | 开户、令牌、停用 | | 调用日志 | 请求明细 | 全池模型请求查询与筛选 |
| 审计日志 | 操作留痕 | 管理动作时间线 | | 审计日志 | 操作留痕 | 管理动作时间线 |
| 账号设置 | 改密 | 会话体系基本配套 | | 账号设置 | 改密 | 会话体系基本配套 |
顺序逻辑:先看全景 → 立对象(成员 → Key → 支付)→ 查事实(调用日志)→ 系统(审计 / 账号)。
- 侧边栏底部:当前用户名 + 登出(登出即删会话行 → 回登录页) - 侧边栏底部:当前用户名 + 登出(登出即删会话行 → 回登录页)
- 成员视图**无侧边栏**(单页,页头导航) - 成员视图**无侧边栏**(单页,页头导航)
+1 -1
View File
@@ -12,7 +12,7 @@
## 1. 页面定位 ## 1. 页面定位
- 侧边栏新项「**调用日志**」(建议插在「总览」之后、「Key 管理」之前——先看现象再管对象) - 侧边栏项「**调用日志**」(排在「支付记录」之后:对象链之后的事实查询)
- 纯查询页:无登记、无启停、无删除;排查与核对入口 - 纯查询页:无登记、无启停、无删除;排查与核对入口
- 与成员视图的日志表**列语义同构**,但范围是**全池**且可筛错误行 - 与成员视图的日志表**列语义同构**,但范围是**全池**且可筛错误行