Appearance
Portal 全站清单 · 按角色
每页列「接口缺失」与「字段缺失」,均精确到位置:
- 字段缺失 =
接口→ 缺字段名(前端已尝试读取的字段,后端未返回,显示"接口未返回")- 接口缺失 = 页面哪个位置(按钮/区块)需要该接口 角色归属依据各页面代码
role判断核实。前端已全部接真接口、无 mock。
1. 组织管理员页面
/dashboard 组织概览
- 字段缺失
GET /portal/usage/org-stats→ 缺「组织请求数」字段(指标卡"组织请求数"显示"接口未返回")- 调用日志
logs→ 缺organizationCost(供应侧成本),导致指标卡「组织采购成本」「成员实际消费」「差额」均无值
- 接口缺失:无
/members 成员管理
- 字段缺失(均来自
GET /portal/org/member-usage)- 表格列「累计消费」→ 缺
totalCost/cost/amount/consumed - 表格列「个人余额」→ 缺
personalBalance - 表格列「组织余额」→ 缺
orgBalance - 指标卡「成员累计消费」→ 同上(无 consumed 字段)
- 表格列「累计消费」→ 缺
- 接口缺失
- 操作列「停用/启用」按钮(members.tsx:541 现弹 toast "接口尚未开放")→ 需
PUT /portal/org/members/{id}/status - 邀请表「重新邀请」按钮(:436 现仅重开弹窗)→ 需
POST /portal/org/invitations/{id}/resend - 邀请管理缺「撤销」入口 → 需
DELETE /portal/org/invitations/{id}
- 操作列「停用/启用」按钮(members.tsx:541 现弹 toast "接口尚未开放")→ 需
/departments 部门管理
- 字段缺失:无 接口缺失:无(部门树 CRUD、成员归属均已接入)
/models 模型管理(管理员视图)
- 字段缺失:无 接口缺失:无(组织模型开关、成员定价已接入)
/org/billing 组织财务
- 字段缺失
- 日志/billing → 缺按模型归集的结算字段("按模型结算"表空,:293 提示"当前接口未返回")
- 接口缺失
- 「账单与发票」区块(:405-406)→ 需组织月账单接口
GET /portal/org/statements - 同区块开票操作 → 需开票申请接口
- 「账单与发票」区块(:405-406)→ 需组织月账单接口
/observability 可观测性
- 字段缺失
- 日志/billing → 缺
organizationCost,指标卡「组织采购成本」显示"当前接口未返回"
- 日志/billing → 缺
- 接口缺失:无
/org/settings 组织设置
- 字段缺失:无
- 接口缺失
- 「保存」按钮(org.settings.tsx:130 禁用,标"保存接口未开放")→ 需
PUT /portal/org(改组织名等)
- 「保存」按钮(org.settings.tsx:130 禁用,标"保存接口未开放")→ 需
/settings/security 安全设置
- 字段缺失
- 指标卡「近 30 日异常拦截」(:120-122) → 缺拦截统计字段
- 接口缺失
- Tab「异常拦截记录」(:135) → 需拦截记录查询接口
- Tab「安全策略配置」(:141) → 需频率限制/IP 黑名单读写接口
/analytics/usage 用量分析(管理员视图)
- 字段缺失
GET /portal/org/departments→ 缺「成员→部门归属」字段,无法按部门归集用量(admin-usage-view 明确说明)
- 接口缺失:无
2. 组织成员页面
/dashboard 成员工作台
- 字段缺失(均来自
GET /portal/billing/summary)- 账户摘要「累计充值」→ 缺
totalRecharge/recharge/rechargeAmount - 账户摘要「组织发放」→ 缺
totalGranted/granted - 账户摘要「累计消费」→ 缺
totalCost/cost/totalSpent
- 账户摘要「累计充值」→ 缺
- 接口缺失:无
/billing 账单
- 字段缺失(均来自
GET /portal/billing/summary)- 指标卡「累计成员充值」→ 缺
totalRecharge/totalRecharged/rechargeAmount - 指标卡「累计组织发放」→ 缺
totalGranted/grantAmount/granted
- 指标卡「累计成员充值」→ 缺
- 接口缺失:无
/billing/credits 充值
- 字段缺失:无 接口缺失:无
/keys 我的 Key
- 字段缺失
- 表格列「累计消费」→
GET /portal/keys缺creditUsed - 表格列「调用次数」→ 日志缺按
keyPrefix聚合的次数(显示"未提供")
- 表格列「累计消费」→
- 接口缺失:无
/keys/create 创建 Key
- 字段缺失:无 接口缺失:无
/playground 在线测试
- 字段缺失:无 接口缺失:无
/analytics/usage 用量分析(成员视图)
- 字段缺失
- 调用日志 → 缺部分供应侧成本字段(部分列显示"接口未返回")
- 接口缺失:无
3. 双角色共用页面
/settings 设置
- 字段缺失:无
- 接口缺失(每项均标"接口未开放"徽章)
- 「数据留存与隐私」(:88) → 需偏好读写接口
- 「全局默认路由」(:92) → 需默认路由读写接口
- 「通知与告警偏好」(:96) → 需通知偏好接口
- 「账单与发票资料」(:108) → 需发票资料接口
- 「自有密钥(BYOK)」(:112) → 需 BYOK 密钥管理接口
/analytics/usage/model/:id 模型用量详情
- 字段缺失:调用日志缺部分成本/供应侧字段 接口缺失:无
/docs 文档
- 字段缺失:无 接口缺失:无
/growth/invite 增长·邀请
- 字段缺失:无 接口缺失:无
/org/apply 申请建组织
- 字段缺失:无 接口缺失:无
/invite 接受邀请
- 字段缺失:—
- 接口缺失
- 页面主区块(invite/index.tsx:21 "接受邀请的功能正在与后端对接中")→ 需接受邀请接口
汇总
接口缺失(需后端新增)— 按位置
| 位置 | 需要接口 |
|---|---|
| 成员管理·停用/启用按钮 | PUT /portal/org/members/{id}/status |
| 成员管理·撤销邀请 | DELETE /portal/org/invitations/{id} |
| 成员管理·重新邀请按钮 | POST /portal/org/invitations/{id}/resend |
| 组织设置·保存按钮 | PUT /portal/org |
| 组织财务·账单发票区块 | GET /portal/org/statements + 开票接口 |
| 安全设置·两个 Tab | 异常拦截记录 + 安全策略读写接口 |
| 设置·5 个设置项 | 偏好/默认路由/通知/发票/BYOK 接口 |
| 邀请页·主区块 | 接受邀请接口 |
字段缺失(3 个无类型 Map 接口 + 日志成本)— 按接口·字段
| 接口 | 缺失字段 | 影响位置 |
|---|---|---|
GET /portal/billing/summary | totalRecharge、totalGranted、totalCost | 成员工作台、账单 |
GET /portal/org/member-usage | consumed(totalCost/cost)、personalBalance、orgBalance | 成员管理表格+指标卡 |
GET /portal/keys | creditUsed | 我的 Key 累计消费列 |
调用日志 logs | organizationCost、按 keyPrefix 聚合次数 | 组织概览、可观测性、Key 调用次数 |
GET /portal/org/departments | 成员部门归属字段 | 管理员用量分析按部门归集 |
最省力方案:
billing/summary、org/member-usage、account各给一条真实返回 JSON 样例,前端即可把字段猜测收敛为精确读取,无需后端改接口。