feat(component): 组件部署启动功能增加启动锁

master
钟良源 2 months ago
parent 4b7f3dc897
commit cd02dd1df6

@ -37,6 +37,8 @@ const ListNode: React.FC<ListNodeProps> = ({ componentData }) => {
const [data, setData] = useState([]);
const [loading, setLoading] = useState(false);
const [refreshingIds, setRefreshingIds] = useState<Set<string>>(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<ListNodeProps> = ({ 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<ListNodeProps> = ({ 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<ListNodeProps> = ({ componentData }) => {
src={'/icons/powerUpIcon.png'}
style={{ width: 16, height: 16, marginRight: 5, verticalAlign: 'middle' }} />}
onClick={() => handleStart(record)}
loading={startingId === record.id && startLoading}
></Button>
)}
{!isRunning && (

Loading…
Cancel
Save