Files
admin-web/src/modules/container-loading/AGENTS.md
T
ouyangxq b34626bd4b docs(admin): add module-level AGENTS indexes for all 33 modules
新增 29 个模块级 AGENTS.md,补齐入口表指向,使 33 个业务模块均可从入口直达页面与接口。

- 每个模块指引统一为:路径基准 / 页面与入口表 / 关键边界 / 验证入口
- 入口表 35 行改为指向 modules 下的 AGENTS.md,补齐费用项目、审计日志、尺寸配置、装柜照片等缺失词条
- 详细索引最长行从 1315 字符压缩到 699 字符,规则正文移入新增的“货柜工作台规则”小节
- 仅索引文档,未改动业务代码
2026-10-20 12:45:00 +08:00

4.6 KiB
Raw Blame History

Admin 货柜模块指引

路径基准与读取顺序

  • 本文件适用于 src/modules/container-loading/,代码路径相对本目录;应用公共规则见 ../../../AGENTS.md,页面/接口细则见 ../../../docs/business-index.md。
  • 先按下表定位页面,再沿 routes.ts、页面 import 与 api/ 追踪;接口、状态、金额或权限变化时再读详细索引命中行。
  • 后端只查直接消费方:firstleg/(loading/、customs/container/、terminaldrayage/、oceanbooking/)、lastleg-service/(柜级到仓与尾程)、file/、print/。纯页面与文案不读后端。

页面与入口

目标 页面/路由 API 与后端
国内装柜列表、模拟柜、订舱关联 pages/ContainersView.vue、pages/DomesticContainersView.vue;container-loading/domestic api/platformContainerLoading.ts;components/ContainerSimulationCreate.vue、components/OceanBookingLinkDialog.vue;firstleg/loading/
送柜报关详情、装柜清单页签、报关、出仓 pages/DomesticContainerDetailView.vue、共享 pages/ContainerDetailView.vue;container-loading/domestic/:containerId components/ContainerOverviewPanel.vue、components/ContainerCustomsPanel.vue;api/platformContainerCustoms.ts;firstleg/customs/container/、file/
智能装柜工作台、柜次容量与分配 pages/SmartLoadingWorkbenchView.vue;container-loading/domestic/:containerId/smart-loading api/platformContainerLoading.ts;../unified-orders/workflows/components/SmartLoadingWorkbench.vue;firstleg/service/SmartLoadingService.java
全局智能装柜弹框、入仓码候选与箱数 pages/GlobalSmartLoadingView.vue(内嵌,无独立路由)、components/SmartLoadingDialog.vue、components/SmartLoadingCandidateInbounds.vue smartLoadingChannelGroups.ts、smartLoadingItems.ts、smartLoadingPlanGroups.ts;后端 /inbound-candidates、/containers、/inbound-assignments
海外清关提柜工作台、船节点、清关与 DO/PU pages/OverseasContainersView.vue;container-loading/overseas api/platformContainerLoading.ts;firstleg/ 船节点与 customs/;components/ContainerOverviewPanel.vue
目的港码头拖车、车队与还空 pages/OverseasContainerDetailView.vue(薄包装)、共享 pages/ContainerDetailView.vue(实际内容);container-loading/overseas/:containerId api/terminalDrayages.ts 由共享详情调用;firstleg/terminaldrayage/(TerminalDrayageService.java、DirectDeliveryService.java)
整柜预计/实际到仓 列表与详情“到仓”列 api/containerArrivalTimes.ts;lastleg-service/ 柜级订单
装柜照片与证据的展示/读取(上传在 PDA 与 Firstleg) components/ContainerOverviewPanel.vue 证据读取走 file/;生产与上传见 firstleg/loading/service/CabinetLoadingEvidenceService.java 与国内 PDA
海外柜费用 components/ContainerLastLegFeesPanel.vue api/overseasContainerFees.ts;finance/、firstleg/ 费用来源

pages/ContainerWorkbenchView.vue 是工作台外壳,按权限在“国内装柜”“清关提柜”间切换;pages/ContainersView.vue 与 ContainerDetailView.vue 为共享实现,改两份前先确认是否同源。

关键边界

  • 列表范围由服务端 scope=ACTIVE/HISTORY 分页,写资格只取服务端 allowedActions;不用浏览器筛选、本地推导或柜内明细数量代替。
  • 创建柜次时自动生成唯一预装计划;订舱关联允许真实集装箱号为空,但确认预装和创建 PDA 任务前必须补齐,历史上已建缺号任务可在预装详情首次补录。
  • 还空截止、超时天数只展示服务端按权威卸柜完成时间加 72 小时计算的结果,前端不重算、不用拖车状态当阻断门禁。
  • 国内“送柜报关”只消费 /containers/domestic,海外“清关提柜”只消费 /containers/overseas;两端统一用 containerBookingId,禁止混用两套列表接口。
  • 智能装柜候选状态只作筛选展示,按钮资格以服务端 canAssign 为准;计划箱数只消费 totalPackageCount/remainingPackageCount,不从候选页或本地规格重算。
  • 前端不计算托数、不逐票建计划、不预占托盘;柜级转换必须原样回传服务端 snapshotVersion/snapshotHash,冲突后重新预览。

验证

  • 定向:pnpm test src/modules/container-loading/<目标测试>;API 或类型变化同时运行 pnpm typecheck。
  • 本文件或索引变更后,从后端根运行 ./scripts/agents-index-contract.ps1;离线检查不代替真实 HTTP 与人工截图验收。