From 592f01eb1fd5b62831fe5da27d9f4eaed8027186 Mon Sep 17 00:00:00 2001
From: ouyangxq <775153912@qq.com>
Date: Sun, 20 Sep 2026 19:57:51 +0800
Subject: [PATCH 1/5] =?UTF-8?q?=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/modules/overseas-warehouse/layoutAcceptance.test.ts | 2 +-
src/modules/overseas-warehouse/pages/InventoryDetailView.vue | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/modules/overseas-warehouse/layoutAcceptance.test.ts b/src/modules/overseas-warehouse/layoutAcceptance.test.ts
index 986296b7..d3a285d5 100644
--- a/src/modules/overseas-warehouse/layoutAcceptance.test.ts
+++ b/src/modules/overseas-warehouse/layoutAcceptance.test.ts
@@ -61,7 +61,7 @@ describe('overseas warehouse 1920px layout acceptance', () => {
expect(page('DispatchDetailView.vue')).toContain('density-fields')
expect(page('DeliveryOrderDetailView.vue')).toContain('density-fields')
expect(page('InventoryDetailView.vue')).toContain('density-fields')
- expect(page('InventoryDetailView.vue').match(/class="inventory-table-wrap"/g)).toHaveLength(2)
+ expect(page('InventoryDetailView.vue').match(/class="inventory-table-wrap"/g)).toHaveLength(3)
expect(page('InventoryDetailView.vue')).toContain('.inventory-table-wrap { padding:0 var(--admin-space-5) var(--admin-space-4); }')
const outbounds = page('OutboundsView.vue')
expect(outbounds).toContain('.create-outbound-form :deep(.el-form-item__content > .el-input-number) { width: 100%; }')
diff --git a/src/modules/overseas-warehouse/pages/InventoryDetailView.vue b/src/modules/overseas-warehouse/pages/InventoryDetailView.vue
index bc79a2f9..6a1de101 100644
--- a/src/modules/overseas-warehouse/pages/InventoryDetailView.vue
+++ b/src/modules/overseas-warehouse/pages/InventoryDetailView.vue
@@ -31,7 +31,7 @@ function back() { void router.push({ name: 'overseas-inventory' }) }; onMounted(
商品信息
- {{ label }}
- {{ productValues[label as keyof typeof productValues] }}
库存状态汇总
- {{ label }}
- {{ stockValues[label as keyof typeof stockValues] }}
- 进销存单据明细
按该库存记录的入库单范围展示,出库字段仅为只读事实。
+ 进销存单据明细
按该库存记录的入库单范围展示,出库字段仅为只读事实。
--
2.54.0
From 7586f9d78348782b151c7c82c3e6ae53a743e67e Mon Sep 17 00:00:00 2001
From: ouyangxq <775153912@qq.com>
Date: Sun, 20 Sep 2026 22:04:59 +0800
Subject: [PATCH 4/5] =?UTF-8?q?=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../pages/LastMileOrdersView.behavior.test.ts | 28 ++++++++++++++-----
.../pages/LastMileOrdersView.vue | 2 +-
2 files changed, 22 insertions(+), 8 deletions(-)
diff --git a/src/modules/overseas-warehouse/pages/LastMileOrdersView.behavior.test.ts b/src/modules/overseas-warehouse/pages/LastMileOrdersView.behavior.test.ts
index 49206ad4..ec295788 100644
--- a/src/modules/overseas-warehouse/pages/LastMileOrdersView.behavior.test.ts
+++ b/src/modules/overseas-warehouse/pages/LastMileOrdersView.behavior.test.ts
@@ -177,8 +177,8 @@ describe('LastMileOrdersView pending order and container conversion', () => {
it.each([
[[], ['查看'], false],
[['inbound-order:create'], ['查看', '生成入库计划'], false],
- [['last-mile-order:edit'], ['查看', '暂扣订单', '人工修改节点'], false],
- [['inbound-order:create', 'last-mile-order:edit'], ['查看', '生成入库计划', '暂扣订单', ''], true],
+ [['last-mile-order:edit'], ['查看', '人工修改节点'], false],
+ [['inbound-order:create', 'last-mile-order:edit'], ['查看', '生成入库计划', '人工修改节点'], false],
])('only collapses row actions above three for %j', async (allowed, labels, overflow) => {
canAccess.mockImplementation(code => allowed.some(action => code === 'platform:overseas-warehouse:' + action))
vi.mocked(listLastMileOrders).mockResolvedValue({ records: [{ id: 'order-1', customerId, orderNo: 'LM-1', currentStatus: 'PENDING_ASSIGNMENT', orderType: 'FIRST_LEG' }], page: 1, size: 10, total: 1, pages: 1 })
@@ -213,9 +213,9 @@ describe('LastMileOrdersView pending order and container conversion', () => {
})
it.each([
- ['PENDING_ASSIGNMENT', true],
- ['INBOUND_COMPLETED', false],
- ])('only enables a new hold after inbound completion for %s', async (currentStatus, disabled) => {
+ ['PENDING_ASSIGNMENT', false],
+ ['INBOUND_COMPLETED', true],
+ ])('only shows a new hold after inbound completion for %s', async (currentStatus, visible) => {
canAccess.mockImplementation(code => code === 'platform:overseas-warehouse:last-mile-order:edit')
vi.mocked(listLastMileOrders).mockResolvedValue({ records: [{
id: 'order-1', customerId, orderNo: 'LM-1', currentStatus, orderType: 'FIRST_LEG', detained: false,
@@ -223,8 +223,22 @@ describe('LastMileOrdersView pending order and container conversion', () => {
const wrapper = await mountView()
const holdButton = wrapper.get('.el-table__body-wrapper .row-actions').findAll('button')
- .find(item => item.text().includes('暂扣订单'))!
- expect((holdButton.element as HTMLButtonElement).disabled).toBe(disabled)
+ .find(item => item.text().includes('暂扣订单'))
+ expect(Boolean(holdButton)).toBe(visible)
+ if (holdButton) expect((holdButton.element as HTMLButtonElement).disabled).toBe(false)
+ })
+
+ it('keeps release hold available for an already detained order', async () => {
+ canAccess.mockImplementation(code => code === 'platform:overseas-warehouse:last-mile-order:edit')
+ vi.mocked(listLastMileOrders).mockResolvedValue({ records: [{
+ id: 'order-held', customerId, orderNo: 'LM-HELD', currentStatus: 'READY_FOR_DISPATCH', orderType: 'FIRST_LEG', detained: true,
+ }], page: 1, size: 10, total: 1, pages: 1 })
+
+ const wrapper = await mountView()
+ const releaseButton = wrapper.get('.el-table__body-wrapper .row-actions').findAll('button')
+ .find(item => item.text().includes('解除暂扣'))
+ expect(releaseButton).toBeTruthy()
+ expect((releaseButton!.element as HTMLButtonElement).disabled).toBe(false)
})
it('removes generation and hold actions after an inbound plan has been submitted', async () => {
diff --git a/src/modules/overseas-warehouse/pages/LastMileOrdersView.vue b/src/modules/overseas-warehouse/pages/LastMileOrdersView.vue
index 8b4a1d16..24ff3dd5 100644
--- a/src/modules/overseas-warehouse/pages/LastMileOrdersView.vue
+++ b/src/modules/overseas-warehouse/pages/LastMileOrdersView.vue
@@ -833,7 +833,7 @@ function lastMileRowActions(row: LastMileOrderListItem): RowActionItem[] {
{ key: 'review-return', label: '审核', priority: 460, tone: 'warning', visible: access.can(permission.returnOrderReview) && row.orderTypeCode === 'RETURN_RELABEL' && row.currentStatusCode === 'PENDING_REVIEW' },
{ key: 'review', label: '审核', priority: 450, tone: 'warning', visible: access.can(permission.warehouseTransferApprove) && row.orderTypeCode === 'WAREHOUSE_TRANSFER' && row.currentStatusCode === 'PENDING_REVIEW' },
{ key: 'inbound-plan', label: '生成入库计划', priority: 400, visible: access.can(permission.inboundOrderCreate) && !inboundPlanCreated },
- { key: 'hold', label: row.detained ? '解除暂扣' : '暂扣订单', priority: 300, tone: 'warning', visible: access.can(permission.lastMileOrderTransfer) && (row.detained || !inboundPlanCreated || row.currentStatusCode === 'INBOUND_COMPLETED'), disabled: !row.detained && row.currentStatusCode !== 'INBOUND_COMPLETED' },
+ { key: 'hold', label: row.detained ? '解除暂扣' : '暂扣订单', priority: 300, tone: 'warning', visible: access.can(permission.lastMileOrderTransfer) && (row.detained || row.currentStatusCode === 'INBOUND_COMPLETED') },
{ key: 'manual-nodes', label: '人工修改节点', priority: 200, visible: access.can(permission.lastMileOrderTransfer) },
{ key: 'confirm-relabel', label: '换标完成确认', priority: 150, visible: access.can(permission.relabelOrderStatus) && Boolean(row.relabelOrderNo) && canConfirmRelabel(row) },
{ key: 'rework-relabel', label: '重新换标', priority: 100, tone: 'danger', divided: true, visible: access.can(permission.relabelOrderStatus) && Boolean(row.relabelOrderNo) && canReworkRelabel(row) },
--
2.54.0
From 3f78e1d087f4526c22f9f9fdf04b8c3ffdfc4698 Mon Sep 17 00:00:00 2001
From: ouyangxq <775153912@qq.com>
Date: Sun, 20 Sep 2026 22:13:56 +0800
Subject: [PATCH 5/5] =?UTF-8?q?=E4=BC=98=E5=8C=96?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/modules/pda-releases/pages/PdaReleasesView.vue | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/modules/pda-releases/pages/PdaReleasesView.vue b/src/modules/pda-releases/pages/PdaReleasesView.vue
index 692bee1f..4d547cad 100644
--- a/src/modules/pda-releases/pages/PdaReleasesView.vue
+++ b/src/modules/pda-releases/pages/PdaReleasesView.vue
@@ -165,11 +165,11 @@ function download(row: PdaRelease) {
-
-
+
+
-
+
--
2.54.0