Release/test 合并上生产 #2
@@ -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/` |
|
||||
|
||||
@@ -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'")
|
||||
})
|
||||
|
||||
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user