Bläddra i källkod

✨ feat(order-management): 新增订单详情获取功能

- 添加获取订单详情的 useMutation 钩子,包含成功和错误处理
- 优化编辑订单流程:先显示列表项基本字段,再异步获取完整详情更新表单
- 增强错误处理,通过 toast 通知用户获取详情失败信息
yourname 2 timmar sedan
förälder
incheckning
f874e995e7
1 ändrade filer med 25 tillägg och 1 borttagningar
  1. 25 1
      allin-packages/order-management-ui/src/components/OrderManagement.tsx

+ 25 - 1
allin-packages/order-management-ui/src/components/OrderManagement.tsx

@@ -171,11 +171,35 @@ export const OrderManagement: React.FC = () => {
     setIsOrderFormOpen(true);
   };
 
+  // 获取订单详情Mutation
+  const getOrderDetailMutation = useMutation({
+    mutationFn: async (id: number) => {
+      const response = await orderClientManager.get().detail[':id'].$get({
+        param: { id },
+      });
+      if (!response.ok) {
+        const errorData = await response.json();
+        throw new Error(errorData.message || '获取订单详情失败');
+      }
+      return response.json();
+    },
+    onSuccess: (detail) => {
+      setSelectedOrder(detail);
+    },
+    onError: (error: Error) => {
+      console.error('获取订单详情失败:', error);
+      toast.error(`获取订单详情失败: ${error.message}`);
+    },
+  });
+
   // 处理编辑订单
   const handleEditOrder = (order: OrderListItem) => {
-    // 这里需要获取订单详情
+    // 先设置列表项数据,让表单立即显示基本字段
+    // 注意:OrderListItem 可能缺少 OrderDetail 的某些字段,但基本字段应该相同
     setSelectedOrder(order as OrderDetail);
     setIsOrderFormOpen(true);
+    // 然后异步获取完整详情来更新表单
+    getOrderDetailMutation.mutate(order.id);
   };
 
   // 处理删除订单