فهرست منبع

♻️ refactor(api): 重构订单客户端管理逻辑

- 添加 OrderClientManager 的 init 方法统一初始化所有管理员客户端
- 修改 OrderManagement 组件以使用 orderClientManager 获取客户端实例
- 调整 API 调用路径,使用 index.$get 替代 $get 以符合最新接口规范
- 移除直接导入 adminOrderClient,统一通过管理器获取客户端实例
yourname 1 ماه پیش
والد
کامیت
928ca965d7

+ 7 - 0
packages/order-management-ui-mt/src/api/orderClient.ts

@@ -55,6 +55,13 @@ class OrderClientManager {
     return this.adminRefundsClient;
   }
 
+  // 通用初始化方法 - 初始化所有管理员客户端
+  public init(baseUrl: string = '/'): void {
+    this.initAdminOrderClient(baseUrl);
+    this.initAdminOrderItemsClient(baseUrl);
+    this.initAdminRefundsClient(baseUrl);
+  }
+
   // 重置所有客户端(用于测试或重新初始化)
   public reset(): void {
     this.adminOrderClient = null;

+ 6 - 6
packages/order-management-ui-mt/src/components/OrderManagement.tsx

@@ -61,12 +61,12 @@ const DataTablePagination = ({
     </div>
   );
 };
-import { adminOrderClient } from '../api';
+import { adminOrderClient, orderClientManager } from '../api';
 import type { InferRequestType, InferResponseType } from 'hono/client';
 import { UpdateOrderDto } from '@d8d/orders-module-mt/schemas';
 
 // 类型定义
-type OrderResponse = InferResponseType<typeof adminOrderClient.$get, 200>['data'][0];
+type OrderResponse = InferResponseType<typeof adminOrderClient.index.$get, 200>['data'][0];
 type UpdateRequest = InferRequestType<typeof adminOrderClient[':id']['$put']>['json'];
 
 // 状态映射
@@ -124,7 +124,7 @@ export const OrderManagement = () => {
         filters.payState = parseInt(searchParams.payStatus);
       }
 
-      const res = await adminOrderClient.$get({
+      const res = await orderClientManager.getAdminOrderClient().index.$get({
         query: {
           page: searchParams.page,
           pageSize: searchParams.limit,
@@ -161,11 +161,11 @@ export const OrderManagement = () => {
 
   // 处理更新订单
   const handleUpdateSubmit = async (data: UpdateRequest) => {
-    if (!editingOrder) return;
+    if (!editingOrder || !editingOrder.id) return;
 
     try {
-      const res = await adminOrderClient[':id']['$put']({
-        param: { id: editingOrder.id.toString() },
+      const res = await orderClientManager.getAdminOrderClient()[':id']['$put']({
+        param: { id: editingOrder.id },
         json: data,
       });