ROADMAP Q1 推进(前端类型安全治理 in_progress): - src/api/ 整个目录 any 清零(含 monitor/ deploy/ 子目录 12+ 文件) create/update 入参 any -> Record<string, unknown> / object mock 桩 trace/grafana 对接 types/ 标准类型(Trace/GrafanaDashboard) 典型接口 LdapFormData/ProbeForm 等强类型表单用 object 接收 - types/monitor.ts 扩展 ~150 行接口: ZabbixDatasource / AlertSilence / 7 个输入 DTO Trace / TraceSpan / TraceServiceMetrics / GrafanaDashboard / DashboardPanel HealthProbeInput 验证: - 整个 src/api/ 目录 any=0 - ESLint no-explicit-any: 995 -> 937 (本项目此轮贡献 -58) - tsc -b 零错误, npm run build ✓ (17.06s) - API 回归 8/8 核心端点通过, Docker 部署 healthy
2 lines
1.5 KiB
JavaScript
2 lines
1.5 KiB
JavaScript
import{j as t,Z as s}from"./index-o4rKtKfJ.js";const o={blue:{text:"text-blue-400",bg:"bg-blue-500/20"},emerald:{text:"text-emerald-400",bg:"bg-emerald-500/20"},amber:{text:"text-amber-400",bg:"bg-amber-500/20"},red:{text:"text-red-400",bg:"bg-red-500/20"},purple:{text:"text-purple-400",bg:"bg-purple-500/20"},cyan:{text:"text-cyan-400",bg:"bg-cyan-500/20"},muted:{text:"text-[var(--dg-text-secondary)]",bg:"bg-[var(--dg-bg-tertiary)]"}};function d({items:c,className:n}){return t.jsx("div",{"code-path":"src/components/ui/stat-strip.tsx:29:5",className:s("flex items-center gap-1.5 px-3 py-2 rounded-lg","bg-[var(--dg-bg-secondary)] border border-[var(--dg-border)]","overflow-x-auto",n),children:c.map((e,r)=>{const a=o[e.color||"muted"]||o.muted;return t.jsxs("div",{"code-path":"src/components/ui/stat-strip.tsx:38:11",className:"flex items-center gap-1.5 shrink-0",children:[r>0&&t.jsx("span",{"code-path":"src/components/ui/stat-strip.tsx:40:15",className:"w-px h-5 bg-[var(--dg-border)] mx-1 shrink-0"}),t.jsx("span",{"code-path":"src/components/ui/stat-strip.tsx:42:13",className:s("w-1.5 h-1.5 rounded-full shrink-0",a.bg.replace("/20","").replace("bg-","bg-")||"bg-slate-500"),style:{backgroundColor:e.color?.startsWith("#")?e.color:void 0}}),t.jsx("span",{"code-path":"src/components/ui/stat-strip.tsx:48:13",className:"text-xs text-[var(--dg-text-muted)]",children:e.label}),t.jsx("span",{"code-path":"src/components/ui/stat-strip.tsx:49:13",className:s("text-sm font-semibold",a.text),children:e.value})]},r)})})}export{d as S};
|