|
|
|
|
@ -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 && (
|
|
|
|
|
|