Merge branch 'main' of http://172.16.1.12/chengdandan/intelligentTransportation
This commit is contained in:
commit
09ddbfb0a2
|
|
@ -18,13 +18,14 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="info-row">
|
<div class="info-row">
|
||||||
<span class="info-label">事故严重性:</span>
|
<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>
|
||||||
<div class="info-row">
|
<div class="info-row">
|
||||||
<span class="info-label">事故影响:</span>
|
<span class="info-label">事故影响:</span>
|
||||||
<span class="info-value impact"><span class="highlight">{{ currentEvent.impactLanes }}车道</span>封闭,影响半径<span
|
<!-- <span class="info-value impact"><span class="highlight">{{ currentEvent.impactLanes }}</span>封闭,影响半径<span-->
|
||||||
class="highlight">{{ currentEvent.impactRadius }}</span>,预计延误<span
|
<!-- class="highlight">{{ currentEvent.impactRadius }}</span>,预计延误<span-->
|
||||||
class="highlight">{{ currentEvent.delayTime }}</span></span>
|
<!-- class="highlight">{{ currentEvent.delayTime }}</span></span>-->
|
||||||
|
<span class="info-value impact"><span class="highlight">{{ currentEvent.impact }}</span></span>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<!-- 监控视频区域 -->
|
<!-- 监控视频区域 -->
|
||||||
|
|
@ -266,12 +267,12 @@ import api from "@/api/index.js";
|
||||||
|
|
||||||
// 当前事件信息
|
// 当前事件信息
|
||||||
const currentEvent = ref({
|
const currentEvent = ref({
|
||||||
id: 'EVT-20231027-001',
|
id: '',
|
||||||
level: '中等',
|
level: '',
|
||||||
levelClass: 'medium',
|
impactLanes: '2车道',
|
||||||
impactLanes: '2',
|
|
||||||
impactRadius: '3km',
|
impactRadius: '3km',
|
||||||
delayTime: '20分钟',
|
delayTime: '20分钟',
|
||||||
|
impact: '',
|
||||||
location: '人民路口',
|
location: '人民路口',
|
||||||
time: '10:15'
|
time: '10:15'
|
||||||
})
|
})
|
||||||
|
|
@ -283,49 +284,28 @@ const disposalProcess = ref([
|
||||||
title: '事件研判与处置触发',
|
title: '事件研判与处置触发',
|
||||||
status: 'done',
|
status: 'done',
|
||||||
statusText: '已完成',
|
statusText: '已完成',
|
||||||
content: [
|
content: []
|
||||||
{label: '接入来源', value: '视频AI自动检测'},
|
|
||||||
{label: '研判耗时', value: '3分钟'},
|
|
||||||
{
|
|
||||||
label: '影响范围',
|
|
||||||
value: '<span class="text-danger">3条</span>路段,<span class="text-danger">1.5公里</span>拥堵'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 2,
|
id: 2,
|
||||||
title: '智能方案生成与推荐',
|
title: '智能方案生成与推荐',
|
||||||
status: 'done',
|
status: 'done',
|
||||||
statusText: '已完成',
|
statusText: '已完成',
|
||||||
content: [
|
content: []
|
||||||
{label: 'AI方案', value: '方案A(推荐指数95%)'},
|
|
||||||
{label: '关键措施', value: '远程信控,派遣交警,发布诱导'},
|
|
||||||
{label: '生成耗时', value: '10秒'}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 3,
|
id: 3,
|
||||||
title: '处置措施执行与跟踪',
|
title: '处置措施执行与跟踪',
|
||||||
status: 'processing',
|
status: 'processing',
|
||||||
statusText: '执行中',
|
statusText: '执行中',
|
||||||
content: [
|
content: []
|
||||||
{label: '当前动作', value: '现场清障中(推荐指数95%)'},
|
|
||||||
{
|
|
||||||
label: '资源到位',
|
|
||||||
value: '交警(已到)、<span class="text-success">救护车(途中)</span>、<span class="text-danger">拖车(已调度)</span>'
|
|
||||||
},
|
|
||||||
{label: '交通管制', value: '主路封闭,辅路缓行'}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
id: 4,
|
id: 4,
|
||||||
title: '动态调整与协同',
|
title: '动态调整与协同',
|
||||||
status: 'pending',
|
status: 'pending',
|
||||||
statusText: '待处理',
|
statusText: '待处理',
|
||||||
content: [
|
content: []
|
||||||
{label: '协同部门', value: '交管,卫健,消防'},
|
|
||||||
{label: '最新指令', value: '11:05 解除部分外围封锁'}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
])
|
])
|
||||||
|
|
||||||
|
|
@ -339,31 +319,85 @@ const processSegments = Array.from({length: 60}, (_, index) => index < 45)
|
||||||
|
|
||||||
// 应急救援监测数据
|
// 应急救援监测数据
|
||||||
const rescueMonitoring = ref({
|
const rescueMonitoring = ref({
|
||||||
avgSpeed: 45,
|
avgSpeed: '',
|
||||||
avgTime: 6,
|
avgTime: '',
|
||||||
efficiency: 35
|
efficiency: ''
|
||||||
})
|
})
|
||||||
|
|
||||||
// 区域协同管控概况
|
// 区域协同管控概况
|
||||||
const controlOverview = ref({
|
const controlOverview = ref({
|
||||||
intersectionCount: 6,
|
intersectionCount: '',
|
||||||
signalCount: 20,
|
signalCount: '',
|
||||||
laneControl: 6,
|
laneControl: '',
|
||||||
busLines: 25,
|
busLines: '',
|
||||||
vmsStatus: 'VMS、移动应用已推送'
|
vmsStatus: ''
|
||||||
})
|
})
|
||||||
|
|
||||||
// 效果评估与态势研判
|
// 效果评估与态势研判
|
||||||
const effectEvaluation = ref({
|
const effectEvaluation = ref({
|
||||||
recoveryTime: 25,
|
recoveryTime: '',
|
||||||
avgDelay: 15,
|
avgDelay: '',
|
||||||
emissionReduction: 10,
|
emissionReduction: '',
|
||||||
recoveryIndex: 95
|
recoveryIndex: ''
|
||||||
})
|
})
|
||||||
|
|
||||||
const getPageData = async () => {
|
const getPageData = async () => {
|
||||||
const res = await api.getPageData('quickrecovery')
|
const res = await api.getPageData('emergency')
|
||||||
console.log("🚀 ~ x ~ res: ", res);
|
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(() => {
|
onMounted(() => {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue