|
@ -12,12 +12,14 @@ |
|
|
新增 |
|
|
新增 |
|
|
</ButtonGradient> |
|
|
</ButtonGradient> |
|
|
<ButtonGradient @click="onExport"> |
|
|
<ButtonGradient @click="onExport"> |
|
|
|
|
|
|
|
|
<template #prefix> |
|
|
<template #prefix> |
|
|
<img src="./images/export.svg" /> |
|
|
<img src="./images/export.svg" /> |
|
|
</template> |
|
|
</template> |
|
|
导出 |
|
|
导出 |
|
|
</ButtonGradient> |
|
|
</ButtonGradient> |
|
|
<ButtonGradient @click="onRefresh"> |
|
|
<ButtonGradient @click="onRefresh"> |
|
|
|
|
|
|
|
|
<template #prefix> |
|
|
<template #prefix> |
|
|
<img src="./images/refresh.svg" /> |
|
|
<img src="./images/refresh.svg" /> |
|
|
</template> |
|
|
</template> |
|
@ -36,9 +38,9 @@ |
|
|
|
|
|
|
|
|
<!-- 分页 --> |
|
|
<!-- 分页 --> |
|
|
<div class="footer"> |
|
|
<div class="footer"> |
|
|
<Pagination @current-change="getData" @size-change="onSizeChange" width="'100%'" :page-sizes="[12, 16, 20, 30, 50]" |
|
|
<Pagination @current-change="getData" @size-change="onSizeChange" width="'100%'" |
|
|
:page-size="searchData.pageSize" :current-page.sync="searchData.pageNum" layout="total, sizes, prev, pager, next" |
|
|
:page-sizes="[12, 16, 20, 30, 50]" :page-size="searchData.pageSize" :current-page.sync="searchData.pageNum" |
|
|
:total="total"> |
|
|
layout="total, sizes, prev, pager, next" :total="total"> |
|
|
</Pagination> |
|
|
</Pagination> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
@ -103,12 +105,67 @@ const warningTypeMapping = { |
|
|
4: '停车', |
|
|
4: '停车', |
|
|
5: '倒车/逆行', |
|
|
5: '倒车/逆行', |
|
|
6: '烟火', |
|
|
6: '烟火', |
|
|
7: '撒落物8异常天气', |
|
|
7: '撒落物', |
|
|
|
|
|
8: '异常天气', |
|
|
9: '护栏碰撞', |
|
|
9: '护栏碰撞', |
|
|
10: '交通事故', |
|
|
10: '交通事故', |
|
|
11: '车辆故障', |
|
|
11: '车辆故障', |
|
|
99: '其它', |
|
|
99: '其它', |
|
|
} |
|
|
} |
|
|
|
|
|
const warningSubclassTypeMapping = { |
|
|
|
|
|
1: { |
|
|
|
|
|
1: '拥堵', |
|
|
|
|
|
2: '缓行', |
|
|
|
|
|
}, |
|
|
|
|
|
2: { |
|
|
|
|
|
1: '普通行人', |
|
|
|
|
|
2: '工作人员', |
|
|
|
|
|
}, |
|
|
|
|
|
3: { |
|
|
|
|
|
1: '摩托车', |
|
|
|
|
|
2: '自行车', |
|
|
|
|
|
}, |
|
|
|
|
|
4: { |
|
|
|
|
|
1: '非工程车', |
|
|
|
|
|
2: '工程车', |
|
|
|
|
|
3: '主路有车', |
|
|
|
|
|
4: '匝道有车', |
|
|
|
|
|
5: '车辆故障', |
|
|
|
|
|
6: '交通事故', |
|
|
|
|
|
7: '应急车道被占用', |
|
|
|
|
|
8: '车离开应急车道', |
|
|
|
|
|
9: '其他', |
|
|
|
|
|
}, |
|
|
|
|
|
5: { |
|
|
|
|
|
1: '倒车/逆行', |
|
|
|
|
|
}, |
|
|
|
|
|
6: { |
|
|
|
|
|
1: '烟火', |
|
|
|
|
|
}, |
|
|
|
|
|
7: { |
|
|
|
|
|
1: '撒落物', |
|
|
|
|
|
}, |
|
|
|
|
|
8: { |
|
|
|
|
|
1: '雨', |
|
|
|
|
|
2: '冰雹', |
|
|
|
|
|
3: '风', |
|
|
|
|
|
4: '雾', |
|
|
|
|
|
5: '高温', |
|
|
|
|
|
6: '积水', |
|
|
|
|
|
7: '路面湿滑', |
|
|
|
|
|
8: '路面结冰', |
|
|
|
|
|
9: '道路能见度低', |
|
|
|
|
|
10: '道路团雾', |
|
|
|
|
|
}, |
|
|
|
|
|
9: { |
|
|
|
|
|
1: '只碰撞不倾斜', |
|
|
|
|
|
2: '只倾斜无碰撞', |
|
|
|
|
|
3: '碰撞后倾斜', |
|
|
|
|
|
}, |
|
|
|
|
|
10: {}, |
|
|
|
|
|
11: {}, |
|
|
|
|
|
99: {}, |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
export default { |
|
|
export default { |
|
|
name: "RoadNetworkMonitoring2", |
|
|
name: "RoadNetworkMonitoring2", |
|
@ -192,6 +249,13 @@ export default { |
|
|
result.rows.forEach(it => { |
|
|
result.rows.forEach(it => { |
|
|
it.stringEventSource = it?.warningSource ? warningSourceMapping[it?.warningSource] : ''; |
|
|
it.stringEventSource = it?.warningSource ? warningSourceMapping[it?.warningSource] : ''; |
|
|
it.stringDirection = gzDirectionMapping[it.direction] || it.direction; |
|
|
it.stringDirection = gzDirectionMapping[it.direction] || it.direction; |
|
|
|
|
|
|
|
|
|
|
|
let strSub = ''; |
|
|
|
|
|
if (it.warningSource && warningSubclassTypeMapping[it.warningType][it.warningSource]) { |
|
|
|
|
|
strSub = `(${warningSubclassTypeMapping[it.warningType][it.warningSource]})` |
|
|
|
|
|
} |
|
|
|
|
|
it.stringEventType = warningTypeMapping[it.warningType] + strSub; |
|
|
|
|
|
|
|
|
it.startTime = it.warningTime; |
|
|
it.startTime = it.warningTime; |
|
|
|
|
|
|
|
|
if (it.otherConfig) { |
|
|
if (it.otherConfig) { |
|
@ -214,6 +278,8 @@ export default { |
|
|
if (result.code != 200) return Message.error(result?.msg); |
|
|
if (result.code != 200) return Message.error(result?.msg); |
|
|
result.rows.forEach(it => { |
|
|
result.rows.forEach(it => { |
|
|
it.stringDirection = gzDirectionMapping[it.direction] || it.direction; |
|
|
it.stringDirection = gzDirectionMapping[it.direction] || it.direction; |
|
|
|
|
|
it.startTime = it?.occurrenceTime || ''; |
|
|
|
|
|
it.stringEventType = it.stringEventType + (it.eventSubclass ? `(${it.eventSubclass})` : ''); |
|
|
// if (it.otherConfig) { |
|
|
// if (it.otherConfig) { |
|
|
// let otherConfig = JSON.parse(it.otherConfig); |
|
|
// let otherConfig = JSON.parse(it.otherConfig); |
|
|
// it.pictures = otherConfig.pictures || []; |
|
|
// it.pictures = otherConfig.pictures || []; |
|
@ -223,33 +289,6 @@ export default { |
|
|
this.total = result.total; |
|
|
this.total = result.total; |
|
|
}); |
|
|
}); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// request({ |
|
|
|
|
|
// url: `/dc/system/event/count`, |
|
|
|
|
|
// method: "get", |
|
|
|
|
|
// }).then((result) => { |
|
|
|
|
|
// if (result.code != 200) return Message.error(result?.msg); |
|
|
|
|
|
|
|
|
|
|
|
// this.panels = [ |
|
|
|
|
|
// { |
|
|
|
|
|
// label: `告警事件(${result.warningCount})`, |
|
|
|
|
|
// key: "-1", |
|
|
|
|
|
// }, |
|
|
|
|
|
// { |
|
|
|
|
|
// label: `待确认事件(${result.state0Count})`, |
|
|
|
|
|
// key: "0", |
|
|
|
|
|
// }, |
|
|
|
|
|
// { |
|
|
|
|
|
// label: `处置中事件(${result.state1Count})`, |
|
|
|
|
|
// key: "1", |
|
|
|
|
|
// }, |
|
|
|
|
|
// { |
|
|
|
|
|
// label: `已处置事件(${result.state2Count})`, |
|
|
|
|
|
// key: "2", |
|
|
|
|
|
// }, |
|
|
|
|
|
// ]; |
|
|
|
|
|
// }); |
|
|
|
|
|
}, |
|
|
}, |
|
|
onRefresh() { |
|
|
onRefresh() { |
|
|
this.data = []; |
|
|
this.data = []; |
|
@ -305,13 +344,23 @@ export default { |
|
|
let data = result.data; |
|
|
let data = result.data; |
|
|
|
|
|
|
|
|
data.stringEventSource = data?.warningSource ? warningSourceMapping[data.warningSource] : ''; |
|
|
data.stringEventSource = data?.warningSource ? warningSourceMapping[data.warningSource] : ''; |
|
|
|
|
|
data.nickName = data.userName; |
|
|
data.direction = gzDirectionMapping[data.direction] || data.direction; |
|
|
data.direction = gzDirectionMapping[data.direction] || data.direction; |
|
|
data.startTime = data.warningTime; |
|
|
data.startTime = data.warningTime; |
|
|
data.stringEventState = warningStateMapping[data.warningState]; |
|
|
data.stringEventState = warningStateMapping[data.warningState]; |
|
|
data.stringEventType = warningTypeMapping[data.warningType]; |
|
|
data.stringEventType = warningTypeMapping[data.warningType]; |
|
|
|
|
|
|
|
|
|
|
|
data.videoList = []; |
|
|
if (data.otherConfig) { |
|
|
if (data.otherConfig) { |
|
|
let otherConfig = JSON.parse(data.otherConfig); |
|
|
let otherConfig = JSON.parse(data.otherConfig); |
|
|
|
|
|
|
|
|
|
|
|
data.waterFilmThickness = otherConfig.waterFilmThickness; |
|
|
|
|
|
data.windSpeed = otherConfig.windSpeed; |
|
|
|
|
|
data.visibility = otherConfig.visibility; |
|
|
|
|
|
|
|
|
data.pictures = otherConfig.pictures || []; |
|
|
data.pictures = otherConfig.pictures || []; |
|
|
|
|
|
// data.videoList = otherConfig.videoList || [] |
|
|
|
|
|
data.videoList = otherConfig.videoList || ['https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/mp4/xgplayer-demo-480p.mp4'] |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
this.detailDialogFormData = data; |
|
|
this.detailDialogFormData = data; |
|
@ -328,6 +377,14 @@ export default { |
|
|
let data = result.data; |
|
|
let data = result.data; |
|
|
data.stringDirection = gzDirectionMapping[data.direction] || data.direction; |
|
|
data.stringDirection = gzDirectionMapping[data.direction] || data.direction; |
|
|
|
|
|
|
|
|
|
|
|
data.videoList = ['https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/mp4/xgplayer-demo-480p.mp4']; |
|
|
|
|
|
if (data.otherConfig) { |
|
|
|
|
|
let otherConfig = JSON.parse(data.otherConfig); |
|
|
|
|
|
// data.pictures = otherConfig.pictures || []; |
|
|
|
|
|
data.videoList = otherConfig.videoList || [] |
|
|
|
|
|
//data.videoList = otherConfig.videoList || ['https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/mp4/xgplayer-demo-480p.mp4'] |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
this.detailDialogFormData = data; |
|
|
this.detailDialogFormData = data; |
|
|
|
|
|
|
|
|
this.eventDetailDialogVisible = true; |
|
|
this.eventDetailDialogVisible = true; |
|
@ -358,7 +415,8 @@ export default { |
|
|
warningSource: data?.warningSource || '', |
|
|
warningSource: data?.warningSource || '', |
|
|
direction: data.direction, |
|
|
direction: data.direction, |
|
|
startTime: daterange && daterange.length > 0 ? daterange[0] : "", |
|
|
startTime: daterange && daterange.length > 0 ? daterange[0] : "", |
|
|
endTime: daterange && daterange.length > 0 ? daterange[1] : "", |
|
|
endTime: this.activeName != "-1" && daterange && daterange.length > 0 ? daterange[1] : "", |
|
|
|
|
|
completeTime: this.activeName == "-1" && daterange && daterange.length > 0 ? daterange[1] : "", |
|
|
stakeMark: stakeMark, |
|
|
stakeMark: stakeMark, |
|
|
endStakeMark: endStakeMark, |
|
|
endStakeMark: endStakeMark, |
|
|
}; |
|
|
}; |
|
|