This commit is contained in:
huangyaohui 2026-03-20 10:27:00 +08:00
parent 8e0c6b01ff
commit 03d8748541
1 changed files with 68 additions and 45 deletions

View File

@ -284,49 +284,28 @@ const disposalProcess = ref([
title: '事件研判与处置触发',
status: 'done',
statusText: '已完成',
content: [
{label: '接入来源', value: '视频AI自动检测'},
{label: '研判耗时', value: '3分钟'},
{
label: '影响范围',
value: '<span class="text-danger">3条</span>路段,<span class="text-danger">1.5公里</span>拥堵'
}
]
content: []
},
{
id: 2,
title: '智能方案生成与推荐',
status: 'done',
statusText: '已完成',
content: [
{label: 'AI方案', value: '方案A(推荐指数95%)'},
{label: '关键措施', value: '远程信控,派遣交警,发布诱导'},
{label: '生成耗时', value: '10秒'}
]
content: []
},
{
id: 3,
title: '处置措施执行与跟踪',
status: 'processing',
statusText: '执行中',
content: [
{label: '当前动作', value: '现场清障中(推荐指数95%)'},
{
label: '资源到位',
value: '交警(已到)、<span class="text-success">救护车(途中)</span>、<span class="text-danger">拖车(已调度)</span>'
},
{label: '交通管制', value: '主路封闭,辅路缓行'}
]
content: []
},
{
id: 4,
title: '动态调整与协同',
status: 'pending',
statusText: '待处理',
content: [
{label: '协同部门', value: '交管,卫健,消防'},
{label: '最新指令', value: '11:05 解除部分外围封锁'}
]
content: []
}
])
@ -340,41 +319,85 @@ const processSegments = Array.from({length: 60}, (_, index) => index < 45)
//
const rescueMonitoring = ref({
avgSpeed: 45,
avgTime: 6,
efficiency: 35
avgSpeed: '',
avgTime: '',
efficiency: ''
})
//
const controlOverview = ref({
intersectionCount: 6,
signalCount: 20,
laneControl: 6,
busLines: 25,
vmsStatus: 'VMS、移动应用已推送'
intersectionCount: '',
signalCount: '',
laneControl: '',
busLines: '',
vmsStatus: ''
})
//
const effectEvaluation = ref({
recoveryTime: 25,
avgDelay: 15,
emissionReduction: 10,
recoveryIndex: 95
recoveryTime: '',
avgDelay: '',
emissionReduction: '',
recoveryIndex: ''
})
const getPageData = async () => {
const res = await api.getPageData('emergency')
const data = JSON.parse(res.data)
console.log("🚀 ~ getPageData ~ data: ", data);
data['basic_info_and_realtime_monitor'].items.forEach(item => {
if (item['project'] === '当前事件ID') {
currentEvent.value.id = item['data']
} else if (item['project'] === '事故严重性') {
currentEvent.value.level = item['data']
} else if (item['project'] === '事故影响') {
currentEvent.value.impact = item['data']
}
const fieldMappings = {
'basic_info_and_realtime_monitor': [
['当前事件ID', currentEvent, 'id'],
['事故严重性', currentEvent, 'level'],
['事故影响', currentEvent, 'impact']
],
'rescue_operation_monitor': [
['应急车辆平均速度', rescueMonitoring, 'avgSpeed'],
['应急车辆平均行程时间', rescueMonitoring, 'avgTime'],
['应急路径效率提升', rescueMonitoring, 'efficiency']
],
'regional_coordination': [
['受控路口数量', controlOverview, 'intersectionCount'],
['受控信号灯具', controlOverview, 'signalCount'],
['实施匝道管控', controlOverview, 'laneControl'],
['公交优先保障路线', controlOverview, 'busLines'],
['交通诱导发布', controlOverview, 'vmsStatus']
],
'effect_evaluation': [
['预计交通恢复时长', effectEvaluation, 'recoveryTime'],
['预计平均延误', effectEvaluation, 'avgDelay'],
['预计碳排放削减', effectEvaluation, 'emissionReduction'],
['交通流恢复指数', effectEvaluation, 'recoveryIndex']
]
}
Object.entries(fieldMappings).forEach(([sectionKey, mappings]) => {
const items = data[sectionKey]?.items || []
const map = new Map(items.map(item => [item['project'], item['data']]))
mappings.forEach(([projectName, targetObj, propName]) => {
if (map.has(projectName)) {
targetObj.value[propName] = map.get(projectName)
}
})
})
const disposalProcessMapping = {
'incident_assessment_and_trigger': 0,
'intelligent_plan_generation': 1,
'measure_execution_tracking': 2,
'dynamic_adjustment_collab': 3
}
if (data['disposal_process']) {
Object.entries(data['disposal_process']).forEach(([key, section]) => {
const index = disposalProcessMapping[key]
if (index !== undefined && section?.items) {
disposalProcess.value[index].content = section.items
.filter(item => item['project'] !== '完成')
.map(item => ({
label: item['project'],
value: item['data']
}))
}
})
}
}
onMounted(() => {