From 2a889a7d910655abe30a5fc861d92982da5d7a38 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Wed, 12 Aug 2026 17:45:49 +0800 Subject: [PATCH] =?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/core/navigation/adminNavigation.test.ts | 5 ++-- .../customs/pages/CustomsCasesView.test.ts | 4 +++ .../customs/pages/CustomsCasesView.vue | 2 +- .../fee-items/pages/FeeItemsView.test.ts | 5 ++++ src/modules/fee-items/pages/FeeItemsView.vue | 7 +++--- .../iam/pages/InternalUsersView.test.ts | 8 ++++++ src/modules/iam/pages/InternalUsersView.vue | 4 +-- src/modules/iam/pages/PermissionsView.test.ts | 17 +++++++++++++ src/modules/iam/pages/PermissionsView.vue | 10 ++++---- .../counterparties/pages/PartnersView.test.ts | 4 +++ .../counterparties/pages/PartnersView.vue | 6 ++--- .../pages/ExpressCompaniesView.test.ts | 9 +++++++ .../pages/ExpressCompaniesView.vue | 6 +++-- .../pages/OutboundDispatchesView.test.ts | 7 ++++++ .../pages/OutboundDispatchesView.vue | 3 ++- .../pages/PortSchedulesView.test.ts | 6 +++++ .../pages/PortSchedulesView.vue | 2 +- .../pages/TruckAppointmentsView.test.ts | 5 ++++ .../trucking/pages/TruckAppointmentsView.vue | 3 ++- .../pages/UnifiedOrdersView.test.ts | 8 ++++++ .../pages/UnifiedOrdersView.vue | 2 +- .../UnifiedOrderWorkflowPanel.test.ts | 13 ++++++++++ .../components/UnifiedOrderWorkflowPanel.vue | 8 +++--- src/shared/components/DataTable.test.ts | 25 +++++++++++++++++-- src/shared/components/DataTable.vue | 14 ++++++++++- 25 files changed, 154 insertions(+), 29 deletions(-) diff --git a/src/core/navigation/adminNavigation.test.ts b/src/core/navigation/adminNavigation.test.ts index 3e891b8a..68c90bac 100644 --- a/src/core/navigation/adminNavigation.test.ts +++ b/src/core/navigation/adminNavigation.test.ts @@ -121,9 +121,10 @@ describe('adminNavigation', () => { it('shows the five formal finance pages with their real backend permissions', () => { const filtered = filterAdminNavigation(adminNavigation, new Set([ + 'platform:finance:account:view', 'platform:finance:bill:view', - 'platform:finance:receipt:view', - 'platform:finance:cost:view', + 'platform:finance:settlement-ar:view', + 'platform:finance:settlement-ap:view', ])) expect(getNavigationLeaves(filtered).map((item) => item.path).filter((path) => path.startsWith('/finance/'))).toEqual([ diff --git a/src/modules/customs/pages/CustomsCasesView.test.ts b/src/modules/customs/pages/CustomsCasesView.test.ts index 09ee2bd0..d75d5e28 100644 --- a/src/modules/customs/pages/CustomsCasesView.test.ts +++ b/src/modules/customs/pages/CustomsCasesView.test.ts @@ -33,4 +33,8 @@ describe('CustomsCasesView', () => { expect(source).toContain('max-height:90vh') expect(source).toContain('overflow-y:auto') }) + it('uses a bordered view action instead of a text link', () => { + expect(source).toContain('size="small" type="primary" plain') + expect(source).not.toContain("customs:view')\" link") + }) }) diff --git a/src/modules/customs/pages/CustomsCasesView.vue b/src/modules/customs/pages/CustomsCasesView.vue index c000f2a6..225d618c 100644 --- a/src/modules/customs/pages/CustomsCasesView.vue +++ b/src/modules/customs/pages/CustomsCasesView.vue @@ -27,6 +27,6 @@ async function openDetail(id: string) { detailOpen.value = true; detailLoading.v async function submit() { if (!detail.value || !submitForm.customsAgentName.trim()) return; actionError.value = null; try { await submitCustomsCase(detail.value.customsCase.id, { ...submitForm, expectedVersion: detail.value.customsCase.version }); ElMessage.success('已登记线下提交批次'); detail.value = await getCustomsCase(detail.value.customsCase.id) } catch (cause) { actionError.value = getApiErrorDetails(cause); if (actionError.value.code === 'A0409') detail.value = await getCustomsCase(detail.value.customsCase.id) } } watch([page, pageSize], () => void load()); onMounted(load) - diff --git a/src/modules/iam/pages/InternalUsersView.test.ts b/src/modules/iam/pages/InternalUsersView.test.ts index f54f17ae..1d6afc75 100644 --- a/src/modules/iam/pages/InternalUsersView.test.ts +++ b/src/modules/iam/pages/InternalUsersView.test.ts @@ -74,6 +74,14 @@ enableAutoUnmount(afterEach) afterAll(() => vi.unstubAllGlobals()) describe('InternalUsersView platform internal user management', () => { + it('renders row business actions as colored outlined buttons with prototype icons', () => { + expect(internalUsersSource).toContain('size="small" plain type="primary" @click="openEdit') + expect(internalUsersSource).toContain('size="small" plain :type="(row as PlatformManagedUser).status') + expect(internalUsersSource).toContain('编辑') + expect(internalUsersSource).toContain('') + expect(internalUsersSource).not.toContain('v-if="canChangeStatus" link') + }) + it('uses the prototype-sized centered editor with a scrollable body and mobile single column', () => { expect(internalUsersSource).toContain('width="min(650px, calc(100vw - 28px))"') expect(internalUsersSource).toContain(':global(.internal-user-editor-dialog .el-dialog__body) { min-height: 0; overflow-y: auto; }') diff --git a/src/modules/iam/pages/InternalUsersView.vue b/src/modules/iam/pages/InternalUsersView.vue index 4ee9f115..b19b6604 100644 --- a/src/modules/iam/pages/InternalUsersView.vue +++ b/src/modules/iam/pages/InternalUsersView.vue @@ -324,10 +324,10 @@ onMounted(loadInitialData)