Browse Source

修改禅道问题

develop
王钦 4 months ago
parent
commit
af8cef8afb
  1. 16
      ruoyi-ui/src/api/MonthlyEquipment/index.js
  2. 2
      ruoyi-ui/src/views/JiHeExpressway/components/RoadStateCard/index.vue
  3. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/Broadcast/components/BroadcastReleases.vue
  4. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/Camera/components/CameraControlDialog.vue
  5. 4
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/FatigueWakesUp/index.vue
  6. 6
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/MillimeterWaveRadar/components/DeviceControlDialog.vue
  7. 13
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeFrameControl/index.vue
  8. 71
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeTraffic/index.vue
  9. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/map.js
  10. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/taskEditDialog.vue
  11. 2
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/dispatch/EventDispatchDialog/index.vue
  12. 13
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/dispatch/index.vue
  13. 5
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/EventDetailDialog/Carousel/index.vue
  14. 3
      ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/EventDetailDialog/Carousel/index_v1.vue
  15. 18
      ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/smart/statisticalAnalysis/query/index.vue
  16. 2
      ruoyi-ui/src/views/JiHeExpressway/utils/enum_event/PresetFormItems.js
  17. 39
      ruoyi-ui/src/views/system/user/profile/index.vue

16
ruoyi-ui/src/api/MonthlyEquipment/index.js

@ -52,6 +52,22 @@ export function getSystemStatusExport(query) {
url += "&direction=" +
query.direction
}
if(query.stakeMark){
url += "&stakeMark=" +
query.stakeMark
}
if(query.deviceStatus){
url += "&deviceStatus=" +
query.deviceStatus
}
if(query.useState){
url += "&useState=" +
query.useState
}
if(query.deviceIp){
url += "&deviceIp=" +
query.deviceIp
}
return request.post(
url,
{},

2
ruoyi-ui/src/views/JiHeExpressway/components/RoadStateCard/index.vue

@ -26,6 +26,8 @@
@click.native="$emit('firstBtnClick', cardData.id)">{{ getFirstBtnText(cardData.state) }}</Button>
<Button v-if="cardData.state == 4" :style="{ background: lastBtnColor, width: isShowLeft ? '50%' : '25%' }"
@click.native="$emit('lastBtnClick', cardData.id)">{{ getLastBtnText(cardData.state) }}</Button>
<Button v-if="cardData.isDiaodu == 1" :style="{ background: lastBtnColor, width: isShowLeft ? '50%' : '30%' }"
@click.native="$emit('lastBtnClick', cardData.id)">调度记录</Button>
</div>
</div>

2
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/Broadcast/components/BroadcastReleases.vue

@ -170,7 +170,7 @@ export default {
})
functions.push({
"functionId": "A1",
"functionId": "",
"params": {
"name": "task-3",
"outVol": "" + this.dataForm.outVol,

2
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/Dialogs/Camera/components/CameraControlDialog.vue

@ -1,6 +1,6 @@
<template>
<!-- margin-left: 450px;margin-top: 250px; -->
<Dialog v-model="modelVisible" title="相机控制" style="z-index: 2051;" top="50%" width="550px">
<Dialog v-model="modelVisible" title="相机控制" noneMask style="z-index: 2051;" top="50%" width="550px">
<div class="CameraControlDialog">
<div class="direction">
<div class="control-container top" @click="controlClick(21)">

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

@ -14,7 +14,7 @@
</div>
<template #footer>
<Button @click.native="onControlClick" disabled :style="dialogData.iotDeviceId?'':'background-color:#4E5969'">设备操作</Button>
<Button @click.native="onControlClick" disabled :style="(dialogData.deviceState===1 && dialogData.iotDeviceId)?'':'background-color:#A9AEB8'">设备操作</Button>
</template>
<!-- 设备操作弹窗 -->
<DeviceControlDialog v-model="deviceControlVisible" :deviceId="dialogData.iotDeviceId" :productId="dialogData.id"
@ -112,7 +112,7 @@ export default {
},
methods: {
onControlClick(){
if(this.dialogData.iotDeviceId){
if(this.dialogData.deviceState===1 && this.dialogData.iotDeviceId){
this.deviceControlVisible = true
}
},

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

@ -38,7 +38,7 @@
</Button>
</div>
<div class="body">
<Table :data="data" v-loading="loading">
<Table :data="data" v-loading="loading" height="350px">
<ElTableColumn prop="typename" label="事件类型" width="110" />
<ElTableColumn prop="stakeMark" label="桩号" width="90"></ElTableColumn>
<ElTableColumn prop="remark" label="描述" />
@ -55,7 +55,7 @@
</div>
<!-- 分页 -->
<div class="footer">
<div class="footer" style="justify-content: flex-end;width:100%;display: flex;">
<Pagination
@current-change="getData"
@size-change="onSizeChange"
@ -182,7 +182,7 @@ export default {
e.typename = WarningSubclass[e.warningType][e.warningSubclass]
e.stateName = warningStateMapping[e.warningState]
});
this.data = res.rows;
this.data = [...res.rows,...res.rows,...res.rows,...res.rows,...res.rows,...res.rows,...res.rows];
this.total = res.total;
})
},

13
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/HomeFrameControl/index.vue

@ -15,7 +15,7 @@
<el-tab-pane label="定时管控" name="2"></el-tab-pane>
<el-tab-pane label="管控记录" name="3"></el-tab-pane>
</el-tabs>
<div class="body2" style="z-index: 2003 !important;">
<div class="body2" >
<div class="title">批量控制</div>
<span class="close" @click="() => { this.activeIcon = null; }">
<i class="el-icon-close" />
@ -569,6 +569,17 @@ export default {
this.data['deviceType'] = deviceTypeDefault;
changeHandle(this.data, this.formList);
this.tabAction = '1';
//
setTimeout(() => {
let pop = document.getElementsByClassName('el-popover')
for(let i of pop){
if(i.getAttribute('aria-hidden') === 'false'){
i.style['z-index'] = '2001'
}
}
}, 100);
} else {
this.tabAction = -1;
}

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

@ -112,9 +112,9 @@ export default {
formatTooltip(val) {
if(this.marks[val]){
return this.marks[val].remark;
return this.marks[val];
} else {
return this.marks[0].remark;
return this.marks[0];
}
},
play(){
@ -156,45 +156,18 @@ export default {
} else {
this.activeIcon = type;
this.lnglats = {};
this.lnglatsNode = {};
request({
url: '/system/information/listTime',
method: 'get'
}).then(result=>{
}).then(async result=>{
if (result.code != 200) return this.$message.error(result?.msg);
this.silderVisible = true;
const style = {
color: '#9fe4fe'
}
const now = moment().format('YYYY-MM-DD HH:mm:ss');
const list = result.rows;
let marks = {0: {
style,
label: now.substr(11,5),
remark: now,
cid:0,
}};
let total = list.length>9?9:list.length;
let idx = 0;
for(let i = list.length-1; i>=0;i--){
idx++;
marks[idx] = {
style,
label: list[i].createTime.substr(11,5),
remark: list[i].createTime,
cid: list[i].id
}
}
this.max = total;
this.marks = marks;
this.showLnglat();
})
}
},
async showLnglat(){
if(!this.lnglats[this.timeTick]){
//
if(this.timeTick === 0){
//
let res = await request({ url: '/business/traffic-statistics/current/getTheCurrentCongestedSection', method: 'get'});
let aryLine = [];
res.data.forEach(e => {
@ -205,13 +178,20 @@ export default {
xyArr: lines,
})
});
this.drawThumbail(res.data);
this.lnglats[this.timeTick] = _.cloneDeep(aryLine);
this.lnglatsNode[this.timeTick] = res.data;
} else {
let res = await request({ url: `/system/information/${this.marks[this.timeTick].cid}`, method: 'get'});
let _line = JSON.parse(res.data.otherConfig)
this.lnglats[0] = _.cloneDeep(aryLine);
this.lnglatsNode[0] = res.data;
const now = moment().format('HH:mm');
let marks = {0: now};
let total = 0;
let idx = 0;
for(let i in result.data){
idx++;
total++;
marks[idx] = i
let aryLine = [];
const _line = JSON.parse(result.data[i])
_line.forEach(e => {
const lines = e.link_lng_lats.split(';').map(x=>x.split(','))
aryLine.push({
@ -220,13 +200,18 @@ export default {
xyArr: lines
})
});
this.lnglats[this.timeTick] = _.cloneDeep(aryLine);
this.lnglatsNode[this.timeTick] = _line;
this.drawThumbail(_line);
this.lnglats[idx] = _.cloneDeep(aryLine);
this.lnglatsNode[idx] = _line;
}
} else {
this.drawThumbail(this.lnglatsNode[this.timeTick]);
this.max = total;
this.marks = marks;
this.showLnglat();
})
}
},
async showLnglat(){
this.drawThumbail(this.lnglatsNode[this.timeTick] );
Vue.prototype.mapIns.addPointByArr( {pointList:[]}, 'lineLayer', true);
Vue.prototype.mapIns.removeLayerByName('lineLayer');
setTimeout(()=>{

2
ruoyi-ui/src/views/JiHeExpressway/pages/Home/components/RoadAndEvents/utils/map.js

@ -110,12 +110,10 @@ export class MarkerCluster {
}
let _stake = e.extData.stakeMark;
const state = getState(e);
console.log(e.extData,3334)
let _title = '';
if(e.extData.stakeMark && e.extData.direction){
if(e.extData.warningSubclass){
let arySubClass = e.extData.warningSubclass.split('-')
console.log(arySubClass,3334)
_title = `${e.extData.stakeMark} ${e.extData.direction==='1'?'菏泽方向':'济南方向'} ${_.find(WarningSubclassOptions[arySubClass[0]],{value:e.extData.warningSubclass}).label}事件`
} else {
_title = `${e.extData.stakeMark} ${e.extData.direction==='1'?'菏泽方向':'济南方向'} ${e.config?.item.title}事件`

2
ruoyi-ui/src/views/JiHeExpressway/pages/control/device/strategy/components/taskEditDialog.vue

@ -1,5 +1,5 @@
<template>
<Dialog v-model="modelVisible" title="修改" width="600px" label-width="120px" style="z-index: 2050;">
<Dialog v-model="modelVisible" :title="(this.mode==='edit')?'修改':'新增'" width="600px" label-width="120px" style="z-index: 2050;">
<el-form>
<el-form-item label="设备类型">
<!-- <el-radio-group v-model="searchData.deviceType" @input="onChange">

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

@ -1,5 +1,5 @@
<template>
<Dialog v-model="modelVisible" title="调度记录" width="710px">
<Dialog v-model="modelVisible" title="调度记录" width="710px" top="8%">
<div class="EventDetail">
<BlackBar class="left">
<!-- <img src="./images/test.png" style="width: 100%;" /> -->

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

@ -28,6 +28,7 @@
:cardData="item"
:isShowLeft="false"
@firstBtnClick="firstBtnClick"
@lastBtnClick="lastBtnClick"
/>
</div>
</div>
@ -52,6 +53,12 @@
<!-- "详情"弹出框 -->
<EventDetailDialog :visible="eventDetailDialogVisible" :formData="detailDialogFormData" activeName="2"
@update:value="handleClose" />
<EventDispatchDialog
:visible="eventDispatchDialogVisible"
@update:value="handleClose"
:eventId="eventId"
/>
</div>
</template>
@ -60,6 +67,7 @@ import ButtonGradient from "@screen/components/Buttons/ButtonGradient.vue";
import Pagination from "@screen/components/Pagination.vue";
import InputSearch from "@screen/components/InputSearch/index.vue";
import RoadStateCard from "@screen/components/RoadStateCard/index.vue";
import EventDispatchDialog from "./EventDispatchDialog/index";
import EventDetailDialog from "../event/EventDetailDialog/index.vue";
@ -81,6 +89,7 @@ export default {
InputSearch,
EventDetailDialog,
ButtonGradient,
EventDispatchDialog
},
data() {
return {
@ -117,6 +126,7 @@ export default {
this.total = result.total;
result.rows.forEach((it) => {
it.stringDirection = directionMapping[it.direction] || it.direction;
it.isDiaodu = 1
});
this.data = result.rows;
});
@ -151,7 +161,6 @@ export default {
});
},
lastBtnClick(id) {
console.log(id);
this.eventDispatchDialogVisible = true;
this.eventId = id;
},
@ -179,7 +188,9 @@ export default {
this.initData();
},
handleClose() {
this.eventDetailDialogVisible = false;
this.eventDispatchDialogVisible = false;
},
},
};

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

@ -2,7 +2,10 @@
<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">
<el-image v-if="type==='picture' && index === (pageNum-1)" fit="fill" :src="item" :preview-src-list="list"></el-image>
<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>
</el-image>
<Video v-if="type==='video' && index === (pageNum-1)" style="height: 100%;width:100%;" :showHeader="false" :url="item || ''" videoType="mp4" />
<div v-if="index !== (pageNum-1)" style="height: 100%;width:100%;" ></div>
</div>

3
ruoyi-ui/src/views/JiHeExpressway/pages/control/event/event/EventDetailDialog/Carousel/index_v1.vue

@ -5,6 +5,9 @@
<VueSlickCarousel v-if="pictures.length > 0" v-bind="settings" ref="CarouselRef" class="vueSlickCarousel">
<div v-for="(item, index) in pictures" :key="index" class="item" >
<el-image fit="fill" :src="item" :preview-src-list="pictures">
<div slot="error" class="image-slot">
<i class="el-icon-picture-outline"></i>
</div>
</el-image>
</div>
</VueSlickCarousel>

18
ruoyi-ui/src/views/JiHeExpressway/pages/maintenanceOperations/smart/statisticalAnalysis/query/index.vue

@ -261,9 +261,7 @@ export default {
if(this.deviceName){
params.deviceName = this.deviceName
}
if(this.direction){
params.direction = this.direction
}
request({
url: "/system/status/tablist",
method: "get",
@ -329,14 +327,18 @@ export default {
const params = {
startTime: this.startTime,
time: this.time,
type: this.devices.join(',')
}
type: this.devices.join(','),
pageNum: this.searchData.pageNum,
pageSize: this.searchData.pageSize,
orderByField:this.orderField,
orderDirection:this.order,
...this.tabelSearch
};
if(this.deviceName){
params.deviceName = this.deviceName
}
if(this.direction){
params.direction = this.direction
}
getSystemStatusExport(params)
.then((res) => {
const url = window.URL.createObjectURL(new Blob([res]));

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

@ -14,7 +14,7 @@ const stake_start = {
callback(value, data) {
if (!value ||
value==='' ||
(parseInt(value) >= 55 && parseInt(value) <= 208)
(parseInt(value) >= 54 && parseInt(value) <= 208)
){
return true;
} else {

39
ruoyi-ui/src/views/system/user/profile/index.vue

@ -88,6 +88,9 @@
</el-switch>
</el-form-item>
</el-col>
<el-col :span="4">
<Button :loading="loading" style="width:120px;margin-top: 5px;" @click.native="speak()"><i class="el-icon-headset"></i>语音测试</Button>
</el-col>
</el-row>
@ -104,10 +107,11 @@ import userInfo from "./userInfo";
import resetPwd from "./resetPwd";
import { getUserProfile } from "@/api/system/user";
import Cookies from 'js-cookie'
import Button from "@screen/components/Buttons/Button.vue";
export default {
name: "Profile",
components: { userAvatar, userInfo, resetPwd },
components: { userAvatar, userInfo, resetPwd,Button },
data() {
return {
user: {},
@ -116,7 +120,8 @@ export default {
activeTab: "userinfo",
isSound: 'on',
isNotify: 'on'
isNotify: 'on',
loading: false
};
},
created() {
@ -128,6 +133,36 @@ export default {
this.isNotify = Cookies.get('warning-notify') || 'on';
},
methods: {
speak(){
//
if(Cookies.get('warning-sound') === 'off'){
this.$message.waning('请开启【通知语音播报】')
return;
}
this.$message.success('正在播报')
this.loading=true;
setTimeout(() => {
this.loading = false
}, 6000);
const text = moment().format('YYYY-MM-DD HH:mm:ss')+' 济菏高速语音播报测试'
// SpeechSynthesisUtterance
const utterance = new SpeechSynthesisUtterance(text);
//
utterance.lang = 'zh-CN'; //
// 01
utterance.volume = 10;
// 1
utterance.rate = 1;
// "default", "female", "male"
utterance.pitch = 1;
// 使SpeechSynthesis
window.speechSynthesis.speak(utterance);
},
getUser() {
getUserProfile().then(response => {
this.user = response.data;

Loading…
Cancel
Save