功能:新增统一限制白名单管理页面 #99

Merged
guke merged 7 commits from codex/limit-policy-whitelist into main 2026-07-31 17:08:15 +08:00
Member

需求背景

新增统一白名单管理页面,让运营人员能够查看和调整全局限制,并按手机号或设备批量配置临时不限或风险免告警。

主要改动

  • 新增白名单导航与完整管理页面
  • 全局限制按五类分页展示并支持修改
  • 白名单按主体聚合,展示各分类数量及悬浮明细
  • 支持手机号与设备搜索、批量多选限制项和统一有效期
  • 支持手动筛选、十条分页、主体点击编辑及启用开关
  • 风控监控增加快捷加入白名单入口
  • 旧引导视频配置页与统一限制入口保持一致

验证

  • Next.js 生产构建通过
  • TypeScript 类型检查通过
  • 共 26 个页面完成静态/动态构建
  • 已与后端 PR #207 配套验证
## 需求背景 新增统一白名单管理页面,让运营人员能够查看和调整全局限制,并按手机号或设备批量配置临时不限或风险免告警。 ## 主要改动 - 新增白名单导航与完整管理页面 - 全局限制按五类分页展示并支持修改 - 白名单按主体聚合,展示各分类数量及悬浮明细 - 支持手机号与设备搜索、批量多选限制项和统一有效期 - 支持手动筛选、十条分页、主体点击编辑及启用开关 - 风控监控增加快捷加入白名单入口 - 旧引导视频配置页与统一限制入口保持一致 ## 验证 - Next.js 生产构建通过 - TypeScript 类型检查通过 - 共 26 个页面完成静态/动态构建 - 已与后端 PR #207 配套验证
linkeyu added 2 commits 2026-07-30 20:25:31 +08:00
新增全局限制分组管理、多限制项临时不限白名单、设备搜索选择和风控记录快捷加入入口,并同步引导视频配置展示。
Author
Member
配套后端 PR:https://gitea.shaguabijia.com/WonderableAI/shaguabijia-app-server/pulls/207
Member

🤖 review-pr 深审结论

🟢 可合并(置信度 0.85)—— 类型检查通过、与后端 #207 契约一致;须与后端 #207 配套合并(前端依赖其白名单 API)。

改动:新增白名单管理页(limit-whitelist/page.tsx 1237 行)+ 导航 + 风控快捷入口 + types.ts 类型 + GuideVideoConfig 文案同步。5 文件 +1486/-27。

正确性核对(合并后)

  • 前后端契约一致types.ts 新增 LimitRule/LimitOverride/LimitSubject/LimitPolicyMode/LimitSubjectType#207 rule_catalog() 输出字段、MODE_*/SUBJECT_* 常量逐一对应(同 codex 任务同源)。
  • 铁律1:main 未改 src/

构建/测试(实跑合并后)

  • tsc --noEmit 类型检查通过(零 error)。
  • 作者声称 next build + 26 页面 + TS 检查通过;本次实跑 tsc 坐实类型层(未单独跑 full next build)。

⚠️ 配套合并(重要)

  • 本页调用 #207 的白名单 API(rule_catalog / override CRUD / device 检索)。#99 必须与后端 #207 一起合并 —— 若单独合并 #99#207 未上,页面会调不存在的接口。建议前后端同时合并(且 #207 需先协调与 #204/#205 的同文件冲突)。

风险 🟢(代码质量),受配套依赖约束。

🤖 review-pr 自动深审 @linkeyu

## 🤖 review-pr 深审结论 🟢 **可合并**(置信度 0.85)—— 类型检查通过、与后端 #207 契约一致;**须与后端 #207 配套合并**(前端依赖其白名单 API)。 **改动**:新增白名单管理页(`limit-whitelist/page.tsx` 1237 行)+ 导航 + 风控快捷入口 + `types.ts` 类型 + `GuideVideoConfig` 文案同步。5 文件 +1486/-27。 **正确性核对(合并后)** - **前后端契约一致**:`types.ts` 新增 `LimitRule`/`LimitOverride`/`LimitSubject`/`LimitPolicyMode`/`LimitSubjectType` 与 #207 `rule_catalog()` 输出字段、`MODE_*`/`SUBJECT_*` 常量逐一对应(同 codex 任务同源)。 - 铁律1:main 未改 `src/`。 **构建/测试(实跑合并后)** - ✅ `tsc --noEmit` 类型检查通过(零 error)。 - 作者声称 `next build` + 26 页面 + TS 检查通过;本次实跑 `tsc` 坐实类型层(未单独跑 full `next build`)。 **⚠️ 配套合并(重要)** - 本页调用 #207 的白名单 API(`rule_catalog` / override CRUD / device 检索)。**#99 必须与后端 #207 一起合并** —— 若单独合并 #99 而 #207 未上,页面会调不存在的接口。建议前后端同时合并(且 #207 需先协调与 #204/#205 的同文件冲突)。 风险 🟢(代码质量),受配套依赖约束。 — 🤖 review-pr 自动深审 @linkeyu
linkeyu added 1 commit 2026-07-31 12:00:15 +08:00
手机号与设备 ID 统一为手动录入并禁止推荐,修复跨分类勾选互相清空,补充独立编辑入口及表单告警处理。
Member

🤖 review-pr 增量复审(e984f417

🟢 可合并 · 置信度 0.85(同上轮)—— 仅白名单页交互优化,类型检查通过、契约不变。

新提交f417722「优化:完善白名单主体录入与编辑交互」。仅改 limit-whitelist/page.tsx(+206/-356,净简化 150 行)。

核对

  • 交互优化(主体录入/编辑),未动 types.ts —— 与 #207 rule_catalog/MODE_*/SUBJECT_* 契约仍一致。
  • tsc --noEmit 通过(零 error)。
  • 铁律1:main 未改(merge Already up to date)。

配套约束不变:须与后端 #207 一起合并(#207 增量已 merge #204/#205、升 🟢)。

风险 🟢

🤖 review-pr 自动深审 @linkeyu

## 🤖 review-pr 增量复审(`e984` → `f417`) 🟢 **可合并** · 置信度 0.85(同上轮)—— 仅白名单页交互优化,类型检查通过、契约不变。 **新提交**:`f417722`「优化:完善白名单主体录入与编辑交互」。仅改 `limit-whitelist/page.tsx`(+206/-356,净简化 150 行)。 **核对** - 交互优化(主体录入/编辑),**未动 `types.ts`** —— 与 #207 `rule_catalog`/`MODE_*`/`SUBJECT_*` 契约仍一致。 - ✅ `tsc --noEmit` 通过(零 error)。 - 铁律1:main 未改(merge Already up to date)。 **配套约束不变**:须与后端 #207 一起合并(#207 增量已 merge #204/#205、升 🟢)。 风险 🟢。 — 🤖 review-pr 自动深审 @linkeyu
linkeyu added 1 commit 2026-07-31 14:38:43 +08:00
移除设备来源分组造成的互斥逻辑,保留规则主体类型校验,允许同一设备字符串选择多个业务分类。
linkeyu added 1 commit 2026-07-31 14:57:47 +08:00
将主体类型与手机号或设备 ID 分列展示,补充类型筛选,并移除白名单配置标题后的主体数量。
linkeyu added 1 commit 2026-07-31 15:02:07 +08:00
菜单名称调整为限制策略,页面标题同步为限制策略与白名单,并更新相关配置提示,准确表达全局阈值与白名单管理能力。
Member

🤖 review-pr 增量复审(f4179e15

🟢 可合并 · 置信度 0.85 —— 前端交互优化 + 配套 #207 跨分类,类型检查通过、契约不变。

新提交(3):菜单更名(白名单→限制策略)、明确主体类型展示、允许设备白名单跨分类选择(配套 #207 后端删 validate_device_rule_scope)。仅 3 前端文件 +23/-54。

核对

  • types.ts 未改 → 与后端契约仍一致。
  • 跨分类选择放开与 #207 后端删校验配套
  • tsc --noEmit 通过。
  • 铁律1:main 未改(merge Already up to date)。

配套约束:须与后端 #207 一起合并。⚠️ 注意 #207 当前有 alembic 双 head(本轮已标出、须先 rebase down_revision),#99 依赖它先修好再一起上。

风险 🟢(前端本身无问题)。

🤖 review-pr 自动深审 @linkeyu

## 🤖 review-pr 增量复审(`f417` → `9e15`) 🟢 **可合并** · 置信度 0.85 —— 前端交互优化 + 配套 #207 跨分类,类型检查通过、契约不变。 **新提交(3)**:菜单更名(白名单→限制策略)、明确主体类型展示、**允许设备白名单跨分类选择**(配套 #207 后端删 `validate_device_rule_scope`)。仅 3 前端文件 +23/-54。 **核对** - `types.ts` **未改** → 与后端契约仍一致。 - 跨分类选择放开与 #207 后端删校验**配套**。 - ✅ `tsc --noEmit` 通过。 - 铁律1:main 未改(merge Already up to date)。 **配套约束**:须与后端 #207 一起合并。⚠️ 注意 **#207 当前有 alembic 双 head**(本轮已标出、须先 rebase `down_revision`),#99 依赖它先修好再一起上。 风险 🟢(前端本身无问题)。 — 🤖 review-pr 自动深审 @linkeyu
linkeyu added 1 commit 2026-07-31 16:50:43 +08:00
统一白名单时间口径并接入带乱序保护的分页列表;优化风控页路由跳转、无手机号禁用提示及后端分组计数复用。
guke merged commit ca7c3f27f0 into main 2026-07-31 17:08:15 +08:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: WonderableAI/shaguabijia-admin-web#99