Files
client-web/src/modules/first-leg/AGENTS.md
T
2026-10-20 18:44:53 +08:00

3.6 KiB
Raw Blame History

Client 头程模块指引

路径基准与读取顺序

  • 本文件适用于 src/modules/first-leg/,代码路径相对本目录;应用公共规则见 ../../../AGENTS.md,字段与接口细则见 ../../../docs/business-index.md。
  • 模块分层固定:views/ 页面、components/ 业务组件、api/ 请求、store/ 跨页状态、types/、utils/、data/;跨模块只能从本目录 public.ts 导入。
  • 后端只查 order/(订单读写与批量导入)、firstleg/(履约进度、入库费用、报关资料)、file/(资质与附件);纯页面与文案不读后端。

页面与入口

目标 页面/路由 API 与后端
头程订单列表、详情、草稿编辑 views/FirstLegOrdersView.vue;orders/first-leg、orders/first-leg/:orderId/detail、orders/first-leg/:draftId/edit api/firstLeg.ts;store/firstLegOrders.ts;order/
创建订单入口(选业务类型) views/FirstLegOrderCreateHubView.vue;orders/first-leg/create components/FirstLegOrderEditorShell.vue
快速下单(按渠道/目的仓/SKU 生成草稿) views/QuickOrderView.vue;first-leg/quick-order api/firstLeg.ts;只生成草稿,不提交、不审核
中文批量导入与逐行结果 订单列表导入入口 api/firstLeg.ts;order/ 批量导入;入仓码与失败原因逐行展示
履约进度与入仓码关系 components/OrderProgressPanel.vue、components/InboundCodeAssociationDialog.vue api/inboundCodeAssociations.ts、utils/orderProgress.ts;firstleg/
运输事实与商品图片 components/TransportFactsTable.vue(纯展示)、utils/transportFacts.ts、utils/productImage.ts 行数据类型来自 api/unifiedOrders.ts;图片读取归 file/
入库费用确认与计费重 components/InboundBillingPanel.vue api/inboundBilling.ts;firstleg/service/MerchantInboundBillingService.java
装柜后的退税报关资料 views/CustomsDocumentsView.vue、components/CustomsDocumentsDialog.vue api/customs.ts、store/customsPending.ts、utils/customsEligibility.ts;firstleg/customs/、file/
船期与参考价格 views/SailingPricesView.vue;first-leg/sailing-prices api/firstLeg.ts;firstleg/ 船期价格
往来单位候选 data/firstLegParties.ts、api/partners.ts warehouse/ 公共往来单位

关键边界

  • 头程订单只用当前正式读写契约;不得扩展 LEGACY_MANUAL、旧系统入仓码、C02 不可用回退旧 API、历史部分响应兼容或其他新旧并跑逻辑。触及该链路时同步删除生产分支、类型、文案、Mock 和测试。
  • 快速下单只创建草稿,不提交、不审核;逐行失败必须回填原因与入仓码,不用内部 ID 代替业务编号。
  • 入库费用确认携带 expectedFeeVersion 与幂等键,金额与冻结状态只认服务端结果;列表“确认计费重”仅在具备确认权限且服务端 customerFeeConfirmationRequired=true 时显示,已确认或未推送费用的订单不显示;详情保留费用查看入口。
  • 报关资料在开始后只读冻结资料,未装柜或无资格时不展示入口;utils/customsEligibility.ts 是唯一资格判断入口。
  • 模块间协作只能从本模块 public.ts 导入,不穿透其他模块的 views/ 或内部目录。

验证

  • 定向:pnpm test src/modules/first-leg/<目标测试>;接口或类型变化同时运行 pnpm typecheck。
  • 本文件或索引变更后,从后端根运行 ./scripts/agents-index-contract.ps1。