Merge branch 'main' of http://172.16.1.12/chengdandan/intelligentTransportation
This commit is contained in:
commit
09ddbfb0a2
|
|
@ -18,13 +18,14 @@
|
|||
</div>
|
||||
<div class="info-row">
|
||||
<span class="info-label">事故严重性:</span>
|
||||
<span class="info-value severity" :class="currentEvent.levelClass">{{ currentEvent.level }}</span>
|
||||
<span class="info-value severity">{{ currentEvent.level }}</span>
|
||||
</div>
|
||||
<div class="info-row">
|
||||
<span class="info-label">事故影响:</span>
|
||||
<span class="info-value impact"><span class="highlight">{{ currentEvent.impactLanes }}车道</span>封闭,影响半径<span
|
||||
class="highlight">{{ currentEvent.impactRadius }}</span>,预计延误<span
|
||||
class="highlight">{{ currentEvent.delayTime }}</span></span>
|
||||
<!-- <span class="info-value impact"><span class="highlight">{{ currentEvent.impactLanes }}</span>封闭,影响半径<span-->
|
||||
<!-- class="highlight">{{ currentEvent.impactRadius }}</span>,预计延误<span-->
|
||||
<!-- class="highlight">{{ currentEvent.delayTime }}</span></span>-->
|
||||
<span class="info-value impact"><span class="highlight">{{ currentEvent.impact }}</span></span>
|
||||
</div>
|
||||
</div>
|
||||
<!-- 监控视频区域 -->
|
||||
|
|
@ -266,12 +267,12 @@ import api from "@/api/index.js";
|
|||
|
||||
// 当前事件信息
|
||||
const currentEvent = ref({
|
||||
id: 'EVT-20231027-001',
|
||||
level: '中等',
|
||||
levelClass: 'medium',
|
||||
impactLanes: '2',
|
||||
id: '',
|
||||
level: '',
|
||||
impactLanes: '2车道',
|
||||
impactRadius: '3km',
|
||||
delayTime: '20分钟',
|
||||
impact: '',
|
||||
location: '人民路口',
|
||||
time: '10:15'
|
||||
})
|
||||
|
|
@ -283,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: []
|
||||
}
|
||||
])
|
||||
|
||||
|
|
@ -339,31 +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('quickrecovery')
|
||||
console.log("🚀 ~ x ~ res: ", res);
|
||||
const res = await api.getPageData('emergency')
|
||||
const data = JSON.parse(res.data)
|
||||
console.log("🚀 ~ getPageData ~ data: ", 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(() => {
|
||||
|
|
|
|||
Loading…
Reference in New Issue