# Client 跨境业务模块指引 ## 路径基准与读取顺序 - 本文件适用于 `src/modules/cross-border/`,代码路径相对本目录;应用公共规则见 `../../../AGENTS.md`,业务细则见 `../../../docs/business-index.md`。 - 三条业务线共用本模块:`procurement`(海外采购)、`domestic-trucking`(本土卡车)、`pallet-shipping`(美本土散板);每条都是独立列表 + 建单 + 详情路由。 - 后端只查 `lastleg-service/` 的 `procurement/`、`trucking/`、`looseboard/`;纯页面与文案不读后端。 ## 页面与入口 | 目标 | 页面/路由 | API 与后端 | |---|---|---| | 海外采购列表、建单与详情 | `views/ProcurementView.vue`、`components/ProcurementDetailPanel.vue`;`cross-border/procurement`、`.../create`、`.../:orderNo/detail` | `api/procurement.ts`、`procurementSubmission.ts`、`procurementPresentation.ts`;`lastleg-service/procurement/` | | 本土卡车列表、建单与详情 | `views/DomesticTruckingView.vue`、`components/TransportDemandForm.vue`;`cross-border/domestic-trucking`、`.../create`、`.../:orderNo/detail` | `api/businessOrders.ts`、`transportDemandForm.ts`;`lastleg-service/trucking/` | | 美本土散板列表、建单与详情 | `views/PalletShippingView.vue`;`cross-border/pallet-shipping`、`.../create`、`.../:orderNo/detail` | `api/businessOrders.ts`;`lastleg-service/looseboard/` | | 通用业务单展示与车次安排 | `components/BusinessOrdersView.vue`、`fleetArrangement.ts` | `api/businessOrders.ts`;`lastleg-service/fleet/trip/` | | 柜型与规格换算 | `containerSpecifications.ts` | 本地换算,服务端复核 | ## 关键边界 - 三条线都是客户自助下单,提交后由平台审核;客户侧不提供审核、改价或内部作业动作。 - 客户与仓库范围只取服务端当前租户上下文,不从前端参数推断;跨客户查询一律拒绝。 - 提交需要幂等键、提交中状态与可恢复失败反馈;失败保留已填内容。 - 海外采购的购买、装箱、面单、交寄与国内核费是一条独立链路,改节点前先读 `docs/海外仓业务/采购订单样品履约流程变更需求.md`(工作区路径)。 - 页面承载方式按已确认原型:列表 + 独立建单/详情路由,不改为弹框或抽屉。 ## 验证 - 定向:`pnpm test src/modules/cross-border/<目标测试>`;接口或类型变化同时运行 `pnpm typecheck`。 - 本文件或索引变更后,从后端根运行 `./scripts/agents-index-contract.ps1`。