|
|
|
|
@ -93,6 +93,17 @@ const ideContainerSlice = createSlice({
|
|
|
|
|
},
|
|
|
|
|
updateCurrentAppData(state, action) {
|
|
|
|
|
state.currentAppData = action.payload;
|
|
|
|
|
|
|
|
|
|
// 切换应用时,同步全局 nodeStatusMap 为新应用的节点状态
|
|
|
|
|
const newAppKey = getCurrentAppKey(action.payload);
|
|
|
|
|
if (newAppKey && state.appRuntimeData[newAppKey]) {
|
|
|
|
|
state.nodeStatusMap = { ...state.appRuntimeData[newAppKey].nodeStatusMap };
|
|
|
|
|
state.isRunning = state.appRuntimeData[newAppKey].isRunning;
|
|
|
|
|
} else {
|
|
|
|
|
// 如果新应用没有运行时数据,清空节点状态
|
|
|
|
|
state.nodeStatusMap = {};
|
|
|
|
|
state.isRunning = false;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
updateEventList(state, action) {
|
|
|
|
|
state.eventList = action.payload;
|
|
|
|
|
@ -114,21 +125,21 @@ const ideContainerSlice = createSlice({
|
|
|
|
|
},
|
|
|
|
|
// 更新节点状态
|
|
|
|
|
updateNodeStatus: (state, { payload }) => {
|
|
|
|
|
const { nodeId, status, actionType } = payload;
|
|
|
|
|
// 如果是运行时更新,不记录到历史记录中
|
|
|
|
|
if (actionType !== 'RUNTIME_UPDATE') {
|
|
|
|
|
state.nodeStatusMap[nodeId] = status;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
// 对于运行时更新,我们仍然更新状态但标记为运行时状态
|
|
|
|
|
const { nodeId, status, actionType, appId } = payload;
|
|
|
|
|
|
|
|
|
|
// 如果提供了 appId,优先使用提供的 appId;否则使用当前激活的应用
|
|
|
|
|
const targetAppKey = appId || getCurrentAppKey(state.currentAppData);
|
|
|
|
|
|
|
|
|
|
// 更新全局 nodeStatusMap(仅当是当前激活应用时更新,用于 UI 显示)
|
|
|
|
|
const currentAppKey = getCurrentAppKey(state.currentAppData);
|
|
|
|
|
if (targetAppKey === currentAppKey) {
|
|
|
|
|
state.nodeStatusMap[nodeId] = status;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 同时更新当前应用的节点状态
|
|
|
|
|
const appKey = getCurrentAppKey(state.currentAppData);
|
|
|
|
|
if (appKey) {
|
|
|
|
|
if (!state.appRuntimeData[appKey]) {
|
|
|
|
|
state.appRuntimeData[appKey] = {
|
|
|
|
|
// 更新目标应用的节点状态
|
|
|
|
|
if (targetAppKey) {
|
|
|
|
|
if (!state.appRuntimeData[targetAppKey]) {
|
|
|
|
|
state.appRuntimeData[targetAppKey] = {
|
|
|
|
|
nodeStatusMap: {},
|
|
|
|
|
isRunning: false,
|
|
|
|
|
logs: [],
|
|
|
|
|
@ -137,7 +148,7 @@ const ideContainerSlice = createSlice({
|
|
|
|
|
eventlisteneList: []
|
|
|
|
|
};
|
|
|
|
|
}
|
|
|
|
|
state.appRuntimeData[appKey].nodeStatusMap[nodeId] = status;
|
|
|
|
|
state.appRuntimeData[targetAppKey].nodeStatusMap[nodeId] = status;
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
// 重置节点状态
|
|
|
|
|
|