2026-07-02-donation-import-multi-sample.md 1.8 KB

科研捐赠一键导入多样本增强 Implementation Plan

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.

Goal: 扩展捐赠协议单一键导入,支持单/多样本、运输方式映射、中文胎次与「点」时间格式。

Architecture: 解析逻辑集中在 donation-standard-import-parse.ts(输出 sampleHints + transportType);DonationFormDialog.handleStandardImport 按 hints 创建多样本行并应用运输;协议级采集时间取 hints 最早值。不改后端。

Tech Stack: Vue 3、TypeScript、现有 chinese-datetime-parse / sample-production-reception-fields 常量

Spec: docs/superpowers/specs/2026-07-02-donation-import-multi-sample-design.md


Task 1: 中文数字与 datetime「点」

Files:

  • Create: web-admin/src/utils/chinese-numeral-parse.ts
  • Modify: web-admin/src/utils/chinese-datetime-parse.ts

  • [ ] 新增 parseChineseNumeral / parseBirthOrder

  • [ ] datetime 正则支持 [时点::]

Task 2: 解析器多样本 + 运输 + 胎次

Files:

  • Modify: web-admin/src/utils/donation-standard-import-parse.ts

  • [ ] 扩展 DonationStandardImportParsed(sampleHints, transportType, transportModeText)

  • [ ] 采集时间字段 pattern → hints;resolveTransportType;matchSampleTypeByExactName

Task 3: 填充逻辑

Files:

  • Modify: web-admin/src/views/research-donation/list/DonationFormDialog.vue

  • [ ] 重构 handleStandardImport:多样本行、运输 kdys/ryxd、最早采集时间

Task 4: 验证

  • 用 Node 脚本或手工验证 §2.1 / §2.2 样例解析结果
  • ./scripts/update-graph.sh frontend