From cee0464e69db26cfab175a98fa3791f72e0c85a2 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Sun, 30 Aug 2026 17:46:45 +0800 Subject: [PATCH] feat(admin): show inbound business relationships --- AGENTS.md | 1 - src/modules/finance/pages/FinanceCustomerArapView.test.ts | 5 +++-- src/modules/overseas-warehouse/pages/PalletsView.test.ts | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 48e8b1b9..520a332c 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -48,7 +48,6 @@ | 入库、测量与计价主数据 | `modules/inbounds/`、`modules/fba-pricing/`、`modules/dimension-config/`、`modules/fee-items/` | `firstleg/`、`order/`、`file/`、`integration-service/` | | 财务 | `modules/finance/`,继续读该目录 `AGENTS.md` | `finance/`、`firstleg/`、`file/`、`docs/财务管理/` | | 货柜、排柜、装柜清单与整柜报关 | `modules/container-loading/`、`modules/loading-lists/`;详情 `pages/ContainerDetailView.vue`,资料/PDA 证据 `components/ContainerOverviewPanel.vue`,报关 `components/ContainerCustomsPanel.vue`、`api/platformContainerCustoms.ts` | 装柜完成后按 `loadingPlanId` 展示整柜退税/买单覆盖;平台开始报关即冻结客户资料版本与入仓码范围,逐资料上传一对一完成文件,最后一份要求二次确认;全买单柜使用 `complete-all-buy`。Backend `firstleg/customs/container/`、`customs-v1.yaml`,文件归 `file/` | -| 同柜不可拆组 | `modules/unified-orders/api/coLoadGroups.ts`、`pages/UnifiedOrdersView.vue`;装柜消费 `modules/container-loading/pages/SmartLoadingWorkbenchView.vue` | 前端只提交订单 ID;Backend `firstleg/loading/coload/` 展开并冻结每票全部可用入仓片段。成员数是入仓片段数,不等于订单票数;只要求同国内仓、同渠道,允许跨客户及不同目的仓港;分配、移除、取消均整组处理 | | 智能装柜按入仓码候选与箱数分配 | `modules/container-loading/pages/SmartLoadingWorkbenchView.vue`、`api/platformContainerLoading.ts` | Backend `firstleg/` 的 `PlatformSmartLoadingController`、`SmartLoadingService`;`GlobalSmartLoadingView.vue` 当前未注册路由,不作为正式入口 | | 三期订舱、关联候选与出仓前船期 | `modules/ocean-bookings/`、`modules/container-loading/`、`modules/port-schedules/` | `platformOceanBookings.ts` 的 `/link-candidates` 只消费服务端分页;列表 `containerCount` 是柜型需求 `quantity` 总和,不是已关联柜数;Backend `firstleg/oceanbooking/`、`firstleg/portschedule/`,出仓后节点归四期 | | 拖车、历史报关协同、国内出仓 | `modules/trucking/`、`modules/customs/`、`modules/outbound-dispatch/` | `modules/customs/` 是报关案件/清单/代理提交与回执入口;装柜完成后的整柜退税/买单资料改从货柜详情进入,不得在旧模块复制一套;Backend `firstleg/outbound/dispatch/`、`firstleg/customs/`、`file/` | diff --git a/src/modules/finance/pages/FinanceCustomerArapView.test.ts b/src/modules/finance/pages/FinanceCustomerArapView.test.ts index 3d3b20b7..76485ea3 100644 --- a/src/modules/finance/pages/FinanceCustomerArapView.test.ts +++ b/src/modules/finance/pages/FinanceCustomerArapView.test.ts @@ -129,9 +129,10 @@ describe('FinanceCustomerArapView G2 operations', () => { expect(adjustFinanceFeeSource).not.toHaveBeenCalled() }) - it('keeps the customer dropdown open while its option list is scrolled', async () => { + it('closes the customer dropdown when the surrounding page is scrolled', async () => { const source = readFileSync(resolve(process.cwd(), 'src/modules/finance/pages/FinanceCustomerArapView.vue'), 'utf8') - expect(source).not.toContain("document.addEventListener('scroll', closeCustomerSelectOnScroll, true)") + expect(source).toContain("document.addEventListener('scroll', closeCustomerSelectOnScroll, true)") + expect(source).toContain('onVisibleChange: onCustomerSelectVisible') expect(source).not.toContain('input?.blur()') expect(source).toContain("class: 'finance-customer-select'") }) diff --git a/src/modules/overseas-warehouse/pages/PalletsView.test.ts b/src/modules/overseas-warehouse/pages/PalletsView.test.ts index ea0a8631..b32e4a68 100644 --- a/src/modules/overseas-warehouse/pages/PalletsView.test.ts +++ b/src/modules/overseas-warehouse/pages/PalletsView.test.ts @@ -57,8 +57,8 @@ describe('PalletsView', () => { await wrapper.findAll('button').find((button) => button.text().includes('新增托盘'))!.trigger('click') await flushPromises() - const setupState = wrapper.vm.$.setupState as { form: { warehouseId: string; fbaWarehouseCode: string; code: string } } - Object.assign(setupState.form, { warehouseId: '200', fbaWarehouseCode: 'ABE3', code: 'PLT-LAX-ABE3' }) + const view = wrapper.vm as unknown as { form: { warehouseId: string; fbaWarehouseCode: string; code: string } } + Object.assign(view.form, { warehouseId: '200', fbaWarehouseCode: 'ABE3', code: 'PLT-LAX-ABE3' }) await flushPromises() wrapper.findComponent(AppDialog).vm.$emit('confirm') await flushPromises()