From f733f061096401efefbc30c68abc7b9b1e3bb99c Mon Sep 17 00:00:00 2001 From: zhuotianyuan Date: Mon, 26 Jan 2026 17:40:23 +0800 Subject: [PATCH 1/4] =?UTF-8?q?feat(api):=20=E6=B7=BB=E5=8A=A0=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3=E5=92=8C=E7=AB=99?= =?UTF-8?q?=E7=82=B9=E7=AE=A1=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 添加订单相关接口包括获取订单项列表和关联订单功能 新增站点管理的创建、禁用、获取、列表和更新接口 更新类型定义以支持新功能 --- src/pages/Order/List/index.tsx | 1 + src/servers/api/index.ts | 4 +- src/servers/api/order.ts | 44 +++++++++++++++ src/servers/api/site.ts | 75 ++++++++++++++++++++++++++ src/servers/api/typings.d.ts | 99 ++++++++++++++++++++++++++++++---- 5 files changed, 211 insertions(+), 12 deletions(-) diff --git a/src/pages/Order/List/index.tsx b/src/pages/Order/List/index.tsx index e74e151..57818b9 100644 --- a/src/pages/Order/List/index.tsx +++ b/src/pages/Order/List/index.tsx @@ -1947,6 +1947,7 @@ const [shipmentPlatforms, setShipmentPlatforms] = useState([ const res = await logisticscontrollerGetshipmentfee( { + shipmentPlatform: data.shipmentPlatform, stockPointId: data.stockPointId, sender: details.origin.contact_name, diff --git a/src/servers/api/index.ts b/src/servers/api/index.ts index 7e0131b..a377a94 100644 --- a/src/servers/api/index.ts +++ b/src/servers/api/index.ts @@ -1,7 +1,7 @@ // @ts-ignore /* eslint-disable */ -// API 更新时间: -// API 唯一标识: +// API 更新时间: +// API 唯一标识: import * as customer from './customer'; import * as logistics from './logistics'; import * as order from './order'; diff --git a/src/servers/api/order.ts b/src/servers/api/order.ts index 4d7d5a2..d386ddd 100644 --- a/src/servers/api/order.ts +++ b/src/servers/api/order.ts @@ -30,6 +30,20 @@ export async function ordercontrollerDelorder( }); } +/** 此处后端没有提供注释 GET /order/${param0}/related */ +export async function ordercontrollerGetrelatedbyorder( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.ordercontrollerGetrelatedbyorderParams, + options?: { [key: string]: any }, +) { + const { orderId: param0, ...queryParams } = params; + return request(`/order/${param0}/related`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + /** 此处后端没有提供注释 POST /order/createNote */ export async function ordercontrollerCreatenote( body: API.CreateOrderNoteDTO, @@ -60,6 +74,36 @@ export async function ordercontrollerGetorderbynumber( }); } +/** 此处后端没有提供注释 GET /order/getOrderItemList */ +export async function ordercontrollerGetorderitemlist( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.ordercontrollerGetorderitemlistParams, + options?: { [key: string]: any }, +) { + return request('/order/getOrderItemList', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + +/** 此处后端没有提供注释 GET /order/getOrderItems */ +export async function ordercontrollerGetorderitems( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.ordercontrollerGetorderitemsParams, + options?: { [key: string]: any }, +) { + return request('/order/getOrderItems', { + method: 'GET', + params: { + ...params, + }, + ...(options || {}), + }); +} + /** 此处后端没有提供注释 GET /order/getOrders */ export async function ordercontrollerGetorders( // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) diff --git a/src/servers/api/site.ts b/src/servers/api/site.ts index a234ee2..5dee931 100644 --- a/src/servers/api/site.ts +++ b/src/servers/api/site.ts @@ -9,3 +9,78 @@ export async function sitecontrollerAll(options?: { [key: string]: any }) { ...(options || {}), }); } + +/** 此处后端没有提供注释 POST /site/create */ +export async function sitecontrollerCreate( + body: API.CreateSiteDTO, + options?: { [key: string]: any }, +) { + return request('/site/create', { + method: 'POST', + headers: { + 'Content-Type': 'application/json', + }, + data: body, + ...(options || {}), + }); +} + +/** 此处后端没有提供注释 PUT /site/disable/${param0} */ +export async function sitecontrollerDisable( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.sitecontrollerDisableParams, + body: API.DisableSiteDTO, + options?: { [key: string]: any }, +) { + const { id: param0, ...queryParams } = params; + return request(`/site/disable/${param0}`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || {}), + }); +} + +/** 此处后端没有提供注释 GET /site/get/${param0} */ +export async function sitecontrollerGet( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.sitecontrollerGetParams, + options?: { [key: string]: any }, +) { + const { id: param0, ...queryParams } = params; + return request(`/site/get/${param0}`, { + method: 'GET', + params: { ...queryParams }, + ...(options || {}), + }); +} + +/** 此处后端没有提供注释 GET /site/list */ +export async function sitecontrollerList(options?: { [key: string]: any }) { + return request('/site/list', { + method: 'GET', + ...(options || {}), + }); +} + +/** 此处后端没有提供注释 PUT /site/update/${param0} */ +export async function sitecontrollerUpdate( + // 叠加生成的Param类型 (非body参数swagger默认没有生成对象) + params: API.sitecontrollerUpdateParams, + body: API.UpdateSiteDTO, + options?: { [key: string]: any }, +) { + const { id: param0, ...queryParams } = params; + return request(`/site/update/${param0}`, { + method: 'PUT', + headers: { + 'Content-Type': 'application/json', + }, + params: { ...queryParams }, + data: body, + ...(options || {}), + }); +} diff --git a/src/servers/api/typings.d.ts b/src/servers/api/typings.d.ts index 2a3357d..4e054e9 100644 --- a/src/servers/api/typings.d.ts +++ b/src/servers/api/typings.d.ts @@ -82,6 +82,8 @@ declare namespace API { items?: PurchaseOrderItem[]; }; + type CreateSiteDTO = {}; + type CreateStockPointDTO = { name?: string; location?: string; @@ -134,6 +136,8 @@ declare namespace API { SignatureRequirementEnum?: any; }; + type DisableSiteDTO = {}; + type Location = { name?: string; address?: Address; @@ -299,6 +303,32 @@ declare namespace API { orderId: number; }; + type ordercontrollerGetorderitemlistParams = { + /** 页码 */ + current?: number; + /** 每页大小 */ + pageSize?: number; + siteId?: string; + name?: string; + externalProductId?: string; + externalVariationId?: string; + startDate?: string; + endDate?: string; + }; + + type ordercontrollerGetorderitemsParams = { + isSource?: boolean; + exceptPackage?: boolean; + /** 页码 */ + current?: number; + /** 每页大小 */ + pageSize?: number; + siteId?: string; + name?: string; + startDate?: string; + endDate?: string; + }; + type ordercontrollerGetordersalesParams = { isSource?: boolean; exceptPackage?: boolean; @@ -338,6 +368,12 @@ declare namespace API { | 'return-approved' | 'return-cancelled'; payment_method?: string; + /** 仅订阅订单(父订阅订单或包含订阅商品) */ + isSubscriptionOnly?: boolean; + }; + + type ordercontrollerGetrelatedbyorderParams = { + orderId: number; }; type ordercontrollerRefundorderParams = { @@ -437,8 +473,17 @@ declare namespace API { subtotal_tax?: number; total?: number; total_tax?: number; + tax_class?: string; + taxes?: any; + meta_data?: any; sku?: string; + global_unique_id?: string; price?: number; + image?: Record; + parent_name?: string; + bundled_by?: string; + bundled_item_title?: string; + bundled_items?: any; /** 创建时间 */ createdAt: string; /** 更新时间 */ @@ -570,7 +615,7 @@ declare namespace API { startDate?: string; endDate?: string; keyword?: string; - siteId?: string; + siteId?: number; purchaseType?: 'all' | 'first_purchase' | 'repeat_purchase'; orderType?: 'all' | 'cpc' | 'non_cpc'; brand?: 'all' | 'zyn' | 'yoone' | 'zolt'; @@ -867,6 +912,21 @@ declare namespace API { | 'return-approved' | 'return-cancelled'; payment_method?: string; + /** 仅订阅订单(父订阅订单或包含订阅商品) */ + isSubscriptionOnly?: boolean; + }; + + type QueryOrderItemDTO = { + /** 页码 */ + current?: number; + /** 每页大小 */ + pageSize?: number; + siteId?: string; + name?: string; + externalProductId?: string; + externalVariationId?: string; + startDate?: string; + endDate?: string; }; type QueryOrderSalesDTO = { @@ -918,6 +978,8 @@ declare namespace API { isActive?: boolean; }; + type QuerySiteDTO = {}; + type QueryStockDTO = { /** 页码 */ current?: number; @@ -965,7 +1027,7 @@ declare namespace API { | 'pending-cancel'; /** 客户邮箱 */ customer_email?: string; - /** 关键字(订阅ID、邮箱等) */ + /** 关键字(订阅ID、邮箱等) */ keyword?: string; }; @@ -1047,12 +1109,14 @@ declare namespace API { details?: ShippingDetailsDTO; stockPointId?: number; orderIds?: number[]; + shipmentPlatform?: string; }; type ShipmentFeeBookDTO = { + shipmentPlatform?: string; stockPointId?: number; sender?: string; - startPhone?: string; + startPhone?: Record; startPostalCode?: string; pickupAddress?: string; shipperCountryCode?: string; @@ -1070,6 +1134,7 @@ declare namespace API { dimensionUom?: string; weight?: number; weightUom?: string; + address_id?: number; }; type ShippingAddress = { @@ -1111,17 +1176,29 @@ declare namespace API { /** 站点 ID */ id?: string; /** 站点 URL */ - wpApiUrl?: string; + apiUrl?: string; /** 站点 rest key */ consumerKey?: string; /** 站点 rest 秘钥 */ consumerSecret?: string; /** 站点名 */ siteName?: string; - /** 站点邮箱 */ - email?: string; - /** 站点邮箱密码 */ - emailPswd?: string; + /** 平台类型 */ + type?: 'woocommerce' | 'shopyy'; + /** SKU 前缀 */ + skuPrefix?: string; + }; + + type sitecontrollerDisableParams = { + id: string; + }; + + type sitecontrollerGetParams = { + id: string; + }; + + type sitecontrollerUpdateParams = { + id: string; }; type SkuItemDTO = { @@ -1345,7 +1422,7 @@ declare namespace API { billing_interval?: number; customer_id?: number; customer_email?: string; - /** 父订单/父订阅ID(如有) */ + /** 父订单/父订阅ID(如有) */ parent_id?: number; start_date?: string; trial_end?: string; @@ -1376,7 +1453,7 @@ declare namespace API { | 'pending-cancel'; /** 客户邮箱 */ customer_email?: string; - /** 关键字(订阅ID、邮箱等) */ + /** 关键字(订阅ID、邮箱等) */ keyword?: string; }; @@ -1446,6 +1523,8 @@ declare namespace API { items?: PurchaseOrderItem[]; }; + type UpdateSiteDTO = {}; + type UpdateStockDTO = { stockPointId?: number; productSku?: string; -- 2.40.1 From 2d0f12d0cdf0dade5885f47a1395bac2a9c8b9cf Mon Sep 17 00:00:00 2001 From: zhuotianyuan Date: Tue, 27 Jan 2026 20:20:20 +0800 Subject: [PATCH 2/4] =?UTF-8?q?feat(=E8=AE=A2=E5=8D=95):=20=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E5=BF=AB=E9=80=92=E5=85=AC=E5=8F=B8=E9=80=89=E6=8B=A9?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=E5=B9=B6=E4=BC=98=E5=8C=96=E5=8F=91=E8=B4=A7?= =?UTF-8?q?=E4=BF=A1=E6=81=AF=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在发货表单中添加快递公司选择字段,支持多种快递公司选项 优化发货信息处理逻辑,包括邮件地址和联系信息的正确处理 --- src/pages/Order/List/index.tsx | 78 ++++++++++++++++++++-------------- 1 file changed, 47 insertions(+), 31 deletions(-) diff --git a/src/pages/Order/List/index.tsx b/src/pages/Order/List/index.tsx index 57818b9..509d326 100644 --- a/src/pages/Order/List/index.tsx +++ b/src/pages/Order/List/index.tsx @@ -130,7 +130,7 @@ const ListPage: React.FC = () => { label: '已申请退款', }, { - + key: 'refund_approved', label: "已退款", // label: '退款申请已通过', @@ -174,7 +174,7 @@ const ListPage: React.FC = () => { hideInTable: true, valueType: 'dateRange', }, - + { title: '订阅', dataIndex: 'isSubscription', @@ -215,7 +215,7 @@ const ListPage: React.FC = () => { dataIndex: 'keyword', hideInTable: true, }, - { + { title: '订单ID', dataIndex: 'externalOrderId', }, @@ -253,7 +253,7 @@ const ListPage: React.FC = () => { dataIndex: 'billing_phone', render: (_, record) => record.shipping?.phone || record.billing?.phone, }, - { + { title: '换货次数', dataIndex: 'exchange_frequency', hideInSearch: true, @@ -919,7 +919,7 @@ const Detail: React.FC<{
    {record?.items?.map((item: any) => (
  • - {item.name}:{item.quantity} + {item.name}:{item.quantity}
  • ))}
@@ -927,13 +927,13 @@ const Detail: React.FC<{ }} /> {/* 显示 related order */} - { - return ; - }} -/> + { + return ; + }} + /> {/* 订单内容 */} ([]); const [ratesLoading, setRatesLoading] = useState(false); const { message } = App.useApp(); -const [shipmentPlatforms, setShipmentPlatforms] = useState([ + const [shipmentPlatforms, setShipmentPlatforms] = useState([ { label: 'uniuni', value: 'uniuni' }, { label: 'tms.freightwaves', value: 'freightwaves' }, - ]); + ]); + const [courierCompany, setCourierCompany] = useState([ + { label: 'UNIUNI', value: 'UNIUNI' }, + { label: 'PuroYYZ', value: 'PuroYYZ' }, + { label: 'CPYYZ', value: 'CPYYZ' }, + { label: 'UPSYYZ7000NEW', value: 'UPSYYZ7000NEW' }, + ]); return ( - + - - - + + + + + + ({ // label: item.name, // value: item.sku, // })) || [], // ); - return { ...data}; + return { ...data }; }} onFinish={async (formData: any) => { const { sales } = formData; @@ -2064,14 +2080,14 @@ const SalesChange: React.FC<{ return true; }} > - { try { const { data } = await wpproductcontrollerSearchproducts({ @@ -2110,7 +2126,7 @@ const SalesChange: React.FC<{ precision: 0, }} /> - + @@ -2120,7 +2136,7 @@ const SalesChange: React.FC<{ > - + { -- 2.40.1 From 021a444a5c5f9cc19725c08cc17af1c6b93b5bc0 Mon Sep 17 00:00:00 2001 From: zhuotianyuan Date: Wed, 28 Jan 2026 16:40:57 +0800 Subject: [PATCH 3/4] =?UTF-8?q?fix(=E8=AE=A2=E5=8D=95=E5=88=97=E8=A1=A8):?= =?UTF-8?q?=20=E7=A7=BB=E9=99=A4=E9=BB=98=E8=AE=A4=E7=9A=84=E5=BF=AB?= =?UTF-8?q?=E9=80=92=E5=85=AC=E5=8F=B8=E5=AD=97=E6=AE=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Order/List/index.tsx | 1 - 1 file changed, 1 deletion(-) diff --git a/src/pages/Order/List/index.tsx b/src/pages/Order/List/index.tsx index 509d326..b6187e8 100644 --- a/src/pages/Order/List/index.tsx +++ b/src/pages/Order/List/index.tsx @@ -1258,7 +1258,6 @@ const Shipping: React.FC<{ if (shipmentInfo) shipmentInfo = JSON.parse(shipmentInfo); return { shipmentPlatform: 'freightwaves', - courierCompany: 'UNIUNI', ...data, // payment_method_id: shipmentInfo?.payment_method_id, stockPointId: shipmentInfo?.stockPointId, -- 2.40.1 From 52491cdbe481799f991ee3f5146d1f06156fa6db Mon Sep 17 00:00:00 2001 From: zhuotianyuan Date: Wed, 28 Jan 2026 16:43:49 +0800 Subject: [PATCH 4/4] =?UTF-8?q?feat(=E8=AE=A2=E5=8D=95=E5=88=97=E8=A1=A8):?= =?UTF-8?q?=20=E6=B7=BB=E5=8A=A0=E6=9C=80=E4=BC=98=E7=89=A9=E6=B5=81?= =?UTF-8?q?=E4=BD=9C=E4=B8=BA=E9=BB=98=E8=AE=A4=E5=BF=AB=E9=80=92=E5=85=AC?= =?UTF-8?q?=E5=8F=B8=E9=80=89=E9=A1=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Order/List/index.tsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pages/Order/List/index.tsx b/src/pages/Order/List/index.tsx index b6187e8..fb8459d 100644 --- a/src/pages/Order/List/index.tsx +++ b/src/pages/Order/List/index.tsx @@ -1202,6 +1202,7 @@ const Shipping: React.FC<{ { label: 'tms.freightwaves', value: 'freightwaves' }, ]); const [courierCompany, setCourierCompany] = useState([ + { label: '最优物流', value: '' }, { label: 'UNIUNI', value: 'UNIUNI' }, { label: 'PuroYYZ', value: 'PuroYYZ' }, { label: 'CPYYZ', value: 'CPYYZ' }, @@ -1258,6 +1259,7 @@ const Shipping: React.FC<{ if (shipmentInfo) shipmentInfo = JSON.parse(shipmentInfo); return { shipmentPlatform: 'freightwaves', + courierCompany: '最优物流', ...data, // payment_method_id: shipmentInfo?.payment_method_id, stockPointId: shipmentInfo?.stockPointId, -- 2.40.1