diff --git a/src/pages/componentDevelopment/componentDeployment/listNode.tsx b/src/pages/componentDevelopment/componentDeployment/listNode.tsx index f7b63ff..8dbf351 100644 --- a/src/pages/componentDevelopment/componentDeployment/listNode.tsx +++ b/src/pages/componentDevelopment/componentDeployment/listNode.tsx @@ -37,6 +37,8 @@ const ListNode: React.FC = ({ componentData }) => { const [data, setData] = useState([]); const [loading, setLoading] = useState(false); const [refreshingIds, setRefreshingIds] = useState>(new Set()); // 记录正在刷新的实例ID + const [startLoading, setStartLoading] = useState(false); + const [startingId, setStartingId] = useState(null); // 当前正在启动的实例ID // 日志 Modal 相关状态 const [logModalVisible, setLogModalVisible] = useState(false); @@ -89,6 +91,8 @@ const ListNode: React.FC = ({ componentData }) => { // 先执行刷新依赖 // await refreshInstanceDependency(record.id); // 刷新依赖完成后启动 + setStartLoading(true); + setStartingId(record.id); const res: any = await startInstance(record.id); if (res.code === 200) { Message.success('启动成功'); @@ -97,9 +101,13 @@ const ListNode: React.FC = ({ componentData }) => { else { Message.error(res.msg || '启动失败'); } + setStartLoading(false); + setStartingId(null); } catch (error) { console.error('启动实例失败:', error); Message.error('启动失败'); + setStartLoading(false); + setStartingId(null); } }; @@ -393,6 +401,7 @@ const ListNode: React.FC = ({ componentData }) => { src={'/icons/powerUpIcon.png'} style={{ width: 16, height: 16, marginRight: 5, verticalAlign: 'middle' }} />} onClick={() => handleStart(record)} + loading={startingId === record.id && startLoading} >启动 )} {!isRunning && (