From 0f352bbdf9dd57f0bbfcd4ae8191b76cf3183841 Mon Sep 17 00:00:00 2001 From: ouyangxq <775153912@qq.com> Date: Mon, 17 Aug 2026 19:52:08 +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/modules/first-leg/api/unifiedOrders.ts | 26 +++++++----- src/modules/first-leg/types/firstLegOrder.ts | 1 + .../views/FirstLegOrdersView.test.mjs | 10 ++--- .../first-leg/views/FirstLegOrdersView.vue | 5 +-- .../notifications/notifications.test.mjs | 13 ++++++ src/modules/notifications/presentation.ts | 31 ++++++++++++++ .../views/NotificationDetailView.vue | 3 +- .../notifications/views/NotificationsView.vue | 3 +- .../api/merchantIam.test.mjs | 11 +++++ .../tenant-management/api/merchantIam.ts | 10 +++++ .../store/tenantAdministration.ts | 41 +++++++++++++++++-- .../views/CompanyProfileView.vue | 5 +++ .../tenant-management/views/RolesView.vue | 4 +- .../views/TenantAdministrationViews.test.mjs | 12 ++++-- 14 files changed, 142 insertions(+), 33 deletions(-) create mode 100644 src/modules/notifications/presentation.ts diff --git a/src/modules/first-leg/api/unifiedOrders.ts b/src/modules/first-leg/api/unifiedOrders.ts index dfab37f..cf09932 100644 --- a/src/modules/first-leg/api/unifiedOrders.ts +++ b/src/modules/first-leg/api/unifiedOrders.ts @@ -1,5 +1,5 @@ import { ApiError, apiRequest } from '@/api/http' -import type { ApiFirstLegStatus, MerchantFirstLegOrderDetail, PageResult } from '@/modules/first-leg/api/firstLeg' +import type { ApiContainerMode, ApiDestinationType, ApiFirstLegStatus, ApiPickupMethod, MerchantFirstLegOrderDetail, PageResult } from '@/modules/first-leg/api/firstLeg' export type ApiUnifiedOrderMainStatus = | 'PENDING_REVIEW' @@ -42,7 +42,6 @@ export interface MerchantUnifiedDeliverySummary { } export interface MerchantUnifiedTransportSummary { - loadingStatus: string | null containerNo: string | null cabinetNo: string | null vesselName: string | null @@ -72,15 +71,20 @@ export interface MerchantUnifiedOrderRow { totalPackageCount: number | null actualGrossWeightKg: number | null actualVolumeCbm: number | null - skuNos?: string[] | null - expressCompany?: string | null - totalNetWeightKg?: number | null - totalQuantity?: number | null - chargeableVolumeCbm?: number | null - shipmentId?: string | null - referenceId?: string | null - inboundedAt?: string | null - businessDate?: string | null + pickupMethod: ApiPickupMethod | null + requestedPickupAt: string | null + containerMode: ApiContainerMode | null + destinationType: ApiDestinationType | null + destinationCode: string | null + skuNos: string[] | null + expressCompany: string | null + expressTrackingNo: string | null + totalNetWeightKg: number | null + totalQuantity: number | null + chargeableVolumeCbm: number | null + shipmentId: string | null + referenceId: string | null + inboundCompletedAt: string | null measurement: MerchantUnifiedMeasurementSummary | null preload: MerchantUnifiedPreloadSummary | null loading: MerchantUnifiedLoadingSummary | null diff --git a/src/modules/first-leg/types/firstLegOrder.ts b/src/modules/first-leg/types/firstLegOrder.ts index 8e83a1c..3949e31 100644 --- a/src/modules/first-leg/types/firstLegOrder.ts +++ b/src/modules/first-leg/types/firstLegOrder.ts @@ -135,6 +135,7 @@ export interface FirstLegOrder { destinationWarehouseId: string destinationWarehouseName: string pickupMethod: 'SELF_EXPRESS' | 'PICKUP' | 'SELF_TRUCK' + requestedPickupAt: string channelCode: string channelName: string pricingTaxMode: 'TAX_INCLUDED' | 'TAX_EXCLUDED' diff --git a/src/modules/first-leg/views/FirstLegOrdersView.test.mjs b/src/modules/first-leg/views/FirstLegOrdersView.test.mjs index 36e93a9..665f440 100644 --- a/src/modules/first-leg/views/FirstLegOrdersView.test.mjs +++ b/src/modules/first-leg/views/FirstLegOrdersView.test.mjs @@ -137,11 +137,11 @@ test('downloads selected carton labels with one array request', () => { test('exports every visible order field with normalized dates', () => { assert.match(source, /function formatExportDateTime\(value: string \| null \| undefined\)/) assert.match(source, /return `\$\{date\.getFullYear\(\)\}-\$\{pad\(date\.getMonth\(\) \+ 1\)\}-\$\{pad\(date\.getDate\(\)\)\} \$\{pad\(date\.getHours\(\)\)\}:\$\{pad\(date\.getMinutes\(\)\)\}:\$\{pad\(date\.getSeconds\(\)\)\}`/) - for (const label of ['订单号', '入仓码', '渠道', '目的仓', '当前订单状态', '箱数', '快递公司', '快递单号', 'SKUS', '总毛重', '总净重', '总体积', '总数量', '计费单价', '计费体积', '计费重量', '备注', '货件编号', '跟踪编号', '国内仓入库时间', '业务日期', '创建时间']) { + for (const label of ['订单号', '入仓码', '渠道', '目的仓', '当前订单状态', '箱数', '快递公司', '快递单号', 'SKUS', '总毛重', '总净重', '总体积', '总数量', '计费单价', '计费体积', '计费重量', '备注', '货件编号', '跟踪编号', '国内仓入库时间', '创建时间']) { assert.match(source, new RegExp(`'${label}'`)) } assert.match(source, /formatExportDateTime\(order\.inboundedAt\)/) - assert.match(source, /formatExportDateTime\(order\.businessDate\)/) + assert.doesNotMatch(source, /formatExportDateTime\(order\.businessDate\)/) assert.match(source, /formatExportDateTime\(order\.createdAt\)/) }) @@ -156,7 +156,7 @@ test('matches the prototype with selectable dense order-list columns', () => { assert.match(source, />恢复默认<\/el-button>/) assert.match(source, /const visibleOrderColumns = computed/) assert.match(source, /:columns="visibleOrderColumns"/) - for (const label of ['入仓码', '渠道', '目的仓', '当前订单状态', '箱数', '快递公司', '快递单号', 'SKUS', '总毛重', '总净重', '总体积', '总数量', '计费单价', '计费体积', '计费重量', '备注', '货件编号', '跟踪编号', '国内仓入库时间', '业务日期']) { + for (const label of ['入仓码', '渠道', '目的仓', '当前订单状态', '箱数', '快递公司', '快递单号', 'SKUS', '总毛重', '总净重', '总体积', '总数量', '计费单价', '计费体积', '计费重量', '备注', '货件编号', '跟踪编号', '国内仓入库时间']) { assert.match(source, new RegExp(`label: '${label}'`)) } assert.match(source, /order\.businessSummary\.totalPackageCount/) @@ -166,8 +166,8 @@ test('matches the prototype with selectable dense order-list columns', () => { assert.match(source, /