feat: v0.9 样板数据完整性验证/解析加固/报表统计

- 双源确认样板库完整性: search接口与画图编辑器for_ht目录均为254条, 0遗漏
- 全量体检: 6套样板含7个畸形段(缺ps/pe)导致解析报错
  前后端重放/算料统一加固过滤, 254样板0异常/1046窗格
- 报表统计模块(/chart): 近N天订单数金额按日柱图+8项总量+状态分布
- 样板库官方/我的样板双Tab(is_default过滤)
- 使用指南接入帮助文章接口(种子8篇), seed分类树幂等修复
- 全接口回归18/18通过
This commit is contained in:
HHY
2026-09-20 12:27:19 -07:00
parent 3f871d7eeb
commit 453decf2e4
15 changed files with 233 additions and 29 deletions
+5 -1
View File
@@ -141,7 +141,11 @@ export function replayShape(shape: FrameShape): {
regions: Segment[][]
clips: { sp: SplitLine; bb: { x0: number; y0: number; x1: number; y1: number } }[]
} {
const base = (shape.polygon?.polygon ?? []).map(r => r.map(s => ({ ps: { ...s.ps }, pe: { ...s.pe } })))
const base = (shape.polygon?.polygon ?? [])
.map(r => r
.filter(s => s && typeof s === 'object' && s.ps && s.pe && Number.isFinite(s.ps.x) && Number.isFinite(s.pe.x))
.map(s => ({ ps: { ...s.ps }, pe: { ...s.pe } })))
.filter(r => r.length >= 3)
const regions: Segment[][] = base.map(r => r)
const clips: { sp: SplitLine; bb: { x0: number; y0: number; x1: number; y1: number } }[] = []
for (const sp of (shape.mm?.sp ?? []) as SplitLine[]) {