fix: show env status warning in survey tab + add alert on survey failure

- Add isEnvAlive check on mount via /api/simulation/env-status
- Show warning banner when simulation env is not running
- Add alert() on survey failure for visibility
- Add envNotRunning translation key for th/en/zh
This commit is contained in:
Kunthawat Greethong
2026-06-17 21:35:08 +07:00
parent fa3160f67e
commit 55a430db62
4 changed files with 58 additions and 10 deletions

View File

@@ -315,6 +315,10 @@
<div v-if="activeTab === 'survey'" class="survey-container">
<!-- Survey Setup -->
<div class="survey-setup">
<!-- Env status warning -->
<div v-if="!isEnvAlive" class="survey-env-warning">
{{ $t('step5.envNotRunning') || 'Simulation environment is not running. Survey requires an active simulation environment.' }}
</div>
<div class="setup-section">
<div class="section-header">
<span class="section-title">{{ $t('step5.selectSurveyTarget') }}</span>
@@ -414,7 +418,7 @@
import { ref, computed, watch, onMounted, onUnmounted, nextTick } from 'vue'
import { useI18n } from 'vue-i18n'
import { chatWithReport, getReport, getAgentLog } from '../api/report'
import { interviewAgents, getSimulationProfilesRealtime } from '../api/simulation'
import { interviewAgents, getSimulationProfilesRealtime, getEnvStatus } from '../api/simulation'
const { t } = useI18n()
@@ -445,9 +449,9 @@ const chatInputRef = ref(null)
// Survey State
const selectedAgents = ref(new Set())
const surveyQuestion = ref('')
const isEnvAlive = ref(false)
const surveyResults = ref([])
const isSurveying = ref(false)
// Report Data
const reportOutline = ref(null)
const generatedSections = ref({})
@@ -782,6 +786,16 @@ const scrollToBottom = () => {
}
// Survey Methods
const checkEnvStatus = async () => {
if (!props.simulationId) return
try {
const res = await getEnvStatus({ simulation_id: props.simulationId })
isEnvAlive.value = res.success && res.data?.running === true
} catch {
isEnvAlive.value = false
}
}
const toggleAgentSelection = (idx) => {
const newSet = new Set(selectedAgents.value)
if (newSet.has(idx)) {
@@ -945,6 +959,7 @@ onMounted(() => {
addLog(t('log.step5Init'))
loadReportData()
loadProfiles()
checkEnvStatus()
document.addEventListener('click', handleClickOutside)
})
@@ -2155,6 +2170,18 @@ watch(() => props.simulationId, (newId) => {
/* Survey Container */
.survey-container {
/* env warning */
}
.survey-env-warning {
background: #FFF3CD;
color: #856404;
border: 1px solid #FFEAA7;
border-radius: 6px;
padding: 10px 14px;
margin-bottom: 12px;
font-size: 0.85rem;
}
flex: 1;
display: flex;
flex-direction: column;