docs: update dev-log - CloudBilling 拆分

This commit is contained in:
attacker committed 2026-06-16 19:09:59 +08:00
1 parent accbfb53c3
commit a214efe078
1 file changed
+27
+27
View File
@@ -1223,3 +1223,30 @@ cd ~/devops/aiops
- 前端仍有接近700行可拆分: CloudBilling.tsx(663)、CronJobManager.tsx(652)、AppRelease.tsx(650)、ServerManager.tsx(645)、TraceManager.tsx(620)
- sidebar.tsx(689行) 为 shadcn 标准 UI 组件,context 已提取,剩余无需拆分
- 后端 sql_audit.go(435行) 属已移除菜单死代码(保留不拆)
## 2026-06-16 自动推进(cron)
- **任务**: 拆分 CloudBilling.tsx(663行→467行),远离700行硬上限
- **背景**: dev-log 上次建议的预防性维护项(继 AgentMonitor + AIPredictiveAnalytics + ApprovalFlow 拆分后,CloudBilling 是云账单模块中最接近 700 行限制的业务组件)
- **拆分方案**:
- `frontend/src/components/cloud/CloudBillingHelpers.tsx` — 扩展(69→87行):将 `providerLabels`/`providerColors` 常量从 CloudBilling.tsx 提升到 helpers(主组件+两个弹窗共享)
- `frontend/src/components/cloud/BillingRecordDialog.tsx` — **新建**(149行):成本记录弹窗(新建/编辑),自包含状态(form/submitting),useEffect 在 open 时初始化表单(新建预填今日日期/编辑回填),保存逻辑内移(editingRecord 判断 remove+create vs create),Props: open/onOpenChange/editingRecord/onSuccess
- `frontend/src/components/cloud/BillingRuleDialog.tsx` — **新建**(149行):预警规则弹窗(新建/编辑),自包含状态,同模式,保存逻辑内移(updateAlertRule vs createAlertRule),Props: open/onOpenChange/editingRule/onSuccess
- `frontend/src/components/cloud/CloudBilling.tsx` — 主组件从 663 行降至 467 行(-196);移除 recordForm/ruleForm/submitting 状态 + emptyRecord/emptyRule 常量 + handleSaveRecord/handleSaveRule 函数 + openAddRecord/openEditRecord 简化为仅设 open+editing 目标;移除未使用的导入(Dialog/DialogContent/DialogDescription/DialogFooter/DialogHeader/DialogTitle/TrendingDown);内联 Dialog JSX 替换为 `<BillingRecordDialog>` + `<BillingRuleDialog>` 组件
- **结果**:
- npx tsc --noEmit 零错误 ✅
- npm run build 通过(3.14s) ✅
- ./run.sh restart 后 /health 正常 + 前端 200 ✅
- API 验证:billing stats(today=0/month=33776/year=144143/alerts=1)、billing list(total=479)、billing-alerts(total=3) 全部 200 ✅
- 浏览器验证 /cloud-billing(云账单菜单):
- 概览统计 Tab:4 个统计卡片正常渲染(¥0.00今日/¥33,776本月/¥144,143年度/1条预警),30天趋势图+厂商分布正常
- 成本记录 Tab:50 行账单数据表格正常渲染,筛选器+查询按钮正常,"记录成本"按钮打开 BillingRecordDialog 弹窗(厂商下拉+日期+费用+服务+区域+账号+备注,保存按钮)
- 预警规则 Tab:3 张规则卡片正常渲染(含 Switch 开关),"添加规则"按钮打开 BillingRuleDialog 弹窗(规则名+厂商+指标+比较+阈值+启用开关,保存按钮)
- console 零 JS 错误 ✅
- grep 确认仅 App.tsx import CloudBilling,无其他外部引用
- git push 成功 (commit accbfb5) ✅
- **下一步建议**:
- 前端仍有接近700行可拆分: CronJobManager.tsx(652)、AppRelease.tsx(650)、ServerManager.tsx(645)、TraceManager.tsx(620)、GrafanaDashboard.tsx(616)
- sidebar.tsx(689行) 为 shadcn 标准 UI 组件,context 已提取,剩余无需拆分
- 后端 sql_audit.go(435行) 属已移除菜单死代码(保留不拆)