Browse Source

合并

wangqin
hui 11 months ago
parent
commit
7576140e98
  1. 35
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/Broadcast/index.vue
  2. 3
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/DrivingGuidance/index.vue
  3. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/FatigueWakesUp/index.vue
  4. 106
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/PerceiveEvent/index.vue
  5. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/SmartDevice/index.vue
  6. 27
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/FocusedMonitoring/index.vue
  7. 1
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/index.vue
  8. 4
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/index.vue
  9. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/emergencyProcessManagement/commonPhrases/index.vue
  10. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/emergencyProcessManagement/disposalProcess/index.vue
  11. 32
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/EventDetailDialog/index.vue
  12. 432
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/plan/addAndEditDialog/index.vue
  13. 60
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/plan/formTable/index.vue
  14. 48
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/plan/index.vue
  15. 18
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventSource/index.vue
  16. 685
      ruoyi-ui/src/views/JiHeExpressway/utils/enum.js

35
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/Broadcast/index.vue

@ -6,17 +6,6 @@
<ElTabs v-model="activeName" @tab-click="handleClickTabs" class="tabs">
<ElTabPane label="基本信息" name="first">
<Descriptions :list="list" :data="data" style="gap: 18px">
<template #content-deviceState>
<!-- <img
:src="
require(`./images/${
data.deviceState == 1 ? 'online' : 'offline'
}.jpg`)
"
width="18"
/> -->
{{ DeviceTypeEnum[data.deviceState] || "-" }}
</template>
</Descriptions>
</ElTabPane>
<ElTabPane label="设备参数" name="second">设备参数</ElTabPane>
@ -28,8 +17,13 @@
</div>
</div>
<BroadcastReleases v-model="releaseVisible" :deviceId="dialogData.iotDeviceId" :pileNum="dialogData.stakeMark"
:otherConfig="dialogData.otherConfig" :currentId="dialogData.id" />
<BroadcastReleases
v-model="releaseVisible"
:deviceId="dialogData.iotDeviceId"
:pileNum="dialogData.stakeMark"
:otherConfig="dialogData.otherConfig"
:currentId="dialogData.id"
/>
</Dialog>
</template>
@ -39,6 +33,7 @@ import Button from "@screen/components/Buttons/Button.vue";
import Descriptions from "@screen/components/Descriptions.vue";
import BroadcastReleases from "./components/BroadcastReleases.vue";
import Video from "@screen/components/Video";
import { DeviceTypeEnum } from "@screen/utils/enum.js";
import {
@ -91,13 +86,13 @@ export default {
key: "direction",
enum: "CameraDirectionEnum",
},
{
label: "所属机构",
key: "organizationName",
},
// {
// label: "",
// key: "organizationName",
// },
{
label: "设备厂商",
key: "brand",
key: "manufacturer",
},
{
label: "设备状态",
@ -128,7 +123,7 @@ export default {
if (roadInfo) this.data.roadName = roadInfo.roadName;
},
methods: {
handleClickTabs() { },
handleClickTabs() {},
},
};
</script>
@ -168,7 +163,7 @@ export default {
align-items: center;
justify-content: end;
>div {
> div {
font-size: 16px;
padding: 6px 12px;
}

3
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/DrivingGuidance/index.vue

@ -91,7 +91,7 @@ export default {
},
{
label: "设备厂商",
key: "brand",
key: "manufacturer",
},
{
label: "工作模式",
@ -151,6 +151,7 @@ export default {
if (roadInfo) this.data.roadName = roadInfo.roadName;
},
methods: {
handleClickTabs() {},
requestURL(functionId = 52, options = {}) {
return new Promise((resolve, reject) => {
request

2
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/FatigueWakesUp/index.vue

@ -86,7 +86,7 @@ export default {
},
{
label: "设备厂商",
key: "brand",
key: "manufacturer",
},
],
};

106
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/PerceiveEvent/index.vue

@ -3,9 +3,9 @@
<div class="PerceiveEvent">
<!-- <Video class="item-video" /> -->
<div class="video-pic">
<Video style="height: 100%;flex:1" :showHeader="false" :url="dialogData.formData.videoList[0]"
<Video style="height: 100%; flex: 1" :showHeader="false" :url="dialogData.formData.videoList[0]"
videoType="mp4" />
<Carousel style="flex: 1;height: 100%;" :pictures="dialogData.formData.pictures" />
<Carousel style="flex: 1; height: 100%" :pictures="dialogData.formData.pictures" />
</div>
<LineChart class="chart" />
<Form class="form" v-loading="loading" v-model="data" ref="FormConfigRef" :formList="formList" column="1" />
@ -13,28 +13,27 @@
<template #footer>
<Button>误报</Button>
<Button style="background-color: rgba(0, 179, 204, 0.3);" @click.native="obverseVisible = false">取消</Button>
<Button style="background-color: rgba(0, 179, 204, 0.3)" @click.native="obverseVisible = false">取消</Button>
<Button @click.native="updateEvent" :loading="btnLoading">确定</Button>
</template>
</Dialog>
</template>
<script>
import Dialog from "@screen/components/Dialog/index.vue";
import Button from "@screen/components/Buttons/Button.vue"
import Descriptions from '@screen/components/Descriptions.vue';
import LineChart from './components/LineChart/index.vue';
import Button from "@screen/components/Buttons/Button.vue";
import Descriptions from "@screen/components/Descriptions.vue";
import LineChart from "./components/LineChart/index.vue";
import Video from "@screen/components/Video";
import Form from '@screen/components/FormConfig';
import Form from "@screen/components/FormConfig";
import request from "@/utils/request";
import { Message } from "element-ui";
import moment from "moment";
import Carousel from "@screen/pages/control/event/event/EventDetailDialog/Carousel"
import { WarningTypeList, WarningSubclassList } from "@screen/utils/enum.js"
import Carousel from "@screen/pages/control/event/event/EventDetailDialog/Carousel";
import { WarningTypeList, WarningSubclassList, LaneOccupancyList, DirectionTypes } from "@screen/utils/enum.js";
// import { getRoadInfoByStakeMark, getProduct } from "@screen/pages/Home/components/RoadAndEvents/utils/httpList.js"
import { dialogDelayVisible } from "./../mixin"
import { LaneOccupancyList, DirectionTypes } from "@screen/utils/enum.js"
import { dialogDelayVisible } from "./../mixin";
let vehicleTypeList = [];
@ -61,7 +60,7 @@ function padZero(num) {
//
export default {
name: 'PerceiveEvent',
name: "PerceiveEvent",
mixins: [dialogDelayVisible],
components: {
Dialog,
@ -70,13 +69,13 @@ export default {
LineChart,
Video,
Carousel,
Form
Form,
},
data() {
return {
interval: null,
loading: true,
activeName: 'first',
activeName: "first",
deviceControlVisible: false,
btnLoading: false,
data: {
@ -103,13 +102,13 @@ export default {
label: "路段方向:",
key: "direction",
type: "text",
isAlone: true
isAlone: true,
},
{
label: "事件来源:",
key: "warningSource",
type: "text",
enum: "InfoWarningSource"
enum: "InfoWarningSource",
},
{
label: "事件类型:",
@ -117,21 +116,22 @@ export default {
type: "select",
options: {
disabled: true,
options: WarningTypeList
options: WarningTypeList,
},
ons: {
change: (value, { data }) => {
this.formList[4].options.options = WarningSubclassList[value] || [];
this.formList[5].options.options =
WarningSubclassList[value] || [];
data.warningSubclass = null;
}
}
},
},
},
{
label: "细分类型:",
key: "warningSubclass",
type: "select",
options: {
options: []
options: [],
},
},
// {
@ -150,7 +150,7 @@ export default {
maxlength: 100,
autosize: { minRows: 6, maxRows: 6 },
showWordLimit: true,
}
},
},
{
label: "影响车道:",
@ -159,7 +159,7 @@ export default {
options: {
// activeColor: "linear-gradient(180deg, #37E7FF 0%, #009BCC 100%)",
options: LaneOccupancyList,
gap: "12px"
gap: "12px",
},
},
{
@ -172,15 +172,14 @@ export default {
// key: "weather",
// type: "text",
// },
]
}
],
};
},
async created() {
this.getDetails();
this.getVehicleTypeList();
},
async mounted() {
},
async mounted() { },
beforeDestroy() {
clearInterval(this.interval);
},
@ -189,21 +188,21 @@ export default {
if (vehicleTypeList.length) return;
request({
url: `/system/dict/data/type/${'sys_vehicle_type'}`,
url: `/system/dict/data/type/${"sys_vehicle_type"}`,
method: "GET",
params: {}
params: {},
})
.then(({ data, code }) => {
if (code != 200) return Message.error("详情获取失败");
vehicleTypeList = this.formList[5].options.options = data.map(item => ({
key: item.dictValue,
label: item.dictLabel
}))
vehicleTypeList = this.formList[5].options.options = data.map(
(item) => ({
key: item.dictValue,
label: item.dictLabel,
})
);
})
.catch((err) => {
});
.catch((err) => { });
},
convertSecToHHmmss(sec) {
let currentTime = moment.duration(sec, "seconds");
@ -218,8 +217,8 @@ export default {
url: `/perceivedEvents/warning/getWarningById`,
method: "POST",
data: {
id: this.dialogData.id
}
id: this.dialogData.id,
},
})
.then(({ data, code }) => {
if (code != 200) return Message.error("详情获取失败");
@ -254,23 +253,30 @@ export default {
// "latitude": "36.291145"
// };
data.duration = this.convertSecToHHmmss(data.duration);
this.data = { ...data, roadName: null, lane: data.lane?.split(",") || [] };
this.data = {
...data,
roadName: null,
lane: data.lane?.split(",") || [],
};
this.formList[4].options.options = WarningSubclassList[data.warningType] || [];
this.formList[5].options.options =
WarningSubclassList[data.warningType] || [];
setTimeout(() => {
this.$refs.FormConfigRef.reset(true);
});
this.data.direction = DirectionTypes[this.data.direction];
this.data.duration = getDuration(this.data.warningTime);
this.interval = setInterval(() => { this.data.duration = getDuration(this.data.warningTime); }, 1000)
this.interval = setInterval(() => {
this.data.duration = getDuration(this.data.warningTime);
}, 1000);
})
.catch((e) => {
Message.error("详情获取失败" + e);
})
.finally(() => {
this.loading = false;
})
});
},
updateEvent() {
this.btnLoading = true;
@ -293,8 +299,8 @@ export default {
warningSubclass: this.data.warningSubclass,
// vehicleType: this.data.vehicleType,
remark: this.data.remark,
lane: this.data.lane.join(",")
}
lane: this.data.lane.join(","),
},
})
.then(() => {
Message.success("提交成功");
@ -304,13 +310,13 @@ export default {
})
.finally(() => {
this.btnLoading = false;
})
}
}
}
});
},
},
};
</script>
<style lang='scss' scoped>
<style lang="scss" scoped>
.PerceiveEvent {
width: 870px;
color: #fff;

2
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/SmartDevice/index.vue

@ -104,7 +104,7 @@ export default {
},
{
label: "设备厂商",
key: "brand",
key: "manufacturer",
},
],
};

27
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/FocusedMonitoring/index.vue

@ -25,12 +25,12 @@
<div>施工路段</div>
</div>
<div class="monitor-item keep-ratio">
<span class="fault">4</span>
<span class="fault">{{ weatherForecast }}</span>
<span class="unit"></span>
<div>气象预警</div>
</div>
<div class="monitor-item keep-ratio">
<span class="abnormal">5</span>
<span class="abnormal">{{ abnormalDeviceNum }}</span>
<div>异常设备</div>
</div>
<div class="monitor-item keep-ratio">
@ -59,6 +59,8 @@ export default {
trafficIncidents: [0, 0],
constructionSection: 0,
perceiveEvent: 0,
abnormalDeviceNum: 0,
weatherForecast: 0
}
},
created() {
@ -74,8 +76,18 @@ export default {
method: "post",
data: {}
}),
request({
url: `/business/device/abnormalDevice`,
method: "get",
data: {}
}),
request({
url: `/weatherForecast/queryTheNumberOfMeteorologicalWarning`,
method: "post",
data: {}
}),
])
.then(([trafficIncidents, perceiveEvent]) => {
.then(([trafficIncidents, perceiveEvent, abnormalDeviceNum, weatherForecast]) => {
if (trafficIncidents.status === 'fulfilled' && trafficIncidents.value.code == 200) {
const data = trafficIncidents.value.data;
@ -92,7 +104,14 @@ export default {
this.perceiveEvent = data.number || 0;
}
if (abnormalDeviceNum.status === 'fulfilled' && abnormalDeviceNum.value.code == 200) {
const data = abnormalDeviceNum.value.data;
this.abnormalDeviceNum = data || 0;
}
if (weatherForecast.status === 'fulfilled' && weatherForecast.value.code == 200) {
const data = weatherForecast.value.data;
this.weatherForecast = data || 0;
}
})
}
}

1
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/index.vue

@ -242,6 +242,7 @@ export default {
// mapIns.clearMap();
mapIns.getLayers().forEach((layer, index) => index > this.minLayers && mapIns.remove(layer))
window.infoWindow.close();
},
//

4
ruoyi-ui/src/views/JiHeExpressway/pages/Home/index.vue

@ -20,8 +20,8 @@
<HomeFilter class="item" />
<HomeFrame class="item" />
<HomeVector class="item" />
<HomeVectorControl class="item" />
<HomeFrameControl class="item" />
<!-- <HomeVectorControl class="item" /> -->
<!-- <HomeFrameControl class="item" /> -->
</div>
<ConditionStatistics class="right card-menu" />
</div>

2
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/emergencyProcessManagement/commonPhrases/index.vue

@ -4,7 +4,7 @@
<div class="header">
<el-form ref="form" label-width="120px">
<el-form-item label="事件类型">
<el-select v-model="eventType" placeholder="请选择" style="width: 220px">
<el-select v-model="eventType" placeholder="请选择" style="width: 220px" disabled>
<el-option v-for="item in options" :key="item.value" :label="item.label" :value="item.value">
</el-option>
</el-select>

2
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/emergencyProcessManagement/disposalProcess/index.vue

@ -3,7 +3,7 @@
<div class="header">
<el-form ref="form" label-width="120px">
<el-form-item label="事件类型">
<el-select v-model="eventType" placeholder="请选择" style="width: 220px">
<el-select v-model="eventType" placeholder="请选择" style="width: 220px" disabled>
<el-option v-for="item in eventTypeOptions" :key="item.value" :label="item.label"
:value="item.value">
</el-option>

32
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/EventDetailDialog/index.vue

@ -171,16 +171,28 @@ export default {
// this.modelVisible = false;
// this.$emit('queryData', true);
// return;
request({
url: `/business/warning/delete`,
method: "post",
data: { id: this.formData.id }
}).then(result => {
if (result.code == 200) Message.success('成功!');
else Message.error(result?.msg);
this.modelVisible = false;
this.$emit('queryData', true);
})
if (this.activeName == '-1') {
request({
url: `/business/warning/delete`,
method: 'post',
data: { id: this.formData.id }
}).then(result => {
if (result.code == 200) Message.success('成功!');
else Message.error(result?.msg);
this.modelVisible = false;
this.$emit('queryData', true);
})
} else {
request({
url: `dc/system/event/${this.formData.eventType}/${this.formData.id}`,
method: 'delete',
}).then(result => {
if (result.code == 200) Message.success('成功!');
else Message.error(result?.msg);
this.modelVisible = false;
this.$emit('queryData', true);
})
}
})
}

432
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/plan/addAndEditDialog/index.vue

@ -68,361 +68,12 @@ import Button from '@screen/components/Buttons/Button.vue';
import request from '@/utils/request';
import { Message } from "element-ui";
import { throttle } from "lodash"
import { controlModelMap, gzztMap } from "@screen/utils/enum.js";
const optionsMap = {
1: {
1: [
{
value: "1-1",
label: "追尾",
},
{
value: "1-2",
label: "侧翻",
},
{
value: "1-3",
label: "撞护栏",
},
{
value: "1-4",
label: "自然",
},
{
value: "1-5",
label: "其他事故",
},
],
2: [
{
value: 1,
label: '高速主线'
},
{
value: 2,
label: '服务区'
},
{
value: 3,
label: '立交桥'
},
{
value: 4,
label: '收费站'
}
],
3: [
{
value: 1,
label: '主线关闭'
},
{
value: 2,
label: '主线限行'
},
{
value: 6,
label: '收费站关闭'
},
{
value: 7,
label: '收费站限行'
},
{
value: 10,
label: '匝道立交关闭'
},
{
value: 12,
label: '匝道立交限行'
},
{
value: 14,
label: '服务区关闭'
}
],
4: [
{
value: '4-1',
label: '道路拥堵'
},
{
value: '4-2',
label: '立交拥堵'
},
{
value: '4-3',
label: '收费站拥堵'
},
{
value: '4-4',
label: '收费站服务区拥堵'
}
],
5: [
{
value: '5-1',
label: '行人'
},
{
value: '5-2',
label: '非机动车'
},
{
value: '5-3',
label: '摩托车'
},
{
value: '5-4',
label: '其他'
}
],
6: [
{
value: '6-1',
label: '烟雾'
},
{
value: '6-2',
label: '倒伏树木'
},
{
value: '6-3',
label: '撒落物'
},
{
value: '6-4',
label: '动物'
},
{
value: '6-5',
label: '其他'
}
],
7: [
{
value: 1,
label: '道路养护施工'
},
{
value: 2,
label: '收费站养护施工'
},
{
value: 3,
label: '服务区养护施工'
},
{
value: 4,
label: '枢纽立交匝道养护施工'
},
{
value: 5,
label: '地方道路养护施工'
},
{
value: 6,
label: '道路工程建设施工'
},
{
value: 7,
label: '收费站工程建设施工'
},
{
value: 8,
label: '服务区工程建设施工'
},
{
value: 9,
label: '枢纽立交匝道工程建设施工'
},
{
value: 10,
label: '地方道路工程建设施工'
}
],
8: [
{
value: '8-1',
label: '封闭、暂停营业'
},
{
value: '8-2',
label: '重要设施停用'
},
{
value: '8-3',
label: '服务区其他异常'
},
],
9: [
{
value: 1,
label: '摄像机'
},
{
value: 2,
label: '护栏'
},
{
value: 3,
label: '隔离栅'
},
{
value: 4,
label: '情报板'
},
{
value: 5,
label: '防炫板'
},
{
value: 6,
label: '其他'
}
],
10: [{
value: '10-1',
label: '雨'
},
{
value: '10-2',
label: '雪'
},
{
value: '10-3',
label: '雾'
},
{
value: '10-4',
label: '大风'
},
{
value: '10-5',
label: '低温寒潮'
}, {
value: '10-6',
label: '路面积雪'
},
{
value: '10-7',
label: '路面结冰'
},
{
value: '10-8',
label: '路面积水'
},
{
value: '10-9',
label: '其他'
}],
11: [{
value: 1,
label: '其他事件'
}]
},
2: {
1: [{
value: 1,
label: '雾'
}],
2: [],
3: [],
4: [],
5: [],
6: [],
7: [],
}
};
const typeMap = {
1: [{
value: 1,
label: '交通事故'
},
{
value: 2,
label: '车辆故障'
},
{
value: 3,
label: '交通管制'
},
{
value: 4,
label: '交通拥堵'
},
{
value: 5,
label: '非法上路'
},
{
value: 6,
label: '路障清除'
},
{
value: 7,
label: '施工建设'
},
{
value: 8,
label: '服务区异常'
},
{
value: 9,
label: '设施设备隐患'
},
{
value: 10,
label: '异常天气'
},
{
value: 11,
label: '其他事件'
}],
2: [{
value: 1,
label: '异常天气'
},
{
value: 2,
label: '拥堵'
},
{
value: 3,
label: '非机动车'
},
{
value: 4,
label: '行人'
},
{
value: 5,
label: '烟火'
},
{
value: 6,
label: '抛洒物'
},
{
value: 7,
label: '逆行'
},
]
}
import { controlModelMap, gzztMap, gzmsMap, eventSubClassMap, trafficKV, perceptionKV } from "@screen/utils/enum.js";
const gzmsMap = {
"SETMD0": "激光关闭",
"SETMD1": "常亮模式",
"SETMD2": "间隔100ms闪烁模式",
"SETMD3": "间隔200ms闪烁模式",
"SETMD4": "间隔500ms闪烁模式",
"SETMD5": "2次闪烁模式",
"SETMD6": "SOS模式",
"SETMD7": "自定义模式1",
"SETMD8": "自定义模式2",
"SETMD9": "自定义模式3",
}
const typeMap = {
1: trafficKV,
2: perceptionKV,
};
export default {
name: 'addAndEditDialog',
@ -470,72 +121,29 @@ export default {
qbb: ''
}],
deviceData: [],
eventOptions: [
{
value: 1,
label: '交通事故'
},
{
value: 2,
label: '车辆故障'
},
{
value: 3,
label: '交通管制'
},
{
value: 4,
label: '交通拥堵'
},
eventOptions: trafficKV,
mechanismOptions: [
{
value: 5,
label: '非法上路'
value: "1-1",
label: "追尾",
},
{
value: 6,
label: '路障清除'
value: "1-2",
label: "侧翻",
},
{
value: 7,
label: '施工建设'
value: "1-3",
label: "撞护栏",
},
{
value: 8,
label: '服务区异常'
value: "1-4",
label: "自然",
},
{
value: 9,
label: '设施设备隐患'
value: "1-5",
label: "其他事故",
},
{
value: 10,
label: '异常天气'
},
{
value: 11,
label: '其他事件'
}
],
mechanismOptions: [{
value: "1-1",
label: "追尾",
},
{
value: "1-2",
label: "侧翻",
},
{
value: "1-3",
label: "撞护栏",
},
{
value: "1-4",
label: "自然",
},
{
value: "1-5",
label: "其他事故",
}],
rules: {
planName: [
{ required: true, message: '请输入预案名称', trigger: 'blur' },
@ -559,7 +167,7 @@ export default {
this.title = '修改预案';
this.dialogType = 2;
this.eventOptions = typeMap[this.detail.eventCategory];
this.mechanismOptions = optionsMap[this.detail.eventCategory || 1][this.detail.eventType];
this.mechanismOptions = eventSubClassMap[this.detail.eventCategory || 1][this.detail.eventType];
this.initData(this.detail.id);
} else {
this.title = '新增预案';
@ -650,12 +258,12 @@ export default {
return this.deviceData;
},
changeEventType(value = 1) {
this.mechanismOptions = optionsMap[this.formData.eventCategory || 1][value];
this.mechanismOptions = eventSubClassMap[this.formData.eventCategory || 1][value];
},
changeRadio(value = 1) {
this.formData.triggerMechanism = '';
this.eventOptions = typeMap[value];
this.changeEventType();
this.changeEventType(1);
},
handleChange() {

60
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/plan/formTable/index.vue

@ -97,6 +97,7 @@ import Button from '@screen/components/Buttons/Button.vue';
import request from "@/utils/request";
import QbbDialog from "../qbbDialog/index.vue";
import { Message } from 'element-ui'
import { planDeviceOptions } from "@screen/utils/enum.js";
export default {
@ -133,64 +134,7 @@ export default {
// }
// ],
isShowDialog: false,
deviceOptions: [
{
value: 1,
label: '摄像机'
},
{
value: 2,
label: '可变信息标志'
},
{
value: 3,
label: '气象监测器'
},
{
value: 4,
label: '出口诱导灯'
},
{
value: 5,
label: '路段语音广播'
},
{
value: 6,
label: '护栏碰撞'
},
{
value: 7,
label: '毫米波雷达'
},
{
value: 8,
label: '合流区预警'
},
{
value: 9,
label: '智慧锥桶'
},
{
value: 10,
label: '激光疲劳唤醒'
},
{
value: 11,
label: '类交通量调查站'
},
{
value: 12,
label: '行车诱导'
},
{
value: 13,
label: '智能设备箱'
},
{
value: 14,
label: '光线在线监测'
}
],
deviceOptions: planDeviceOptions,
zyOptions: [
{
value: 1,

48
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/plan/index.vue

@ -28,8 +28,8 @@
<ElTableColumn prop="strEventType" label="事件类型" width="100" align="center" />
<ElTableColumn prop="planName" label="预案名称" width="140" align="center" />
<ElTableColumn prop="triggeringCondition" label="检索条件" width="140" />
<ElTableColumn prop="deviceType" label="设备类型" />
<ElTableColumn prop="controllableDeviceName" label="可控设备"/>
<ElTableColumn prop="deviceType" label="设备类型" />
<ElTableColumn prop="controllableDeviceName" label="可控设备" />
<ElTableColumn prop="controlCommand" label="控制指令" />
<ElTableColumn label="操作" width="210" align="center">
<template slot-scope="scope">
@ -63,49 +63,11 @@ import request from "@/utils/request";
import { confirm } from "@screen/utils/common";
import { Message } from 'element-ui'
import { searchFormList } from './data';
import { WarningType, trafficType } from "@screen/utils/enum.js";
const eventTypeMap = {
0: {},
1: {
1: '交通事故',
2: '车辆故障',
3: '交通管制',
4: '交通拥堵',
5: '非法上路',
6: '路障清除',
7: '施工建设',
8: '服务区异常',
9: '设施设备隐患',
10: '异常天气',
11: '其他事件',
},
2: {
1: '异常天气',
2: '拥堵',
3: '非机动车',
4: '行人',
5: '烟火',
6: '抛洒物',
7: '逆行',
},
3: {}
}
const deviceMap = {
1: '摄像机',
2: '可变信息标志',
3: '气象监测器',
4: '出口诱导灯',
5: '路段语音广播',
6: '护栏碰撞',
7: '毫米波雷达',
8: '合流区预警',
9: '智慧锥桶',
10: '激光疲劳唤醒',
11: '类交通量调查站',
12: '行车诱导',
13: '智能设备箱',
14: '光线在线监测',
1: trafficType,
2: WarningType,
}
export default {

18
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/components/eventSource/index.vue

@ -98,11 +98,11 @@ export default {
name: "非机预警",
percent: 0.1,
},
{
average: 0,
name: "气象监测器",
percent: 0.1,
},
// {
// average: 0,
// name: "",
// percent: 0.1,
// },
];
data.forEach((it) => {
if (it.warningSource == 1) {
@ -123,9 +123,9 @@ export default {
if (it.warningSource == 6) {
chartData[5].average += it.number;
}
if (it.warningSource == 7) {
chartData[6].average += it.number;
}
// if (it.warningSource == 7) {
// chartData[6].average += it.number;
// }
// total ++;
// drawRoundRect(context, 231, 37 + (index * 27), 138, 20, 12, gr);
});
@ -223,7 +223,7 @@ export default {
drawRoundRect(context, 202, 80, 280, 20, 10, gr);
drawRoundRect(context, 202, 104, 280, 20, 10, gr);
drawRoundRect(context, 202, 128, 280, 20, 10, gr);
drawRoundRect(context, 202, 152, 280, 20, 10, gr);
// drawRoundRect(context, 202, 152, 280, 20, 10, gr);
this.myChart = myChart;
});

685
ruoyi-ui/src/views/JiHeExpressway/utils/enum.js

@ -70,6 +70,18 @@ export const DeviceTypeEnum = {
text: "正常",
color: "#19E1B1",
},
null: {
text: "异常",
color: "#FF5F5F",
},
undefined: {
text: "异常",
color: "#FF5F5F",
},
"": {
text: "异常",
color: "#FF5F5F",
},
};
// 摄像 是否可控 是否有云台控制 0 有(球机) 1 ⽆(枪机)
@ -151,6 +163,21 @@ export const WarningType = {
99: "其他事件",
};
// 交通事件主类
export const trafficType = {
1: "交通事故",
2: "车辆故障",
3: "交通管制",
4: "交通拥堵",
5: "非法上路",
6: "路障清除",
7: "施工建设",
8: "服务区异常",
9: "设施设备隐患",
10: "异常天气",
11: "其他事件",
};
export const WarningTypeList = Object.keys(WarningType).map((key) => {
return {
value: key * 1,
@ -234,6 +261,664 @@ export const WarningSubclass = {
},
};
//========= 交通事件 主类(key vulue)=========
export const trafficKV = [
{
value: 1,
label: "交通事故",
},
{
value: 2,
label: "车辆故障",
},
{
value: 3,
label: "交通管制",
},
{
value: 4,
label: "交通拥堵",
},
{
value: 5,
label: "非法上路",
},
{
value: 6,
label: "路障清除",
},
{
value: 7,
label: "施工建设",
},
{
value: 8,
label: "服务区异常",
},
{
value: 9,
label: "设施设备隐患",
},
{
value: 10,
label: "异常天气",
},
{
value: 11,
label: "其他事件",
},
];
//========= 感知事件 主类(key vulue)=========
export const perceptionKV = [
{
value: 1,
label: "交通拥堵",
},
{
value: 2,
label: "行人",
},
{
value: 3,
label: "非机动车",
},
{
value: 4,
label: "停车",
},
{
value: 5,
label: "违规驾驶",
},
{
value: 6,
label: "路障",
},
{
value: 7,
label: "道路施工",
},
{
value: 8,
label: "异常天气",
},
{
value: 9,
label: "护栏碰撞",
},
{
value: 10,
label: "交通事故",
},
{
value: 11,
label: "车辆故障",
},
{
value: 99,
label: "其他事件",
},
];
//交通事件、感知事件 子类(key vulue)预案使用
export const eventSubClassMap = {
1: {
1: [
{
value: "1-1",
label: "追尾",
},
{
value: "1-2",
label: "侧翻",
},
{
value: "1-3",
label: "撞护栏",
},
{
value: "1-4",
label: "自然",
},
{
value: "1-5",
label: "其他事故",
},
],
2: [
{
value: 1,
label: "高速主线",
},
{
value: 2,
label: "服务区",
},
{
value: 3,
label: "立交桥",
},
{
value: 4,
label: "收费站",
},
],
3: [
{
value: 1,
label: "主线关闭",
},
{
value: 2,
label: "主线限行",
},
{
value: 6,
label: "收费站关闭",
},
{
value: 7,
label: "收费站限行",
},
{
value: 10,
label: "匝道立交关闭",
},
{
value: 12,
label: "匝道立交限行",
},
{
value: 14,
label: "服务区关闭",
},
],
4: [
{
value: "4-1",
label: "道路拥堵",
},
{
value: "4-2",
label: "立交拥堵",
},
{
value: "4-3",
label: "收费站拥堵",
},
{
value: "4-4",
label: "收费站服务区拥堵",
},
],
5: [
{
value: "5-1",
label: "行人",
},
{
value: "5-2",
label: "非机动车",
},
{
value: "5-3",
label: "摩托车",
},
{
value: "5-4",
label: "其他",
},
],
6: [
{
value: "6-1",
label: "烟雾",
},
{
value: "6-2",
label: "倒伏树木",
},
{
value: "6-3",
label: "撒落物",
},
{
value: "6-4",
label: "动物",
},
{
value: "6-5",
label: "其他",
},
],
7: [
{
value: 1,
label: "道路养护施工",
},
{
value: 2,
label: "收费站养护施工",
},
{
value: 3,
label: "服务区养护施工",
},
{
value: 4,
label: "枢纽立交匝道养护施工",
},
{
value: 5,
label: "地方道路养护施工",
},
{
value: 6,
label: "道路工程建设施工",
},
{
value: 7,
label: "收费站工程建设施工",
},
{
value: 8,
label: "服务区工程建设施工",
},
{
value: 9,
label: "枢纽立交匝道工程建设施工",
},
{
value: 10,
label: "地方道路工程建设施工",
},
],
8: [
{
value: "8-1",
label: "封闭、暂停营业",
},
{
value: "8-2",
label: "重要设施停用",
},
{
value: "8-3",
label: "服务区其他异常",
},
],
9: [
{
value: 1,
label: "摄像机",
},
{
value: 2,
label: "护栏",
},
{
value: 3,
label: "隔离栅",
},
{
value: 4,
label: "情报板",
},
{
value: 5,
label: "防炫板",
},
{
value: 6,
label: "其他",
},
],
10: [
{
value: "10-1",
label: "雨",
},
{
value: "10-2",
label: "雪",
},
{
value: "10-3",
label: "雾",
},
{
value: "10-4",
label: "大风",
},
{
value: "10-5",
label: "低温寒潮",
},
{
value: "10-6",
label: "路面积雪",
},
{
value: "10-7",
label: "路面结冰",
},
{
value: "10-8",
label: "路面积水",
},
{
value: "10-9",
label: "其他",
},
],
11: [
{
value: 1,
label: "其他事件",
},
],
},
2: {
1: [
{
value: "1-1",
label: "拥堵",
},
{
value: "1-2",
label: "缓行",
},
],
2: [
{
value: "2-1",
label: "普通行人",
},
{
value: "2-2",
label: "工作人员",
},
],
3: [
{
value: "3-1",
label: "摩托车",
},
{
value: "3-2",
label: "自行车",
},
{
value: "3-3",
label: "三轮车",
},
],
4: [
{
value: "4-1",
label: "非工程车",
},
{
value: "4-2",
label: "工程车",
},
{
value: "4-3",
label: "主路有车",
},
{
value: "4-4",
label: "匝道有车",
},
{
value: "4-7",
label: "应急车道被占用",
},
{
value: "4-9",
label: "其他",
},
{
value: "4-10",
label: "未知车辆",
},
],
5: [
{
value: "5-1",
label: "倒车/逆行",
},
{
value: "5-2",
label: "压线",
},
{
value: "5-3",
label: "掉头",
},
{
value: "5-4",
label: "超速",
},
{
value: "5-5",
label: "低速",
},
{
value: "5-6",
label: "违规变道",
},
{
value: "5-7",
label: "未保持安全距离",
},
],
6: [
{
value: "6-1",
label: "烟雾",
},
{
value: "6-2",
label: "火灾",
},
{
value: "6-3",
label: "障碍物",
},
{
value: "6-4",
label: "抛洒物",
},
],
7: [
{
value: "7-1",
label: "道路施工",
},
],
8: [
{
value: "8-1",
label: "雨",
},
{
value: "8-2",
label: "冰雹",
},
{
value: "8-3",
label: "风",
},
{
value: "8-4",
label: "雾",
},
{
value: "8-5",
label: "高温",
},
{
value: "8-6",
label: "积水",
},
{
value: "8-7",
label: "路面湿滑",
},
{
value: "8-8",
label: "路面结冰",
},
{
value: "8-9",
label: "道路能见度低",
},
{
value: "8-10",
label: "道路团雾",
},
],
9: [
{
value: "9-1",
label: "只碰撞不倾斜",
},
{
value: "9-2",
label: "只倾斜无碰撞",
},
{
value: "9-3",
label: "碰撞后倾斜",
},
],
10: [
{
value: "10-1",
label: "未知",
},
{
value: "10-1",
label: "单车事故",
},
{
value: "10-1",
label: "多车事故",
},
],
11: [
{
value: "11-1",
label: "车辆抛锚",
},
{
value: "11-1",
label: "车辆炸胎(有备胎)",
},
{
value: "11-1",
label: "车辆炸胎(无备胎)",
},
],
99: [
{
value: "99-1",
label: "其他事件",
},
],
},
};
//激光疲劳唤醒 工作模式
export const gzmsMap = {
SETMD0: "激光关闭",
SETMD1: "常亮模式",
SETMD2: "间隔100ms闪烁模式",
SETMD3: "间隔200ms闪烁模式",
SETMD4: "间隔500ms闪烁模式",
SETMD5: "2次闪烁模式",
SETMD6: "SOS模式",
SETMD7: "自定义模式1",
SETMD8: "自定义模式2",
SETMD9: "自定义模式3",
};
//预案设备列表
export const planDeviceMap = {
1: "摄像机",
2: "可变信息标志",
3: "气象监测器",
4: "出口诱导灯",
5: "路段语音广播",
6: "护栏碰撞",
7: "毫米波雷达",
8: "合流区预警",
9: "智慧锥桶",
10: "激光疲劳唤醒",
11: "类交通量调查站",
12: "行车诱导",
13: "智能设备箱",
14: "光线在线监测",
};
//预案设备Options
export const planDeviceOptions = [
{
value: 1,
label: "摄像机",
},
{
value: 2,
label: "可变信息标志",
},
{
value: 3,
label: "气象监测器",
},
{
value: 4,
label: "出口诱导灯",
},
{
value: 5,
label: "路段语音广播",
},
{
value: 6,
label: "护栏碰撞",
},
{
value: 7,
label: "毫米波雷达",
},
{
value: 8,
label: "合流区预警",
},
{
value: 9,
label: "智慧锥桶",
},
{
value: 10,
label: "激光疲劳唤醒",
},
{
value: 11,
label: "类交通量调查站",
},
{
value: 12,
label: "行车诱导",
},
{
value: 13,
label: "智能设备箱",
},
{
value: 14,
label: "光线在线监测",
},
];
export const WarningSubclassList = Object.keys(WarningSubclass).reduce(
(prev, key) => {
prev[key] = Object.keys(WarningSubclass[key]).map((subKey) => {

Loading…
Cancel
Save