# 样本卡片协议附件迷你缩略图 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:** 列表 API 补齐 `healthSurveyAttachmentFiles` / `infectiousDiseaseReportAttachmentFiles`;前端新建 `ProtocolAttachmentMiniReadonly` + `getSourceProtocolAttachment` + `useAttachmentActions`,三处卡片复用。 **Tech Stack:** Python FastAPI CRUD、`urls_to_attachment_list`;Vue 3 + Element Plus + SCSS **Spec:** `docs/superpowers/specs/2026-07-13-sample-card-protocol-attachment-design.md` --- ### Task 1: 后端预产列表补细胞存储附件 **Files:** - Modify: `backend/app/crud/pre_transit_sample.py` - [ ] 在细胞存储行 `d = _protocol_to_dict(r)` 后增加 `healthSurveyAttachmentFiles` ### Task 2: 后端样本接收列表补协议附件 **Files:** - Modify: `backend/app/crud/sample_reception.py` - [ ] `_rows_to_sample_list_items` 增加 `healthSurveyAttachmentFiles` - [ ] `_donation_rows_to_sample_list_items` 增加 `infectiousDiseaseReportAttachmentFiles` ### Task 3: 前端共享 util / composable / 迷你组件 **Files:** - Create: `web-admin/src/utils/protocol-source-attachment.ts` - Create: `web-admin/src/composables/useAttachmentActions.ts` - Create: `web-admin/src/components/business/protocol-attachment-mini-readonly/index.vue` ### Task 4: 预产及在途卡片接入 **Files:** - Modify: `web-admin/src/views/quality-inspection/pre-transit-sample/PreTransitProtocolCardList.vue` - Modify: `web-admin/src/views/quality-inspection/pre-transit-sample/index.vue` ### Task 5: 样本接收卡片接入 **Files:** - Modify: `web-admin/src/views/quality-inspection/sample-reception/SampleReceptionCardList.vue` ### Task 6: 验证 - [ ] `pnpm lint` 相关前端文件 - [ ] `./scripts/update-graph.sh frontend`(如有新建文件)