Browse Source

毫米波雷达更新

wangqin
王钦 6 months ago
parent
commit
934cde9d68
  1. 2
      ruoyi-ui/src/common/menuData.js
  2. 2
      ruoyi-ui/src/views/JiHeExpressway/components/TimeLine/TimeLine2/DescCard.vue
  3. 169
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/MillimeterWaveRadar/components/DeviceControlDialog.vue
  4. 214
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/MillimeterWaveRadar/index.vue
  5. 8
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/RoadNetworkFacilities/index.vue
  6. 11
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeFilter/index.vue
  7. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/index.vue
  8. 1
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/buttonEvent.js
  9. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DeviceControl/index.vue
  10. 6
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/TrafficControl/components/AddControlEventInfoDialog/index.vue
  11. 1
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/TrafficControl/index.vue
  12. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/smart/analysis/charts.js
  13. 7
      ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/smart/analysis/index.vue

2
ruoyi-ui/src/common/menuData.js

@ -219,7 +219,7 @@ export default [
component: "service/boardRecord/index.vue", component: "service/boardRecord/index.vue",
}, },
{ {
title: "情报板敏感词", title: "敏感词",
name: "sensitive", name: "sensitive",
path: "/service/sensitive", path: "/service/sensitive",
component: "service/sensitive/index.vue", component: "service/sensitive/index.vue",

2
ruoyi-ui/src/views/JiHeExpressway/components/TimeLine/TimeLine2/DescCard.vue

@ -6,7 +6,7 @@
<span class="name">{{ data.name }}</span> <span class="name">{{ data.name }}</span>
<span class="posts">{{ data.posts }}</span> <span class="posts">{{ data.posts }}</span>
</div> </div>
<div class="node" v-if="data.processId">节点{{ data.processName }}</div> <div class="node" v-if="data.processType===1 && data.processId">节点{{ data.processName }}</div>
<el-image <el-image
style="width: 100px; height: 100px" style="width: 100px; height: 100px"
v-if=" v-if="

169
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/MillimeterWaveRadar/components/DeviceControlDialog.vue

@ -0,0 +1,169 @@
<template>
<Dialog v-model="modelVisible" title="感知事件" width="740px" >
<div class="DeviceControlDialog">
<div class="headSearch">
<p>查询事件:</p>
<el-select
v-model="eventType"
style="width: 180px"
>
<el-option
v-for="item in eventTypeOption"
:key="item.key"
:label="item.label"
:value="item.key"
></el-option>
</el-select>
<p style="margin-left: 10px;">时间范围:</p>
<!-- <el-date-picker style="width:220px;" class="selectRoad" v-model="time" type="daterange" placeholder="请选择" :clearable="false"> -->
<!-- </el-date-picker> -->
<el-date-picker
v-model="dateRange"
size="mini"
style="width: 200px"
value-format="yyyy-MM-dd"
type="daterange"
range-separator="-"
unlink-panels
start-placeholder="开始日期"
end-placeholder="结束日期"
></el-date-picker>
<Button @click.native="bindData" style="margin-left: 10px;"> 查询 </Button>
<Button
style="background-color: rgba(0, 179, 204, 0.3)"
@click.native="handleResetForm"
>
重置
</Button>
</div>
</div>
</Dialog>
</template>
<script>
import Button from "@screen/components/Buttons/Button.vue";
import Dialog from "@screen/components/Dialog/index.vue";
import request from "@/utils/request";
import { throttle } from "lodash"
import { Message } from "element-ui";
export default {
name: "DeviceControlDialog",
components: {
Dialog,
Button
},
model: {
prop: "visible",
event: "update:value",
},
props: {
visible: Boolean,
deviceId: String,
btnType: Number,
},
data() {
return {
submitting: false,
eventType:'all',
eventTypeOption:[
{key:'all',label:'全部'},
{key:'RADAR_TOPIC',label:'雷达目标检测事件'},
{key:'trafficAnalysis',label:'交通事件'},
{key:'timeRange',label:'交通统计'},
{key:'realTime',label:'交通状态数据'},
],
dateRange: [],
searchData: {
pageSize: 12,
pageNum: 1
},
};
},
computed: {
modelVisible: {
get() {
return this.visible;
},
set(val) {
// this.$emit("update:value", val);
},
},
},
watch: {
visible: {
immediate: true,
handler(bool) {
this.initData();
},
},
},
mounted() {
this.time = new Date().format('yyyy-MM-dd')
},
methods: {
initData(){
this.dateRange = [];
this.eventType = 'all';
this.searchData = {
pageSize: 12,
pageNum: 1
}
this.bindData();
},
async bindData() {
console.log(this.deviceId)
// request({
// url: `business/device/events/history/{deviceId}/type/{type}`,
// method: "get",
// }).then(res=>{
// if (result.code != 200) return Message.error(result?.msg);
// })
},
},
};
</script>
<style lang="scss" scoped>
.DeviceControlDialog {
max-height: 78vh;
height: 410px;
display: flex;
flex-direction: column;
gap: 15px;
.headSearch {
display: flex;
align-items: center;
width: 700px;
p {
margin-right: 10px;
}
::v-deep {
.el-input__prefix {
top: -5px
}
}
}
.tips {
font-size: 12px;
}
}
.selectRoad {
::v-deep {
.el-input__inner {
background-color: #064258 !important;
border-width: 0px !important;
}
}
}
</style>

214
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/MillimeterWaveRadar/index.vue

@ -0,0 +1,214 @@
<template>
<Dialog v-model="obverseVisible" title="毫米波雷达" width="470px">
<div class="MillimeterWaveRadar">
<Video class="video-stream" :pileNum="dialogData.stakeMark" />
<ElTabs v-model="activeName" @tab-click="handleClickTabs" class="tabs">
<ElTabPane label="基本信息" name="first">
<Descriptions labelWidth="72px" :list="list" :data="data" style="gap: 18px" />
</ElTabPane>
</ElTabs>
</div>
<template #footer>
<Button @click.native="deviceControlVisible = true;" style="margin-top: 20px;">感知事件</Button>
</template>
<!-- 设备操作弹窗 -->
<DeviceControlDialog v-model="deviceControlVisible" :deviceId="dialogData.deviceId" :btnType="btnType" />
</Dialog>
</template>
<script>
import Dialog from "@screen/components/Dialog/index.vue";
import Descriptions from "@screen/components/Descriptions.vue";
import Button from "@screen/components/Buttons/Button.vue";
import {
getRoadInfoByStakeMark,
getProduct,
getMeteorologicalDetector
} from "@screen/pages/Home/components/RoadAndEvents/utils/httpList.js";
import Video from "@screen/components/Video";
import DeviceControlDialog from "./components/DeviceControlDialog.vue";
import request from "@/utils/request";
import { dialogDelayVisible } from "./../mixin";
import LineChart from "../../LineChart/index.vue";
//
export default {
name: "MillimeterWaveRadar",
mixins: [dialogDelayVisible],
components: {
Dialog,
Descriptions,
Video,
DeviceControlDialog,
Button,
LineChart,
},
data() {
return {
activeName: "first",
deviceControlVisible: false,
data: {
deviceType: "行车诱导",
deviceStation: "k094+079",
roadName: "G35济泽高速",
direction: "1",
deviceState: "0",
deviceVendors: "XXX厂家",
},
btnType: 1,
weatherData: {},
list: [
{
label: "设备名称",
key: "deviceName",
},
{
label: "设备桩号",
key: "stakeMark",
},
{
label: "道路名称",
key: "roadName",
},
{
label: "设备方向",
key: "direction",
enum: "CameraDirectionEnum",
},
{
label: "设备状态",
key: "deviceState",
enum: "DeviceTypeEnum",
},
{
label: "设备厂商",
key: "manufacturer",
},
],
weatherList: [
{
label: "路面状态",
key: "remoteRoadSurfaceStatus",
enum: "remoteRoadSurfaceStatus",
},
{
label: "路表温度(℃)",
key: "remoteRoadSurfaceTemperature",
},
{
label: "下雨类型",
key: "precipitationType",
enum: "precipitationType",
},
{
label: "雨量(mm)",
key: "rainfall",
},
{
label: "能见度类型",
key: "visibilityType",
enum: "visibilityType",
},
{
label: "能见度(km)",
key: "visibility",
},
{
label: "温度(℃)",
key: "temperature",
},
{
label: "湿度",
key: "humidity",
},
{
label: "风向",
key: "windDirection",
},
{
label: "风速(m/s)",
key: "windSpeed",
},
{
label: "水膜厚度(mm)",
key: "waterFilmIceSnowValue",
},
{
label: "大气压力(hPa)",
key: "atmosphericPressure",
},
{
label: "时间",
key: "createTime",
gridColumn: 2,
},
]
};
},
async created() {
this.data = { ...this.dialogData };
getProduct(this.dialogData.productId).then((data) => {
this.dialogData.brand = data.brand;
});
const roadInfo = await getRoadInfoByStakeMark(this.dialogData.stakeMark);
if (roadInfo) this.$set(this.data, "roadName", roadInfo.roadName);
const weatherInfo = await getMeteorologicalDetector(this.dialogData.deviceName)
this.weatherData = { ...weatherInfo }
},
methods: {
handleClickTabs() { },
},
};
</script>
<style lang="scss" scoped>
.MillimeterWaveRadar {
width: 420px;
color: #fff;
display: flex;
flex-direction: column;
gap: 12px;
// padding-bottom: 24px;
.camera-video {
flex: 1.5;
}
.tabs {
flex: 1;
display: flex;
flex-direction: column;
::v-deep {
.el-tabs__content {
flex: 1;
.el-tab-pane {
height: 100%;
}
}
}
}
.bottom {
margin-top: 12px;
display: flex;
gap: 9px;
align-items: center;
justify-content: end;
>div {
font-size: 16px;
padding: 6px 12px;
}
}
}
</style>

8
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/RoadNetworkFacilities/index.vue

@ -17,7 +17,7 @@
</ElTabPane> </ElTabPane>
<ElTabPane :label="item" :key="'UPS_'+item" :name="'UPS_'+item" v-for="item in upsList" v-if="dialogData.facilityType === 1"> <ElTabPane :label="item" :key="'UPS_'+item" :name="'UPS_'+item" v-for="item in upsList" v-if="dialogData.facilityType === 1">
<Descriptions labelWidth="142px" :list="upsList" :data="upsData" style="gap: 12px" column="6" /> <Descriptions labelWidth="142px" :list="upsForm" :data="upsData" style="gap: 12px" column="6" />
</ElTabPane> </ElTabPane>
@ -67,8 +67,8 @@ export default {
formList: [], formList: [],
dateRange: [], dateRange: [],
daterangeChangeTime: [], daterangeChangeTime: [],
upsList:[], upsForm:[],
upsData:[], upsData:{},
// UPS // UPS
upsList:['SNMP'] upsList:['SNMP']
}; };
@ -137,7 +137,7 @@ export default {
}) })
_data[e.propertyName] = e.formatValue; _data[e.propertyName] = e.formatValue;
}); });
this.upsList = _list; this.upsForm = _list;
this.upsData = _data; this.upsData = _data;
}) })
}, },

11
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeFilter/index.vue

@ -12,8 +12,13 @@
</div> </div>
<div class="body"> <div class="body">
<div class="title">筛选</div> <div class="title">
<div>筛选</div>
<div class="el-icon-close" style="cursor: pointer;" @click="activeIcon = null"></div>
</div>
<div style="width:500px; ">
<Form v-model="data" labelWidth="90px" column="1" class="form" ref="FormConfigRef" :formList="formList" /> <Form v-model="data" labelWidth="90px" column="1" class="form" ref="FormConfigRef" :formList="formList" />
</div>
<div class="footer"> <div class="footer">
<Button style="background-color: rgba(0, 179, 204, 0.3)" @click.native="handleResetForm"> <Button style="background-color: rgba(0, 179, 204, 0.3)" @click.native="handleResetForm">
重置 重置
@ -176,6 +181,7 @@ div.el-popper.global-input-search-popover {
transform: translateY(24px); transform: translateY(24px);
.body { .body {
width: 500px !important;
.title { .title {
background: linear-gradient(90deg, background: linear-gradient(90deg,
#237e9b 0%, #237e9b 0%,
@ -185,6 +191,9 @@ div.el-popper.global-input-search-popover {
top: 0; top: 0;
left: 0; left: 0;
width: 100%; width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
} }
} }
} }

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

@ -57,6 +57,7 @@ import ConfluenceArea from "./../Dialogs/ConfluenceArea/index.vue";
import Intermodulation from "./../Dialogs/Intermodulation/index.vue"; import Intermodulation from "./../Dialogs/Intermodulation/index.vue";
import GuardrailCollision from "./../Dialogs/GuardrailCollision/index.vue"; import GuardrailCollision from "./../Dialogs/GuardrailCollision/index.vue";
import MeteorologicalDetection from "./../Dialogs/MeteorologicalDetection/index.vue"; import MeteorologicalDetection from "./../Dialogs/MeteorologicalDetection/index.vue";
import MillimeterWaveRadar from "./../Dialogs/MillimeterWaveRadar/index.vue";
import FatigueWakesUp from "./../Dialogs/FatigueWakesUp/index.vue"; import FatigueWakesUp from "./../Dialogs/FatigueWakesUp/index.vue";
import { addInGraphHandle, markerClusterIns } from "./utils/map" import { addInGraphHandle, markerClusterIns } from "./utils/map"
@ -81,6 +82,7 @@ export default {
RoadNetworkFacilities, RoadNetworkFacilities,
RemoteMachine, RemoteMachine,
MeteorologicalDetection, MeteorologicalDetection,
MillimeterWaveRadar,
ConfluenceArea ConfluenceArea
}, },
data() { data() {

1
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/buttonEvent.js

@ -68,6 +68,7 @@ export const DeviceForMap = {
}, },
毫米波雷达: { 毫米波雷达: {
deviceType: "7", deviceType: "7",
dialog: "MillimeterWaveRadar",
}, },
气象检测器: { 气象检测器: {
deviceType: "3", deviceType: "3",

2
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DeviceControl/index.vue

@ -222,10 +222,8 @@ export default {
if (item.devList && item.devList.length > 0) { if (item.devList && item.devList.length > 0) {
dcData.deviceList = item.devList.join(","); dcData.deviceList = item.devList.join(",");
} }
dcData.executeConfig = JSON.stringify(item.executeConfig); dcData.executeConfig = JSON.stringify(item.executeConfig);
dcData.recoverConfig = JSON.stringify(item.recoverConfig); dcData.recoverConfig = JSON.stringify(item.recoverConfig);
dcArr.push(dcData); dcArr.push(dcData);
}); });

6
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/TrafficControl/components/AddControlEventInfoDialog/index.vue

@ -31,6 +31,7 @@ export default {
}, },
props: { props: {
visible: Boolean, visible: Boolean,
eventId: String,
eventSubclass: String, eventSubclass: String,
controlType: Number controlType: Number
}, },
@ -115,7 +116,7 @@ export default {
if (formData.dcEventTrafficControl.facilityId instanceof Array) { if (formData.dcEventTrafficControl.facilityId instanceof Array) {
let ids = formData.dcEventTrafficControl.facilityId; let ids = formData.dcEventTrafficControl.facilityId;
formData.dcEventTrafficControl.facilityIds = ids formData.dcEventTrafficControl.facilityIds = ids
formData.dcEventTrafficControl.facilityId = '' formData.dcEventTrafficControl.facilityId = null
} }
let stakeMark = formData.stakeMark; let stakeMark = formData.stakeMark;
@ -132,8 +133,9 @@ export default {
method: "post", method: "post",
data: { data: {
...formData, ...formData,
id:this.eventId,
eventState:1,
eventType: 3, eventType: 3,
eventState: 0,
stakeMark: stakeMark && stakeMark[0] != null stakeMark: stakeMark && stakeMark[0] != null
? stakeMark && stakeMark.length > 0 ? "K" + stakeMark[0] + "+" + stakeMark[1] : "" : "", ? stakeMark && stakeMark.length > 0 ? "K" + stakeMark[0] + "+" + stakeMark[1] : "" : "",
}, },

1
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/TrafficControl/index.vue

@ -25,6 +25,7 @@
v-model="addControlEventInfoDialogVisible" v-model="addControlEventInfoDialogVisible"
:controlType="controlType" :controlType="controlType"
:eventSubclass="eventSubclass" :eventSubclass="eventSubclass"
:eventId="this.detailData.id"
@close="closeDialog" @close="closeDialog"
/> />
</Card> </Card>

2
ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/smart/analysis/charts.js

@ -33,7 +33,7 @@ var options = {
top: "25%", //上边距 top: "25%", //上边距
right: "0%", //右边距 right: "0%", //右边距
left: "0%", //左边距 left: "0%", //左边距
bottom: "0%", //下边距 bottom: "10%", //下边距
containLabel: true, containLabel: true,
}, },
xAxis: { xAxis: {

7
ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/smart/analysis/index.vue

@ -61,9 +61,8 @@
<Button style="margin-left: 25px" @click.native="bindData()">查询</Button> <Button style="margin-left: 25px" @click.native="bindData()">查询</Button>
</div> </div>
</div> </div>
<div class="right-bottom" > <div class="right-bottom" >
<div id="chart1" class="chart1 keep-ratio" origin="top"></div> <div id="chart1" class="chart1"></div>
<div class="right-table"> <div class="right-table">
<Table :data="tableData" > <Table :data="tableData" >
<ElTableColumn label="名称" prop="name" width="300" align="center" /> <ElTableColumn label="名称" prop="name" width="300" align="center" />
@ -253,7 +252,7 @@ export default {
padding: 20px; padding: 20px;
.left { .left {
width: 400px; width: 380px;
background-color: #112533; background-color: #112533;
height: 100%; height: 100%;
display: flex; display: flex;
@ -297,7 +296,7 @@ export default {
} }
.right-table{ .right-table{
width: 100%; width: 100%;
height: 600px; height: 550px;
overflow-y: auto; overflow-y: auto;
margin-bottom: 30px; margin-bottom: 30px;
} }

Loading…
Cancel
Save