refactor: defer remount recovery to #758

This commit is contained in:
Cyrus Auyeung 2026-08-06 12:23:35 +08:00
parent 747c6a0ffd
commit bd4babb51a
1 changed files with 4 additions and 64 deletions

View File

@ -398,75 +398,15 @@ const resetAllState = () => {
stopPolling() //
}
const hasExistingRunData = (data) => {
if (!data) return false
const runnerStatus = data.runner_status
const actionsCount = Number(data.total_actions_count || 0)
+ Number(data.twitter_actions_count || 0)
+ Number(data.reddit_actions_count || 0)
return Boolean(data.started_at)
|| actionsCount > 0
|| ['starting', 'running', 'completed', 'stopped', 'paused', 'failed'].includes(runnerStatus)
}
const isActiveRun = (data) => {
return data?.runner_status === 'starting'
|| data?.runner_status === 'running'
|| data?.twitter_running
|| data?.reddit_running
}
const restoreExistingRun = async (data) => {
runStatus.value = data
prevTwitterRound.value = data.twitter_current_round || 0
prevRedditRound.value = data.reddit_current_round || 0
await fetchRunStatusDetail()
if (isActiveRun(data)) {
phase.value = 1
emit('update-status', 'processing')
startStatusPolling()
startDetailPolling()
return
}
phase.value = 2
emit('update-status', data.runner_status === 'failed' ? 'error' : 'completed')
if (data.error) {
addLog(t('log.startFailed', { error: data.error }))
}
}
const initializeSimulationView = async () => {
if (!props.simulationId) {
addLog(t('log.errorMissingSimId'))
return
}
resetAllState()
try {
const res = await getRunStatus(props.simulationId)
if (res.success && hasExistingRunData(res.data)) {
await restoreExistingRun(res.data)
return
}
} catch (err) {
console.warn('恢复模拟运行状态失败:', err)
}
await doStartSimulation({ reset: false })
}
//
const doStartSimulation = async ({ reset = true } = {}) => {
const doStartSimulation = async () => {
if (!props.simulationId) {
addLog(t('log.errorMissingSimId'))
return
}
//
if (reset) resetAllState()
resetAllState()
isStarting.value = true
startError.value = null
@ -477,7 +417,7 @@ const doStartSimulation = async ({ reset = true } = {}) => {
const params = {
simulation_id: props.simulationId,
platform: 'parallel',
force: false,
force: true, //
enable_graph_memory_update: true //
}
@ -774,7 +714,7 @@ watch(() => props.systemLogs?.length, () => {
onMounted(() => {
addLog(t('log.step3Init'))
if (props.simulationId) {
initializeSimulationView()
doStartSimulation()
}
})