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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user