From da21cd3daa85e5ceb51aec62742f651a37384f67 Mon Sep 17 00:00:00 2001 From: jacy <18049821889@163.com> Date: Sun, 26 Jul 2026 09:59:38 +0800 Subject: [PATCH] =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E5=88=A4=E6=96=AD=E9=85=8D?= =?UTF-8?q?=E9=80=81=E9=99=90=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/admin-web/src/lib/api.ts | 2 + apps/admin-web/src/pages/OrdersPage.tsx | 45 +++++++++++++--- packages/domain/src/index.test.ts | 11 ++++ packages/domain/src/index.ts | 24 +++++++++ packages/shared-types/src/trade.ts | 5 ++ server/dukang-api/prisma/schema.prisma | 3 ++ .../fulfillment/fulfillment.service.ts | 54 +++++++++++++++++++ .../src/modules/ops/admin-orders.service.ts | 7 +++ .../src/modules/ops/dto/admin-query.dto.ts | 4 ++ .../modules/settlement/settlement.service.ts | 25 ++++++++- 杜康好客-v3-PRD.md | 3 +- 杜康好客-知识库.md | 3 +- 12 files changed, 176 insertions(+), 10 deletions(-) diff --git a/apps/admin-web/src/lib/api.ts b/apps/admin-web/src/lib/api.ts index 9b3c91c..829be92 100644 --- a/apps/admin-web/src/lib/api.ts +++ b/apps/admin-web/src/lib/api.ts @@ -146,6 +146,8 @@ export type AdminOrderRow = { city?: { id: string; name: string; code: string }; fulfillmentWarehouseId?: string | null; fulfillmentWarehouse?: { id: string; name: string } | null; + fulfillmentHold?: boolean; + fulfillmentHoldReason?: string | null; user?: { id: string; userNo: string; phone: string | null; nickname: string | null }; delivery?: { provider: string; diff --git a/apps/admin-web/src/pages/OrdersPage.tsx b/apps/admin-web/src/pages/OrdersPage.tsx index fa88721..18edfb9 100644 --- a/apps/admin-web/src/pages/OrdersPage.tsx +++ b/apps/admin-web/src/pages/OrdersPage.tsx @@ -26,6 +26,7 @@ import { ORDER_STATUS_LABELS, fmtTime, } from '../lib/constants'; +import { FULFILLMENT_HOLD_REASON_LABELS } from '@dukang/shared-types'; type ShipDefaults = { provider: string; @@ -202,6 +203,7 @@ export default function OrdersPage() { if (values.status) qs.set('status', values.status); if (values.cityId) qs.set('cityId', values.cityId); if (values.receiverPhone) qs.set('receiverPhone', values.receiverPhone); + if (values.fulfillmentHold) qs.set('fulfillmentHold', 'true'); const res = await request>(`/admin/orders?${qs}`); setData(res); } finally { @@ -395,9 +397,12 @@ export default function OrdersPage() { { title: '状态', dataIndex: 'status', - width: 100, - render: (s) => ( - {ORDER_STATUS_LABELS[s] || s} + width: 140, + render: (s, row) => ( + + {ORDER_STATUS_LABELS[s] || s} + {row.fulfillmentHold ? 大单待确认 : null} + ), }, { @@ -477,6 +482,14 @@ export default function OrdersPage() { + +