Browse Source

修改禅道问题

develop
王钦 4 months ago
parent
commit
b8600fe76f
  1. 5
      ruoyi-ui/src/views/JiHeExpressway/components/HeaderMenu/CustomMenu.vue
  2. 4
      ruoyi-ui/src/views/JiHeExpressway/components/HeaderMenu/WarningList.vue
  3. 5
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/DrivingGuidance/components/DeviceParam.vue
  4. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/MillimeterWaveRadar/components/DeviceControlDialog.vue
  5. 44
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeTraffic/index.vue
  6. 5
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeVector/index.vue
  7. 1
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeWeatherLayer/index.vue
  8. 1
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeWord/index.vue
  9. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/index.vue
  10. 4
      ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/componentsAdd/taskEditDialog.vue
  11. 9
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/DeviceControl/index.vue
  12. 102
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/EventInformation/components/EditEventInformationDialog/index.vue
  13. 45
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/TrafficControl/components/AddControlEventInfoDialog/index.vue
  14. 25
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/dispatch/EventDispatchDialog/index.vue
  15. 15
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/EventDetailDialog/Carousel/index.vue
  16. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/index.vue
  17. 8
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/plan/index.vue
  18. 4
      ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/smart/manage/index.vue
  19. 48
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/analysis/day/charts.js
  20. 210
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/analysis/day/chartsv1.js
  21. 6
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/statistics/index.vue
  22. 24
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficFlow/analysis/flow/charts.js
  23. 172
      ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficFlow/analysis/flow/chartsv1.js
  24. 93
      ruoyi-ui/src/views/JiHeExpressway/utils/enum_event/PresetFormItems.js
  25. 85
      ruoyi-ui/src/views/JiHeExpressway/utils/enum_event/data.js
  26. 4
      ruoyi-ui/vue.config.js

5
ruoyi-ui/src/views/JiHeExpressway/components/HeaderMenu/CustomMenu.vue

@ -92,6 +92,11 @@ export default {
} else if(node.title==='桥梁监测'){
this.activeIndex = key
window.open('http://iot.sdhscloud.com/home?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MTc1MSwidWlkIjoiM2M2NTZjOGUtMzgwZC0xMWVmLWFhNmItYmVhNGE2MDZhMzE2IiwidXNlcm5hbWUiOiJKSFpIR1MiLCJuaWNrbmFtZSI6Ilx1NmQ0ZVx1ODNjZlx1NjY3YVx1NjE2N1x1OWFkOFx1OTAxZiIsImVtYWlsIjoiMjU4NTQwMjg0MEBxcS5jb20iLCJ0ZWwiOiIiLCJpc19zdXBlcnVzZXIiOmZhbHNlLCJpc19tYXN0ZXIiOmZhbHNlLCJpc19hY3RpdmUiOnRydWUsInRlbmFudF9pZCI6NDUsImF0dHJzIjp7Imdyb3VwIjoiIn0sImhhc3VyYSI6eyJ4LWhhc3VyYS11c2VyLWlkIjoiM2M2NTZjOGUtMzgwZC0xMWVmLWFhNmItYmVhNGE2MDZhMzE2IiwieC1oYXN1cmEtdGVuYW50Ijo0NSwieC1oYXN1cmEtYWN0aXZlIjp0cnVlLCJ4LWhhc3VyYS1tYXN0ZXIiOmZhbHNlLCJ4LWhhc3VyYS1yb2xlX2lkIjo1MjcsIngtaGFzdXJhLWFwcF9pZCI6NTIsIngtaGFzdXJhLXNlcnZpY2VfaWQiOjQsIngtaGFzdXJhLXN1cGVydXNlciI6ZmFsc2V9LCJhcHBfaWQiOjUyLCJyb2xlX2lkIjo1MjcsInNlcnZpY2VfaWQiOjQsImNsaWVudF9pZCI6IjA1ZTI1NzU4LTBhYTQtMTFlYS1iYTM0LTAyNDJhYzEwMDExZiIsImV4cCI6NDg3MzUxMzk1M30.JR5dwFCmNfaDFkSISOF5ZhRyPBulzDwG1bg4BA-Jqog')
} else if(node.title==='数字收费站'){
this.activeIndex = key
getConfigKey("digitalTollStation").then((response) => {
window.open(response.msg===''?'https://10.0.86.63:9000/s?loadType=auto&group=15ai1k13748d&runType=box':response.msg);
})
} else if (this.$route.path != node.path){
this.$router.push(node.path);
}

4
ruoyi-ui/src/views/JiHeExpressway/components/HeaderMenu/WarningList.vue

@ -7,7 +7,7 @@
<el-tab-pane label="处置中事件" name="third" />
</el-tabs>
<div>
<Table :data="tableData" :show-header="false" @cell-click="onCellClick">
<Table :data="tableData" :show-header="false" @cell-click="onCellClick" height="400px">
<ElTableColumn prop="remark" width="550">
<template slot-scope="scope">
@ -27,7 +27,7 @@
</Table>
</div>
<div class="footer">
<div class="footer" style="width:100%;display:flex;justify-content: center;margin-top: 10px;">
<Pagination @current-change="getMainData" @size-change="onSizeChange" width="'100%'"
:page-sizes="[10, 20, 30, 40, 50]" :page-size="searchData.pageSize" :current-page.sync="searchData.pageNum"
layout="total, sizes, prev, pager, next" :total="total">

5
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/DrivingGuidance/components/DeviceParam.vue

@ -163,6 +163,11 @@ export default {
visible: (data) => data.controlType == "01",
options: {
isRange: true,
options:{
format:"HH:mm",
},
format:"HH:mm",
rangeSeparator: "至",
valueFormat: "HH:mm",
startPlaceholder: "开始时间",

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

@ -182,7 +182,7 @@ export default {
e.typename = WarningSubclass[e.warningType][e.warningSubclass]
e.stateName = warningStateMapping[e.warningState]
});
this.data = [...res.rows,...res.rows,...res.rows,...res.rows,...res.rows,...res.rows,...res.rows];
this.data = res.rows;
this.total = res.total;
})
},

44
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeTraffic/index.vue

@ -61,7 +61,6 @@ export default {
};
},
created() {
this.activeIcon = window.showStakeText ? 'Vector' : null;
},
methods: {
drawThumbail(list){
@ -131,7 +130,7 @@ export default {
this.showLnglat();
setTimeout(() => {
this.updateTick()
}, 2500);
}, 1000);
}
},
sliderChange(t){
@ -167,27 +166,13 @@ export default {
const style = {
color: '#9fe4fe'
}
//
let res = await request({ url: '/business/traffic-statistics/current/getTheCurrentCongestedSection', method: 'get'});
let aryLine = [];
res.data.forEach(e => {
const lines = e.link_lng_lats.split(';').map(x=>x.split(','))
aryLine.push({
width: 3, // 线
color: enum_color[e.pub_run_status], // 线
xyArr: lines,
})
});
this.lnglats[0] = _.cloneDeep(aryLine);
this.lnglatsNode[0] = res.data;
const now = moment().format('HH:mm');
let marks = {0: now};
let marks = {};
let total = 0;
let idx = 0;
for(let i in result.data){
idx++;
total++;
marks[idx] = i
let aryLine = [];
@ -202,10 +187,28 @@ export default {
});
this.lnglats[idx] = _.cloneDeep(aryLine);
this.lnglatsNode[idx] = _line;
idx++;
total++;
}
marks[idx] = now;
this.max = total;
this.marks = marks;
this.showLnglat();
//
let res = await request({ url: '/business/traffic-statistics/current/getTheCurrentCongestedSection', method: 'get'});
let aryLine = [];
res.data.forEach(e => {
const lines = e.link_lng_lats.split(';').map(x=>x.split(','))
aryLine.push({
width: 3, // 线
color: enum_color[e.pub_run_status], // 线
xyArr: lines,
})
});
this.lnglats[idx] = _.cloneDeep(aryLine);
this.lnglatsNode[idx] = res.data;
})
}
@ -283,3 +286,8 @@ div.el-popper.global-input-search-popover {
}
}
</style>
<style>
.el-slider__marks-text{
color:rgb(119, 229, 255);
}
</style>

5
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeVector/index.vue

@ -28,14 +28,15 @@ export default {
},
created() {
this.activeIcon = window.showStakeText ? 'Vector' : null;
Vue.prototype.mapIns.pileIsShow("jhlayers", false);
},
methods: {
handleClick(type) {
this.activeIcon = this.activeIcon === type ? null : type;
Vue.prototype.isMapStatck = (this.activeIcon === type);
Vue.prototype.mapIns.pileIsShow("jhlayers", (this.activeIcon === type));
// if (this.activeIcon) window.showStakeText = true;
// else window.showStakeText = false;
if (this.activeIcon) window.showStakeText = true;
else window.showStakeText = false;
// markerClusterIns.setData();
},
},

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

@ -27,7 +27,6 @@ export default {
};
},
created() {
this.activeIcon = window.showStakeText ? 'Vector' : null;
},
methods: {
handleClick(type) {

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

@ -35,7 +35,6 @@ export default {
};
},
created() {
this.activeIcon = window.showStakeText ? "Vector" : null;
},
methods: {
handleClick(type) {

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

@ -3,7 +3,7 @@
<div class="tabs">
<div class="tabs-item" :class="layer.title === active ? 'tabs-active' : ''" v-for="layer in layerData"
:key="layer.title" @click="handleClick(layer)">
{{ layer.title }}
{{ layer.title === '路测设备'?'路侧设备':layer.title}}
</div>
</div>

4
ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/componentsAdd/taskEditDialog.vue

@ -1,5 +1,5 @@
<template>
<Dialog v-model="modelVisible" title="修改" width="600px" label-width="120px">
<Dialog v-model="modelVisible" :title="(this.mode==='edit')?'修改':'新增'" width="600px" label-width="120px">
<el-form>
<el-form-item label="设备类型">
@ -208,6 +208,7 @@ export default {
//props
if (this.propData.deviceType){
this.mode ='edit'
this.searchData.deviceType = this.propData.deviceType;
this.searchData.direction = this.propData.direction;
this.filterData.screenSize = this.propData.screenSize;
@ -224,6 +225,7 @@ export default {
this.editData
}else{
this.mode ='add'
this.searchData.deviceType = "";
this.searchData.direction = "";
this.filterData.screenSize = "";

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

@ -62,6 +62,7 @@ export default {
tableData: [],
subclass:"",
eventId: "",
direction: "",
isAll5: false,//广
};
},
@ -70,10 +71,16 @@ export default {
if(
this.subclass !== newValue.subclass
|| this.eventId !== newValue.id
|| this.direction !== newValue.direction
){
this.subclass = newValue.subclass;
this.eventId = newValue.id;
this.initData(newValue)
this.direction = newValue.direction;
this.tableData = [];
setTimeout(() => {
this.initData(newValue)
}, 200);
}
},

102
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/commandDispatch/Cards/EventInformation/components/EditEventInformationDialog/index.vue

@ -78,10 +78,18 @@ export default {
let numbers = info.stakeMark.match(/\d+/g).map(String);
info.stakeMark = numbers;
}
if (typeof info.lang == "string") {
info.lang = info.lang.split(",")
}
if(info.eventType === 4){
//
if(info.dcEventTrafficCongestion.endStakeMark && typeof info.dcEventTrafficCongestion.endStakeMark == "string"){
let numbers = info.dcEventTrafficCongestion.endStakeMark.match(/\d+/g).map(String);
info.endStakeMark = numbers;
}
}
if(info.eventType === 10){
//
if(info.dcEventAbnormalWeather.endStakeMark && typeof info.dcEventAbnormalWeather.endStakeMark == "string"){
@ -121,12 +129,13 @@ export default {
}
// ===============
let _confirgList = _.cloneDeep(configList[info.eventName]);
let _configList = _.cloneDeep(configList[info.eventName]);
console.log(info,_configList)
if(info.eventType === 3){
_confirgList[0].options.disabled = true;
_configList[0].options.disabled = true;
if(info.eventSubclass === '3-2'){
_confirgList[8].options.disabled = true;
_configList[8].options.disabled = true;
}
}
const facilityResult = await request({ url: `/business/facility/query`,method: "get"})
@ -140,9 +149,9 @@ export default {
})
);
// //
for(let i = 0; i < _confirgList.length; i++) {
const it = _confirgList[i];
if (it.label==='服务区:' && it.type==='select' ) { //
for(let i = 0; i < _configList.length; i++) {
const it = _configList[i];
if ((it.label==='服务区:'||it.label==='拥堵服务区:') && it.type==='select' ) { //
it.options.options = this.lwss.filter((x) => x.type == 6);
}
if (it.label==='立交桥:' && it.type==='select' ) { //
@ -156,15 +165,12 @@ export default {
zdResult.rows.forEach((it) =>
zd.push({ key: it.id, label: it.rampName })
);
_confirgList.filter(x=>x.label==='匝道:' && x.type==='select').forEach(f=>{
_configList.filter(x=>x.label==='匝道:' && x.type==='select').forEach(f=>{
f.options.options = zd
})
}
}
if (it.label==='拥堵收费站:' && it.type==='select' ) { //
it.options.options = this.lwss.filter((x) => x.type == 1);
}
if (it.label==='收费站:' && it.type==='select' ) { //
if ((it.label==='拥堵收费站:' || it.label==='收费站:') && it.type==='select' ) { //
it.options.options = this.lwss.filter((x) => x.type == 1);
}
if (it.label==='停车区:' && it.type==='select' ) { //
@ -174,7 +180,7 @@ export default {
//
if(info.eventType === 10){
if(info.eventSubclass === '10-2'){
_confirgList[1].options.options = [
_configList[1].options.options = [
{
key: "2-1",
label: "小雪",
@ -201,7 +207,7 @@ export default {
},
];
} else if(info.eventSubclass === '10-3'){
_confirgList[1].options.options =[
_configList[1].options.options =[
{
key: "3-1",
label: "轻雾",
@ -228,7 +234,7 @@ export default {
//
if (info.eventType === 4){
if(info.dcEventTrafficCongestion.congestionCause === 1){
_confirgList[2].options.options =[
_configList[2].options.options =[
{
key: 1,
label: "主线车流量大",
@ -239,45 +245,47 @@ export default {
},
]
} else {
_confirgList[2].options.options =[{
key: 1,
_configList[2].options.options =[
{
key:3,
label: "收费站广场拥堵导致出口压车",
},
{
key: 2,
key: 4,
label: "收费站设备故障",
},
{
key: 3,
key: 5,
label: "地方道路原因",
},
{
key: 4,
key: 6,
label: "省内非集团所辖高速原因",
},
{
key: 5,
key: 7,
label: "集团所辖道路拥堵",
},
{
key: 6,
key: 8,
label: "集团所辖枢纽立交异常导致主线压车",
},
{
key: 7,
key: 9,
label: "路侧起火",
},
{
key: 8,
key: 10,
label: "备注项添加",
}]
}
]
}
}
//
if(info.eventType===7){
if(['7-6','7-7','7-8','7-9','7-10'].includes(info.eventSubclass)){
info.key0123 = 2;
_confirgList[1].options.options =[
_configList[1].options.options =[
{
key: "7-6",
label: "道路建设施工",
@ -329,15 +337,50 @@ export default {
],
"3-4": [{label: "服务区关闭",key:14}],
}
let cs = {
1: [
{
value: 1,
label: "临时关闭",
},
],
2: [
{
value: 2,
label: "限行车辆",
},
{
value: 3,
label: "限行车道",
},
{
value: 4,
label: "限行车道且限行车辆",
},
{
value: 5,
label: "间隔放行",
},
{
value: 6,
label: "并道行驶",
},
{
value: 7,
label: "限速",
},
],
};
let ad = {
1: ss[info.eventSubclass],
2: classi[info.eventSubclass]||[],
};
_confirgList[2].options.options = ad[info.dcEventTrafficControl.controlType];
_configList[2].options.options = ad[info.dcEventTrafficControl.controlType];
if(info.dcEventTrafficControl.controlCause === 3){
_confirgList[5].options.options = [
_configList[5].options.options = [
{
value: "3-1",
label: "雨",
@ -370,7 +413,7 @@ export default {
}
if(info.dcEventTrafficControl.controlCause === 4){
_confirgList[5].options.options = [
_configList[5].options.options = [
{
value: "4-1",
label: "专项工程施工",
@ -385,9 +428,10 @@ export default {
},
]
}
_configList[13].options.options = cs[info.dcEventTrafficControl.controlType]
}
this.formConfigList = _confirgList;
this.formConfigList = _configList;
this.fData = info;

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

@ -83,10 +83,12 @@ export default {
getFacilities(facilityType, config)
}
config[1].default = this.controlType;
if(value === '3-4'){
config[1].options.options = [ {
key: 1,
label: "封闭",
}]
}
let ss = {
"3-1": [{label: "主线关闭",key:1}],
"3-2": [{label: "收费站关闭",key:6}],
@ -119,6 +121,41 @@ export default {
config[2].options.options = ad[this.controlType];
config[2].default = ad[this.controlType][0].key
let cs = {
1: [
{
value: 1,
label: "临时关闭",
},
],
2: [
{
value: 2,
label: "限行车辆",
},
{
value: 3,
label: "限行车道",
},
{
value: 4,
label: "限行车道且限行车辆",
},
{
value: 5,
label: "间隔放行",
},
{
value: 6,
label: "并道行驶",
},
{
value: 7,
label: "限速",
},
],
};
config[13].options.options = cs[this.controlType]
this.formConfigList = config;
},
onSubmit() {

25
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/dispatch/EventDispatchDialog/index.vue

@ -9,19 +9,24 @@
<span> {{ startTime }} {{ endTime }} </span>
</div>
<div class="body">
<p v-for="(item, index) in data" :key="index">
{{
`${beautifyOperationTime(item.operationTime)}
${item.context}${item.operator}`
}}
</p>
<div v-for="(item, index) in data" :key="index" style="display: flex;gap:10px">
<div style="width:130px">{{ beautifyOperationTime(item.operationTime) }}</div>
<div style="width:50px">{{ item.operatorName }}</div>
<div style="width: 80px" v-if="item.processName && item.type !== 'text'">{{ item.processName }}</div>
<el-image v-if="['bmp','jpg','jpeg','png'].indexOf(item.type)!==-1" :preview-src-list="[uploadUrl +item.context]" :src="uploadUrl +item.context" style="width: 200px;height: auto"></el-image>
<video v-else-if="['mp4','avi','xmvb'].indexOf(item.type)!==-1" :src="uploadUrl +item.context" style="width: 200px;height: 160px" muted controls ></video>
<div style="flex:1" v-else>
<span style="width: 80px" v-if="item.processName">{{ item.processName }}</span>
{{ item.context }}</div>
</div>
</div>
</div>
<!-- <div style="width: 900px;height: 900px; background-color: #0F191E;"></div> -->
</BlackBar>
<div class="right">
<img src="./images/image.svg" />
<img src="./images/printer.svg" />
<!-- <img src="./images/image.svg" /> -->
<img src="./images/printer.svg" @click="print()" />
</div>
</div>
</Dialog>
@ -49,6 +54,7 @@ export default {
},
data() {
return {
uploadUrl: process.env.VUE_APP_BASE_API ,
data: [],
startTime: "",
endTime: "",
@ -66,6 +72,9 @@ export default {
},
},
methods: {
print(){
window.print();
},
initData() {
request({
url: `/system/process/eventProcessById/${this.eventId}`,

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

@ -1,7 +1,7 @@
<template>
<div class="Carousel">
<VueSlickCarousel v-if="list.length > 0" v-bind="settings" ref="CarouselRef" class="vueSlickCarousel">
<div v-for="(item, index) in list " :key="index" class="item">
<VueSlickCarousel v-if="isLoading && list.length > 0" v-bind="settings" ref="CarouselRef" class="vueSlickCarousel">
<div v-for="(item, index) in list" :key="index" class="item">
<el-image v-if="type==='picture' && index === (pageNum-1)" fit="fill" :src="item" :preview-src-list="list">
<div slot="error" class="el-image__placeholder">
</div>
@ -50,8 +50,13 @@ export default {
watch:{
list:{
handler(newVal, oldVal) {
this.total = newVal.length;
this.pageNum = 1
this.isLoading = false;
setTimeout(() => {
this.total = newVal.length;
this.pageNum = 1
this.isLoading = true;
}, 100);
},
immediate:true
}
@ -61,7 +66,7 @@ export default {
return {
total: 0,
pageNum: 1,
isLoading: false,
carouselItems: [],
settings: {
infinite: true,

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

@ -307,7 +307,7 @@ export default {
data.windSpeed = otherConfig.windSpeed;
data.visibility = otherConfig.visibility;
data.pictures = otherConfig.pictures || otherConfig.imgUrl ||[];
data.videoList = otherConfig.videoList || otherConfig.videoUrl|| [];
data.videoList = otherConfig.videoList|| otherConfig.videoUrl|| [];
// data.videoList = ['https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/mp4/xgplayer-demo-480p.mp4',
// 'https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/mp4/xgplayer-demo-480p.mp4']
}

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

@ -32,10 +32,10 @@
header-align="center" />
<!-- <ElTableColumn prop="strEventCategory" label="事件分类" width="100" align="center" /> -->
<ElTableColumn prop="planName" label="预案名称" width="180" align="center" />
<ElTableColumn prop="strEventType" label="事件类型" width="180" align="center" />
<ElTableColumn prop="strTriggerMechanism" label="细分类型" width="180" />
<ElTableColumn prop="deviceType" label="设备类型" width="200" />
<ElTableColumn prop="planName" label="预案名称" align="center" />
<ElTableColumn prop="strEventType" label="事件类型" width="210" align="center" />
<ElTableColumn prop="strTriggerMechanism" label="细分类型" width="210" />
<ElTableColumn prop="deviceType" label="设备类型" />
<!-- <ElTableColumn prop="controllableDeviceName" label="可控设备" /> -->
<ElTableColumn prop="controlCommand" label="控制指令" />
<ElTableColumn label="操作" width="210" align="center">

4
ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/smart/manage/index.vue

@ -55,11 +55,11 @@
<el-tag type="danger" size="mini" effect="dark" v-else>异常</el-tag>
</template>
</ElTableColumn>
<ElTableColumn label="设备图片" prop="deviceImg" align="center" header-align="center">
<!-- <ElTableColumn label="设备图片" prop="deviceImg" align="center" header-align="center">
<template slot-scope="scope">
<img :src="urlRoot+ scope.row.deviceImg" style="width: 30px;height: 30px;" />
</template>
</ElTableColumn>
</ElTableColumn> -->
<el-table-column
label="操作"
align="center"

48
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/analysis/day/charts.js

@ -135,61 +135,35 @@ var options = {
series: [
{
name: "上报",
type: "pictorialBar",
stack:"总量",
symbol: "rect",
symbolMargin: 2,
symbolRepeat: "fixed",
symbolClip: true,
symbolSize: [18, 6],
type: 'bar',
stack: 'total',
barWidth: 10,
barGap: "40%",
data: valueList1[0],
}, {
name: "已完成",
type: "pictorialBar",
symbolRepeat: "fixed",
symbolMargin: 2,
symbol: "rect",
stack:"总量",
symbolClip: true,
symbolSize: [18, 6],
type: 'bar',
stack: 'total',
barWidth: 10,
barGap: "40%",
data: valueList1[1],
},{
name: "已终止",
type: "pictorialBar",
symbolRepeat: "fixed",
symbolMargin: 2,
symbol: "rect",
symbolClip: true,
symbolSize: [18, 6],
type: 'bar',
stack: 'total',
barWidth: 10,
barGap: "40%",
data: valueList1[2],
},{
name: "自动结束",
type: "pictorialBar",
symbolRepeat: "fixed",
symbolMargin: 2,
symbol: "rect",
symbolClip: true,
symbolSize: [18, 6],
type: 'bar',
stack: 'total',
barWidth: 10,
barGap: "40%",
data: valueList1[3],
},
{
name: "去年同期",
type: "pictorialBar",
symbolRepeat: "fixed",
symbolMargin: 2,
symbol: "rect",
symbolClip: true,
symbolSize: [18, 6],
type: 'bar',
stack: 'total2',
barWidth: 10,
barGap: "40%",
barGap: 1,
data: valueList2,
},
{

210
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/analysis/day/chartsv1.js

@ -0,0 +1,210 @@
import { param } from "jquery";
/* 数据 */
let nameList = [
"殷家林-大学城",
"大学城-孝里",
"孝里-安城",
"安城-平阴北",
"平阴北-平阴南",
"平阴南-东平",
"东平-梁山东",
"梁山东-嘉祥西"
]; // 类别
let valueList1 = [[50,30, 52,20, 65,30, 45,10], [42,30,60,23, 45,34,55,16], [3, 5,1,0,5,2,5,4], [5,2,5,4,3, 5,1,0]];
let valueList2 = [100, 40, 60, 90, 40, 60, 45, 72];
let valueList3 = [40, 60, 45, 72, 50, 40, 60, 90];
var options = {
color:['#21ffff','#1FA5F2','#F5F430','#F67826','#29A5D9','#1CB50B'],
grid: {
left: "1%",
right: "0",
top: "60px",
bottom: "0px",
containLabel: true,
},
legend: {
top: "0%",
right: "0",
icon:'rect',
textStyle: {
color: "#fff",
},
itemHeight: 5,
itemWidth: 10,
data: [
{
name: "上报"
},
{
name: "已完成"
},
{
name: "已终止"
},
{
name: "自动结束"
},
{
name: "去年同期"
},
{
name: "平均",
icon:'diamond'
},
],
},
tooltip: {
show: true,
trigger: "axis",
formatter: function (params) {
let result = '<span style="font-size:14px;font-weight: 600;color: #20253B">'+params[0].axisValue +'</span><br>';
params.forEach(p => {
if(p.data > 0){
result += '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:' + p.color + '"></span><span style="color: #20253B">'+ p.seriesName +'</span>'+':'+(p.value)+ (p.seriesName==='平均'?'分钟':'起')+'<br>'
}
});
return result;
},
},
xAxis: {
type: "category",
data: nameList,
axisTick: {
show: false, //隐藏X轴刻度
},
axisLine: {
lineStyle: {
color: "rgba(49, 217, 255, 0.8)",
},
},
axisLabel: {
show: true,
color: "#fff",
fontSize: 10,
},
},
yAxis: [
{
type: "value",
name: "起",
nameTextStyle: {
color: "#fff",
fontSize: 10,
align: "right",
},
axisLabel: {
fontSize: 10,
color: "#fff"
},
axisLine: {
show: false,
},
axisTick: {
show: false,
},
splitLine: {
lineStyle: {
color: "rgba(49, 217, 255, 0.5)",
},
},
},
{
type: "value",
name: "分钟",
nameTextStyle: {
color: "#fff",
fontSize: 10,
align: "left",
},
axisLabel: {
fontSize: 10,
color: "#fff"
},
axisLine: {
show: false,
},
axisTick: {
show: false,
},
splitLine: {
show: false,
},
},
],
series: [
{
name: "上报",
type: "pictorialBar",
stack:"总量",
symbol: "rect",
symbolMargin: 2,
symbolRepeat: "fixed",
symbolClip: true,
symbolSize: [18, 6],
barWidth: 10,
barGap: "40%",
data: valueList1[0],
}, {
name: "已完成",
type: "pictorialBar",
symbolRepeat: "fixed",
symbolMargin: 2,
symbol: "rect",
stack:"总量",
symbolClip: true,
symbolSize: [18, 6],
barWidth: 10,
barGap: "40%",
data: valueList1[1],
},{
name: "已终止",
type: "pictorialBar",
symbolRepeat: "fixed",
symbolMargin: 2,
symbol: "rect",
symbolClip: true,
symbolSize: [18, 6],
barWidth: 10,
barGap: "40%",
data: valueList1[2],
},{
name: "自动结束",
type: "pictorialBar",
symbolRepeat: "fixed",
symbolMargin: 2,
symbol: "rect",
symbolClip: true,
symbolSize: [18, 6],
barWidth: 10,
barGap: "40%",
data: valueList1[3],
},
{
name: "去年同期",
type: "pictorialBar",
symbolRepeat: "fixed",
symbolMargin: 2,
symbol: "rect",
symbolClip: true,
symbolSize: [18, 6],
barWidth: 10,
barGap: "40%",
data: valueList2,
},
{
name: "平均",
type: "line",
symbol: 'none',
smooth: true,
yAxisIndex: 1,
lineStyle: {
type:'dashed',
width: 1
},
data: valueList3,
},
],
};
export default options;

6
ruoyi-ui/src/views/JiHeExpressway/pages/perception/eventDetection/statistics/index.vue

@ -206,9 +206,9 @@ export default {
data.windSpeed = otherConfig.windSpeed;
data.visibility = otherConfig.visibility;
//[...otherConfig.pictures,...otherConfig.pictures,...otherConfig.pictures,...otherConfig.pictures,...otherConfig.pictures,...otherConfig.pictures,...otherConfig.pictures,...otherConfig.pictures,...otherConfig.pictures,...otherConfig.pictures,...otherConfig.pictures,...otherConfig.pictures,...otherConfig.pictures,...otherConfig.pictures,...otherConfig.pictures] //
data.pictures =otherConfig.pictures || [];
data.videoList = otherConfig.videoList || [];
data.pictures = otherConfig.pictures || otherConfig.imgUrl ||[];
data.videoList = otherConfig.videoList || otherConfig.videoUrl || [];
// data.videoList = ['https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/mp4/xgplayer-demo-480p.mp4',
// 'https://sf1-cdn-tos.huoshanstatic.com/obj/media-fe/xgplayer_doc_video/mp4/xgplayer-demo-480p.mp4']
}

24
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficFlow/analysis/flow/charts.js

@ -126,32 +126,20 @@ var options = {
series: [
{
name: "客车",
type: "pictorialBar",
symbolRepeat: "fixed",
symbolMargin: 2,
symbol: "rect",
symbolClip: true,
symbolSize: [18, 6],
type: "bar",
stack: 'total',
barWidth: 10,
data: valueList1[0],
}, {
name: "货车",
type: "pictorialBar",
symbolRepeat: "fixed",
symbolMargin: 2,
symbol: "rect",
symbolClip: true,
symbolSize: [18, 6],
type: "bar",
stack: 'total',
barWidth: 10,
data: valueList1[1],
},{
name: "专项车",
type: "pictorialBar",
symbolRepeat: "fixed",
symbolMargin: 2,
symbol: "rect",
symbolClip: true,
symbolSize: [18, 6],
type: "bar",
stack: 'total',
barWidth: 10,
data: valueList1[2],
},

172
ruoyi-ui/src/views/JiHeExpressway/pages/perception/trafficFlow/analysis/flow/chartsv1.js

@ -0,0 +1,172 @@
import { param } from "jquery";
/* 数据 */
let nameList = [
"殷家林-大学城",
"大学城-孝里",
"孝里-安城",
"安城-平阴北",
"平阴北-平阴南",
"平阴南-东平",
"东平-梁山东",
"梁山东-嘉祥西"
]; // 类别
let valueList1 = [[50,30, 52,20, 65,30, 45,10], [42,30,60,23, 45,34,55,16], [3, 5,1,0,5,2,5,4], [5,2,5,4,3, 5,1,0]];
let valueList2 = [100, 40, 60, 90, 40, 60, 45, 72];
let valueList3 = [40, 60, 45, 72, 50, 40, 60, 90];
var options = {
color:['#21ffff','#1FA5F2','#F67826','#1CB50B'],
grid: {
left: "1%",
right: "0",
top: "60px",
bottom: "0px",
containLabel: true,
},
legend: {
top: "0%",
right: "0",
textStyle: {
color: "#fff",
},
itemHeight: 5,
itemWidth: 10,
data: [
{
name: "客车",
},
{
name: "货车"
},
{
name: "专项车"
},
{
name: "去年同期"
},
],
},
tooltip: {
show: true,
trigger: "axis",
formatter: function (params) {
let result = '<span style="font-size:14px;font-weight: 600;color: #20253B">'+params[0].axisValue +'</span><br>';
params.forEach(p => {
result += '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:' + p.color + '"></span><span style="color: #20253B">'+ p.seriesName +'</span>'+':'+(p.value)+ '辆<br>'
});
return result;
},
},
xAxis: {
type: "category",
data: nameList,
axisTick: {
show: false, //隐藏X轴刻度
},
axisLine: {
lineStyle: {
color: "rgba(49, 217, 255, 0.8)",
},
},
axisLabel: {
show: true,
color: "#fff",
fontSize: 10,
formatter:function(value)
{
var ret = "";//拼接加\n返回的类目项
var maxLength = 4;//每项显示文字个数
var valLength = value.length;//X轴类目项的文字个数
var rowN = Math.ceil(valLength / maxLength); //类目项需要换行的行数
if (rowN > 1)//如果类目项的文字大于3,
{
for (var i = 0; i < rowN; i++) {
var temp = "";//每次截取的字符串
var start = i * maxLength;//开始截取的位置
var end = start + maxLength;//结束截取的位置
//这里也可以加一个是否是最后一行的判断,但是不加也没有影响,那就不加吧
temp = value.substring(start, end) + "\n";
ret += temp; //凭借最终的字符串
}
return ret;
}
else {
return value;
}
}
},
},
yAxis: [
{
type: "value",
name: "辆",
nameTextStyle: {
color: "#fff",
fontSize: 10,
align: "right",
},
axisLabel: {
fontSize: 10,
color: "#fff"
},
axisLine: {
show: false,
},
axisTick: {
show: false,
},
splitLine: {
lineStyle: {
color: "rgba(49, 217, 255, 0.5)",
},
},
},
],
series: [
{
name: "客车",
type: "pictorialBar",
symbolRepeat: "fixed",
symbolMargin: 2,
symbol: "rect",
symbolClip: true,
symbolSize: [18, 6],
barWidth: 10,
data: valueList1[0],
}, {
name: "货车",
type: "pictorialBar",
symbolRepeat: "fixed",
symbolMargin: 2,
symbol: "rect",
symbolClip: true,
symbolSize: [18, 6],
barWidth: 10,
data: valueList1[1],
},{
name: "专项车",
type: "pictorialBar",
symbolRepeat: "fixed",
symbolMargin: 2,
symbol: "rect",
symbolClip: true,
symbolSize: [18, 6],
barWidth: 10,
data: valueList1[2],
},
{
name: "去年同期",
type: "line",
symbol: 'none',
smooth: true,
lineStyle: {
type:'dashed',
width: 1
},
data: valueList3,
},
],
};
export default options;

93
ruoyi-ui/src/views/JiHeExpressway/utils/enum_event/PresetFormItems.js

@ -831,9 +831,13 @@ export const locationMode = {
const { data, formList } = args.slice(-1)[0];
if (data.dcEventAccident) {
data.dcEventAccident.facilityId = null;
data.dcEventAccident.location = null;
data.dcEventAccident.rampId = null;
}
if (data.dcEventVehicleAccident) {
data.dcEventVehicleAccident.facilityId = null;
data.dcEventVehicleAccident.location = null;
data.dcEventVehicleAccident.rampId = null;
}
let facilityType = 1;
@ -1257,40 +1261,43 @@ export const congestionCause = {
},
ons: {
input(value, ...args) {
const { formList } = args.slice(-1)[0];
const { data, formList } = args.slice(-1)[0];
if(data.dcEventTrafficCongestion.detailedReasons){
data.dcEventTrafficCongestion.detailedReasons = null;
}
const config = formList.find((it) => (it.key == "detailedReasons"||it.key === 'dcEventTrafficCongestion.detailedReasons'));
let ad = {
1: [
{
key: 1,
key:3,
label: "收费站广场拥堵导致出口压车",
},
{
key: 2,
key: 4,
label: "收费站设备故障",
},
{
key: 3,
key: 5,
label: "地方道路原因",
},
{
key: 4,
key: 6,
label: "省内非集团所辖高速原因",
},
{
key: 5,
key: 7,
label: "集团所辖道路拥堵",
},
{
key: 6,
key: 8,
label: "集团所辖枢纽立交异常导致主线压车",
},
{
key: 7,
key: 9,
label: "路侧起火",
},
{
key: 8,
key: 10,
label: "备注项添加",
},
],
@ -1318,49 +1325,95 @@ export const congestionCause = {
};
export const locationSelectStr = [
{
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: "出口内广场",
},
];
export const locationSelect = [
{
value: "1",
value: 1,
label: "入口车道",
},
{
value: "2",
value: 2,
label: "入口匝道",
},
{
value: "3",
value: 3,
label: "入口",
},
{
value: "4",
value: 4,
label: "入口内广场",
},
{
value: "5",
value: 5,
label: "出口车道",
},
{
value: "6",
value: 6,
label: "出口匝道",
},
{
value: "7",
value: 7,
label: "外广场",
},
{
value: "8",
value: 8,
label: "出口",
},
{
value: "9",
value: 9,
label: "(站外)入口匝道",
},
{
value: "10",
value: 10,
label: "(站外)出口匝道",
},
{
value: "11",
value: 11,
label: "出口内广场",
},
];

85
ruoyi-ui/src/views/JiHeExpressway/utils/enum_event/data.js

@ -41,10 +41,6 @@ export const configList = {
required: true,
options: {
options: [
{
value: "选项1",
label: "黄金糕",
},
],
},
visible: (data) => {
@ -86,8 +82,8 @@ export const configList = {
},
ons: {
change(value, ...args) {
const { formList } = args.slice(-1)[0];
const { data, formList } = args.slice(-1)[0];
data.dcEventAccident.rampId = null;
//匝道
request({
url: `/system/ramp/listAll?facilityId=${value}`,
@ -153,7 +149,7 @@ export const configList = {
required: true,
options: {
placeholder: "收费站地点",
options: PresetFormItems.locationSelect,
options: PresetFormItems.locationSelectStr,
},
visible: (data) => {
if (data?.dcEventAccident?.locationType == 4) {
@ -281,8 +277,8 @@ export const configList = {
},
ons: {
change(value, ...args) {
const { formList } = args.slice(-1)[0];
const { data, formList } = args.slice(-1)[0];
data.dcEventVehicleAccident.rampId = null;
//匝道
request({
url: `/system/ramp/listAll?facilityId=${value}`,
@ -555,33 +551,33 @@ export const configList = {
let cs = {
1: [
{
value: "1",
value: 1,
label: "临时关闭",
},
],
2: [
{
value: "2",
value: 2,
label: "限行车辆",
},
{
value: "3",
value: 3,
label: "限行车道",
},
{
value: "4",
value: 4,
label: "限行车道且限行车辆",
},
{
value: "5",
value: 5,
label: "间隔放行",
},
{
value: "6",
value: 6,
label: "并道行驶",
},
{
value: "7",
value: 7,
label: "限速",
},
],
@ -789,8 +785,8 @@ export const configList = {
},
ons: {
change(value, ...args) {
const { formList } = args.slice(-1)[0];
const { data, formList } = args.slice(-1)[0];
data.dcEventTrafficControl.rampId = null;
//匝道
request({
url: `/system/ramp/listAll?facilityId=${value}`,
@ -1057,6 +1053,9 @@ export const configList = {
if (data.dcEventTrafficCongestion) {
data.dcEventTrafficCongestion.facilityId = null;
}
if(data.dcEventTrafficCongestion.rampId){
data.dcEventTrafficCongestion.rampId = null;
}
let facilityType = 1;
if (value == "4-2") {
facilityType = 4;
@ -1087,35 +1086,35 @@ export const configList = {
activeColor: "linear-gradient(180deg, #37E7FF 0%, #009BCC 100%)",
options: [
{
key:1,
key:3,
label: "收费站广场拥堵导致出口压车",
},
{
key: 2,
key: 4,
label: "收费站设备故障",
},
{
key: 3,
key: 5,
label: "地方道路原因",
},
{
key: 4,
key: 6,
label: "省内非集团所辖高速原因",
},
{
key: 5,
key: 7,
label: "集团所辖道路拥堵",
},
{
key: 6,
key: 8,
label: "集团所辖枢纽立交异常导致主线压车",
},
{
key: 7,
key: 9,
label: "路侧起火",
},
{
key: 8,
key: 10,
label: "备注项添加",
},
],
@ -1123,14 +1122,13 @@ export const configList = {
ons: {
input(value, ...args) {
const { data, formList } = args.slice(-1)[0];
if (data.dcEventTrafficCongestion) {
data.dcEventTrafficCongestion.facilityId = null;
}
// if (data.dcEventTrafficCongestion) {
// data.dcEventTrafficCongestion.facilityId = null;
// }
if (
data.dcEventTrafficCongestion.congestionCause == 1 &&
value == 2
) {
console.log("value2", value);
//路网设施 1 收费站 2 桥梁 3 互通立交 4 枢纽立交 5 隧道 6 服务区
request({
url: `/business/facility/query?facilityType=1`,
@ -1185,11 +1183,7 @@ export const configList = {
required: true,
options: {
options: [
{
value: "选项1",
label: "黄金糕",
},
],
],
},
visible: (data) => {
if (
@ -1258,7 +1252,7 @@ export const configList = {
},
{
label: "地点类型:",
key: "locationType",
key: "dcEventTrafficCongestion.locationType",
type: "RadioGroup",
isAlone: true,
required: true,
@ -1318,7 +1312,7 @@ export const configList = {
],
},
visible: (data) => {
if (data?.eventSubclass == "4-1" && data?.locationType == 1) {
if (data?.eventSubclass !== "4-1" || (data?.eventSubclass == "4-1" && data?.dcEventTrafficCongestion.locationType == 1)) {
return true;
}
return false;
@ -1385,7 +1379,7 @@ export const configList = {
],
},
visible: (data) => {
if (data?.eventSubclass == "4-1" && data?.locationType == 2) {
if (data?.eventSubclass == "4-1" && data?.dcEventTrafficCongestion.locationType == 2) {
return true;
}
return false;
@ -1398,12 +1392,7 @@ export const configList = {
isAlone: false,
required: true,
options: {
options: [
{
value: "选项1",
label: "黄金糕",
},
],
options: [ ],
},
visible: (data) => {
if (data?.eventSubclass == "4-2") {
@ -1413,8 +1402,8 @@ export const configList = {
},
ons: {
change(value, ...args) {
const { formList } = args.slice(-1)[0];
const { data, formList } = args.slice(-1)[0];
data.dcEventTrafficCongestion.rampId = null;
//匝道
request({
url: `/system/ramp/listAll?facilityId=${value}`,
@ -1926,8 +1915,8 @@ export const configList = {
},
ons: {
change(value, ...args) {
const { formList } = args.slice(-1)[0];
const { data, formList } = args.slice(-1)[0];
data.dcEventConstruction.rampId = null;
//匝道
request({
url: `/system/ramp/listAll?facilityId=${value}`,

4
ruoyi-ui/vue.config.js

@ -36,13 +36,13 @@ module.exports = {
proxy: {
// detail: https://cli.vuejs.org/config/#devserver-proxy
[process.env.VUE_APP_BASE_API]: {
target: `http://127.0.0.1:8087`,
// target: `http://127.0.0.1:8087`,
// target: `http://10.168.66.196:8087`, //刘文阁
// target: `http://10.168.68.42:8087`, //王思祥
// target: `http://10.168.72.174:8087`, //赵祥龙
// target: `http://10.168.65.156:8097`, //孟凡峰
// target: `http://10.168.79.46:8089`, //王家宝
// target: `http://10.168.77.128:8087`, //王兴琳
target: `http://10.168.77.128:8087`, //王兴琳
changeOrigin: true,
pathRewrite: {
["^" + process.env.VUE_APP_BASE_API]: "",

Loading…
Cancel
Save