Explorar o código

refactor(order-detail): 移除多余的useEffect,简化状态管理

- 移除orderPersons状态和相关的useEffect
- 直接使用order?.orderPersons || []代替额外的状态管理
- 简化代码逻辑,减少不必要的状态更新
- 保持原有功能不变,提高代码可读性

Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
yourname hai 1 mes
pai
achega
0ebfab6eb0

+ 4 - 14
allin-packages/order-management-ui/src/components/OrderDetailModal.tsx

@@ -92,7 +92,6 @@ const OrderDetailModal: React.FC<OrderDetailModalProps> = ({
   const [isAssetAssociationOpen, setIsAssetAssociationOpen] = useState(false);
   const [selectedPersonId, setSelectedPersonId] = useState<number | null>(null);
   const [isActionLoading, setIsActionLoading] = useState(false);
-  const [orderPersons, setOrderPersons] = useState<OrderPerson[]>([]);
   const [pendingPersons, setPendingPersons] = useState<PendingPerson[]>([]);
 
   // 查询订单详情
@@ -117,15 +116,6 @@ const OrderDetailModal: React.FC<OrderDetailModalProps> = ({
     enabled: open && !!orderId,
   });
 
-  // 从订单详情中获取人员信息
-  useEffect(() => {
-    if (order && order.orderPersons) {
-      // API已经返回了完整的person字段,直接使用
-      setOrderPersons(order.orderPersons);
-    } else {
-      setOrderPersons([]);
-    }
-  }, [order]);
 
   // 激活订单
   const activateMutation = useMutation({
@@ -300,7 +290,7 @@ const OrderDetailModal: React.FC<OrderDetailModalProps> = ({
     const personsArray = Array.isArray(persons) ? persons : [persons];
 
     // 获取已绑定人员的ID列表
-    const existingPersonIds = orderPersons.map(p => p.personId);
+    const existingPersonIds = (order?.orderPersons || []).map(p => p.personId);
     // 获取待添加人员的ID列表
     const pendingPersonIds = pendingPersons.map(p => p.personId);
 
@@ -694,7 +684,7 @@ const OrderDetailModal: React.FC<OrderDetailModalProps> = ({
                   </div>
                 </CardHeader>
                 <CardContent>
-                  {orderPersons && orderPersons.length > 0 ? (
+                  {order?.orderPersons && order.orderPersons.length > 0 ? (
                     <div className="border rounded-md">
                       <Table>
                         <TableHeader>
@@ -710,7 +700,7 @@ const OrderDetailModal: React.FC<OrderDetailModalProps> = ({
                           </TableRow>
                         </TableHeader>
                         <TableBody>
-                          {orderPersons.map((person) => (
+                          {(order?.orderPersons || []).map((person) => (
                             <TableRow
                               key={person.personId}
                               data-testid={`order-detail-person-${person.personId}`}
@@ -856,7 +846,7 @@ const OrderDetailModal: React.FC<OrderDetailModalProps> = ({
         onOpenChange={setIsPersonSelectorOpen}
         onSelect={handlePersonSelect}
         mode="multiple"
-        disabledIds={orderPersons.map(p => p.personId)}
+        disabledIds={(order?.orderPersons || []).map(p => p.personId)}
       />
 
       {/* 资产关联模态框 */}