# Admin 历史报关模块指引 ## 路径基准与读取顺序 - 本文件适用于 `src/modules/customs/`,代码路径相对本目录;应用公共规则见 `../../../AGENTS.md`。 - 只有 `pages/CustomsCasesView.vue`、`api/platformCustoms.ts`、`types.ts`、`status.ts`:承载历史报关案件、清单、代理提交与报关行回执。 - 后端归 `firstleg/customs/`(`ContainerCustomsService.java` 等),文件归 `file/`。 - **不要与货柜详情里的“送柜报关”面板混淆**:整柜报关资料在 `../container-loading/components/ContainerCustomsPanel.vue`,本模块是历史案件入口。 ## 页面与入口 | 目标 | 页面/入口 | API 与后端 | |---|---|---| | 报关案件列表、状态与筛选 | `pages/CustomsCasesView.vue` | `api/platformCustoms.ts`;`firstleg/customs/` | | 报关清单与代理提交 | 案件详情与提交动作 | `api/platformCustoms.ts` | | 报关行回执与完成文件 | 详情附件区 | `file/` 的 `LOADING_LIST_CUSTOMS_RECEIPT`、`LOADING_LIST_CUSTOMS_RESULT` | | 状态与中文文案 | `status.ts`、`types.ts` | 服务端状态机 | ## 关键边界 - 报关源文件、回执与完成文件都是客户作用域,`businessId` 固定为装柜计划 ID;下载走鉴权入口。 - 回执与完成文件必须满足整柜完成与可见性条件,前端不自行放宽或绕过。 - 提交给报关行后案件进入只读确认流程;打回、补资料等状态以服务端为准,不在前端改状态。 - 与货柜页签共用同一后端能力时,只改一处展示,不要复制业务规则。 ## 验证 - 定向:`pnpm test src/modules/customs/<目标测试>`;文件或状态变化同时核对 `firstleg/customs/` 与 `file/` 的报关合同。 - 本文件或索引变更后,从后端根运行 `./scripts/agents-index-contract.ps1`。