Commit 21dcae1b authored by yanzhongrong's avatar yanzhongrong

Merge branch 'dev' of http://39.105.40.203/root/web-monitor into dev

parents e4608fb9 fcba4323
...@@ -41,7 +41,7 @@ if (!server) { ...@@ -41,7 +41,7 @@ if (!server) {
} }
const basePath = '/home' //服务器网站根目录 const basePath = '/home' //服务器网站根目录
let baseDir = '/changfa/app/apache-tomcat-8.5.56new/webapps/dist' //项目目录名称 let baseDir = '/changfa/app/apache-tomcat-8.5.5new/webapps/dist' //项目目录名称8.5.5new
let back_up_dir = '' //备份目录名称,需手动创建,可选,注意目录名后有斜杠 比如 back_up/ let back_up_dir = '' //备份目录名称,需手动创建,可选,注意目录名后有斜杠 比如 back_up/
const bakDirName = baseDir + '.bak' + moment(new Date()).format('YYYY-M-D-HH:mm:ss') //备份文件名 const bakDirName = baseDir + '.bak' + moment(new Date()).format('YYYY-M-D-HH:mm:ss') //备份文件名
const buildPath = path.resolve('./dist') //本地项目编译后的文件目录 const buildPath = path.resolve('./dist') //本地项目编译后的文件目录
......
<template> <template>
<div id="app"> <div id="app">
<router-view />
<!-- <audio ref="audio" id="my_audio" src="./assets/audio/19000.wav" controls autoplay hidden="hidden"/> --> <router-view />
<audio ref="audio" id="my_audio" src="./assets/audio/19000.wav" controls autoplay hidden="hidden"/>
<transition name="tipalerm"> <transition name="tipalerm">
<div class="tips" v-if="tflag"> <div class="tips" v-if="tflag">
<p>提示</p> <p>提示</p>
...@@ -64,16 +65,15 @@ export default { ...@@ -64,16 +65,15 @@ export default {
}, },
mounted() { mounted() {
let audioPlay = document.getElementById("my_audio"); let audioPlay = document.getElementById("my_audio");
this.websocket = socket({ // this.websocket = socket({
onmessage: this.receiveMessage, // onmessage: this.receiveMessage,
}); // });
EventBus.$on("dialogAlarm", (data) => { EventBus.$on("dialogAlarm", (data) => {
// 接收消息之后 声音弹窗显示 // 接收消息之后 声音弹窗显示
// audioPlay.play(); audioPlay.play();
this.msg = data; this.msg = data;
this.levelcolor(); this.levelcolor();
// console.log(data);
this.tflag = true; this.tflag = true;
setTimeout(() => { setTimeout(() => {
this.tflag = false; this.tflag = false;
...@@ -91,32 +91,27 @@ export default { ...@@ -91,32 +91,27 @@ export default {
watch: { watch: {
$route(to, from) { $route(to, from) {
if (to.path == "/login") { if (to.path == "/login") {
this.websocket.close(); setTimeout(this.closeWebsocket(),300)
// this.websocket.close()
console.log("在登录页"); console.log("在登录页");
} }
}, },
usertoken: { usertoken: {
immediate: true, immediate: true,
handler(newV) { handler(newV) {
if (newV) { if (newV) {
this.closeWebsocket();
this.websocket = socket({ if (newV != '') {
this.websocket = socket({
onmessage: this.receiveMessage, onmessage: this.receiveMessage,
}); });
} else{
this.closeWebsocket();
}
} }
}, },
}, },
// userId: {
// immediate: true,
// handler(newV) {
// if (newV) {
// this.closeWebsocket();
// this.websocket = socket({
// onmessage: this.receiveMessage,
// });
// }
// },
// },
}, },
}; };
</script> </script>
...@@ -137,7 +132,7 @@ export default { ...@@ -137,7 +132,7 @@ export default {
transform: translateX(200px); transform: translateX(200px);
} }
.tips { .tips {
width: 150px; width: 160px;
height: 120px; height: 120px;
font-size: 14px; font-size: 14px;
letter-spacing: 1px; letter-spacing: 1px;
......
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1648197448165" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="3164" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
</style></defs><path d="M862.709333 116.042667a32 32 0 1 1 45.248 45.248L455.445333 613.813333a32 32 0 1 1-45.258666-45.258666L862.709333 116.053333zM853.333333 448a32 32 0 0 1 64 0v352c0 64.8-52.533333 117.333333-117.333333 117.333333H224c-64.8 0-117.333333-52.533333-117.333333-117.333333V224c0-64.8 52.533333-117.333333 117.333333-117.333333h341.333333a32 32 0 0 1 0 64H224a53.333333 53.333333 0 0 0-53.333333 53.333333v576a53.333333 53.333333 0 0 0 53.333333 53.333333h576a53.333333 53.333333 0 0 0 53.333333-53.333333V448z" p-id="3165"></path></svg>
\ No newline at end of file
<?xml version="1.0" standalone="no"?><!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg t="1648197436923" class="icon" viewBox="0 0 1024 1024" version="1.1" xmlns="http://www.w3.org/2000/svg" p-id="2353" xmlns:xlink="http://www.w3.org/1999/xlink" width="200" height="200"><defs><style type="text/css">@font-face { font-family: feedback-iconfont; src: url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff2?t=1630033759944") format("woff2"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.woff?t=1630033759944") format("woff"), url("//at.alicdn.com/t/font_1031158_u69w8yhxdu.ttf?t=1630033759944") format("truetype"); }
</style></defs><path d="M819.823 83.694H206.991c-67.703 0-122.588 54.885-122.588 122.588v612.833c0 67.703 54.885 122.588 122.588 122.588h612.833c67.703 0 122.588-54.885 122.588-122.588V206.282c-0.001-67.703-54.885-122.588-122.589-122.588z m-124.435 63.313v241.142H331.772V147.007h363.616z m185.787 672.274c0.027 33.765-27.323 61.158-61.088 61.185H207.133c-16.389 0-31.864-6.297-43.454-17.887s-18.039-26.91-18.039-43.298v-612.94c0.061-33.923 27.57-61.395 61.493-61.41h61.327v245.294c-0.05 33.771 27.286 61.187 61.057 61.237h367.888c33.853 0 61.299-27.387 61.299-61.237V144.931h61.206c33.872 0.036 61.301 27.524 61.265 61.396V819.281z" fill="" p-id="2354"></path><path d="M574.817 329.936c17.483 0 31.656-14.173 31.656-31.656v-61.292c0-17.483-14.173-31.656-31.656-31.656s-31.656 14.173-31.656 31.656v61.292c0 17.483 14.173 31.656 31.656 31.656z" fill="" p-id="2355"></path></svg>
\ No newline at end of file
<template> <template>
<section class="app-main"> <section class="app-main">
<transition name="fade-transform" mode="out-in"> <transition name="fade-transform" mode="out-in">
<router-view :key="key" /> <!-- <keep-alive include="Dashboard"> -->
<router-view :key="key" />
<!-- </keep-alive> -->
</transition> </transition>
</section> </section>
</template> </template>
......
...@@ -96,7 +96,11 @@ export default { ...@@ -96,7 +96,11 @@ export default {
<style lang="scss" scoped> <style lang="scss" scoped>
.navbar { .navbar {
overflow: hidden; overflow: hidden;
position: relative; position: fixed;
top: 0;
left: 0;
z-index: 5;
width: 100%;
background: #fff; background: #fff;
box-shadow: 0 1px 4px rgba(0,21,41,.08); box-shadow: 0 1px 4px rgba(0,21,41,.08);
.log { .log {
......
...@@ -53,7 +53,7 @@ export const constantRoutes = [ ...@@ -53,7 +53,7 @@ export const constantRoutes = [
path: 'dashboard', path: 'dashboard',
name: 'Dashboard', name: 'Dashboard',
component: () => import('@/views/dashboard/index'), component: () => import('@/views/dashboard/index'),
meta: { title: '首页', icon: 'homePage' } meta: { title: '首页', icon: 'homePage'}
}] }]
}, },
{ {
...@@ -73,7 +73,7 @@ export const constantRoutes = [ ...@@ -73,7 +73,7 @@ export const constantRoutes = [
path: 'device', path: 'device',
name: 'device', name: 'device',
component: () => import('@/views/alarm/device/index'), component: () => import('@/views/alarm/device/index'),
meta: { title: '设备连接告警' } meta: { title: '设备连接告警'}
} }
] ]
}, },
......
...@@ -103,4 +103,11 @@ ...@@ -103,4 +103,11 @@
opacity: 1; opacity: 1;
margin-bottom: 20px; margin-bottom: 20px;
} }
.alarmbtn,.picbtn {
margin-top: 6px;
margin-bottom: 6px;
}
.levelData{
min-width:52px;
}
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<el-button type="primary" @click="exportList">导出</el-button> <el-button type="primary" @click="exportList">导出</el-button>
</div> </div>
</div> </div>
<div v-if="isQuery"> <div v-show="isQuery">
<search @search="search" ref="reset" /> <search @search="search" ref="reset" />
</div> </div>
<el-table <el-table
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
prop="alarmInfo" prop="alarmInfo"
label="告警信息" label="告警信息"
align="center" align="center"
width="200" width="160"
> >
</el-table-column> </el-table-column>
<el-table-column <el-table-column
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
align="center" align="center"
width="105" width="105"
/> />
<el-table-column prop="confirmPerson" label="确认人" align="center" /> <el-table-column prop="confirmPerson" label="确认人" align="center" width="100" />
<el-table-column prop="confirmTime" label="确认时间" align="center" /> <el-table-column prop="confirmTime" label="确认时间" align="center" />
<el-table-column label="操作" align="center" width="100"> <el-table-column label="操作" align="center" width="100">
<template slot-scope="scope"> <template slot-scope="scope">
...@@ -177,7 +177,6 @@ import { cableTimeList, cableConfirm, cableCancel } from "../api"; ...@@ -177,7 +177,6 @@ import { cableTimeList, cableConfirm, cableCancel } from "../api";
import { exportLeakyCable } from "@/api/export"; import { exportLeakyCable } from "@/api/export";
import search from "@/views/monitor/leakageCable/components/search.vue"; import search from "@/views/monitor/leakageCable/components/search.vue";
import download from "@/utils/download"; import download from "@/utils/download";
import socket from "@/utils/websocket";
import { successAlert, warningAlert } from "@/utils/alert"; import { successAlert, warningAlert } from "@/utils/alert";
export default { export default {
data() { data() {
...@@ -210,7 +209,6 @@ export default { ...@@ -210,7 +209,6 @@ export default {
istrue: 0, istrue: 0,
searchOption: {}, searchOption: {},
exids: [], exids: [],
wsUrl: "ws://8.142.143.40:8885/websocket/1/1",
}; };
}, },
components: { search }, components: { search },
...@@ -315,29 +313,15 @@ export default { ...@@ -315,29 +313,15 @@ export default {
}, },
}, },
computed: { computed: {
// getWsMsg:{
// get(){
// return this.$store.state.websocket.webSocketMsg
// },
// set(a){
// this.$store.state.websocket.webSocketMsg=a
// }
// },
}, },
watch: { watch: {
// getWsMsg: {
// handler(newVal) {
// this.getWsMsg=!!newVal
// console.log(newVal);
// // alert("接收到webSocket推送" + newVal);
// },
// },
}, },
mounted() { mounted() {
this.getTableData(); this.getTableData();
}, },
created() { created() {
// socket({socketUrl:this.wsUrl}); console.log(this.$route.query);
this.searchOption =this.$route.query
}, },
}; };
</script> </script>
......
...@@ -18,7 +18,7 @@ ...@@ -18,7 +18,7 @@
<el-button type="primary" @click="exportList">导出</el-button> <el-button type="primary" @click="exportList">导出</el-button>
</div> </div>
</div> </div>
<div v-if="isQuery"> <div v-show="isQuery">
<search @search="search" ref="reset" /> <search @search="search" ref="reset" />
</div> </div>
<el-table <el-table
...@@ -138,9 +138,9 @@ import { deviceList, deviceConfirm, deviceCancel } from "../api"; ...@@ -138,9 +138,9 @@ import { deviceList, deviceConfirm, deviceCancel } from "../api";
import { exportConnet } from "@/api/export"; import { exportConnet } from "@/api/export";
import search from "./components/search.vue"; import search from "./components/search.vue";
import download from "@/utils/download"; import download from "@/utils/download";
import socket from "@/utils/websocket";
import { successAlert, warningAlert } from "@/utils/alert"; import { successAlert, warningAlert } from "@/utils/alert";
export default { export default {
name:'device',
data() { data() {
return { return {
alarmInfo: "", alarmInfo: "",
...@@ -171,7 +171,6 @@ export default { ...@@ -171,7 +171,6 @@ export default {
istrue: 0, istrue: 0,
searchOption: {}, searchOption: {},
exids: [], exids: [],
wsUrl: "ws://8.142.143.40:8885/websocket/1/2",
}; };
}, },
components: { search }, components: { search },
...@@ -220,7 +219,6 @@ export default { ...@@ -220,7 +219,6 @@ export default {
deviceList(param).then((res) => { deviceList(param).then((res) => {
let list = res.records || []; let list = res.records || [];
this.tableData = list; this.tableData = list;
console.log(this.tableData);
this.total = res.total; this.total = res.total;
this.exids = list.map((i) => i.id); this.exids = list.map((i) => i.id);
if (this.istrue == 1) { if (this.istrue == 1) {
...@@ -285,7 +283,8 @@ export default { ...@@ -285,7 +283,8 @@ export default {
this.getTableData(); this.getTableData();
}, },
created() { created() {
// socket({socketUrl:this.wsUrl}); console.log(this.$route.query);
this.searchOption =this.$route.query
}, },
}; };
</script> </script>
......
...@@ -2,11 +2,11 @@ import request from '@/utils/request' ...@@ -2,11 +2,11 @@ import request from '@/utils/request'
const path = { const path = {
treeBaseInfo: '/home/treeBaseInfo', treeBaseInfo: '/home/treeBaseInfo',
railWayOpen: '/railWay/updateIsOpen', railWayOpen: '/railWay/updateRailWay',
siteOpen: '/site/updateIsOpen', siteOpen: '/site/updateSite',
fsuOpen: '/fsu/updateIsOpen', fsuOpen: '/fsu/updateFsu',
monitorEquipOpen: '/monitorEquip/updateIsOpen', monitorEquipOpen: '/monitorEquip/updateMonitorEquip',
leakyCableOpen: '/leakyCable/updateIsOpen', leakyCableOpen: '/leakyCable/updateLeakyCable',
} }
......
...@@ -5,6 +5,7 @@ export const DetailMixins = { ...@@ -5,6 +5,7 @@ export const DetailMixins = {
return { return {
form: {}, form: {},
flag: true, flag: true,
formFunc: null, formFunc: null,
isOpenSelect: [{ isOpenSelect: [{
key: 0, key: 0,
...@@ -43,13 +44,9 @@ export const DetailMixins = { ...@@ -43,13 +44,9 @@ export const DetailMixins = {
computed: { computed: {
statusList() { statusList() {
if (this.form.status) { if (this.form.status) {
for (let i = 0; i < this.form.status.length; i++) { for (let i = 0; i < this.form.status.length; i++) {
if (i % 2 != 0) { if (i % 2 != 0) {
this.form.status[i].value = this.dateFormat(this.form.status[i].value, 'yyyy-MM-dd HH:mm:ss') this.form.status[i].value = this.dateFormat(this.form.status[i].value, 'yyyy-MM-dd HH:mm:ss')
} }
} }
return this.form.status return this.form.status
...@@ -67,6 +64,30 @@ export const DetailMixins = { ...@@ -67,6 +64,30 @@ export const DetailMixins = {
editbtn() { editbtn() {
this.flag = false this.flag = false
}, },
levelcolor() {
let la = document.getElementsByClassName("levelData");
for (var i = 0; i < this.statusList.length; i++) {
if (this.statusList[i].value == "连接正常") {
la[i].style.color = "green";
la[i].innerHTML = "连接正常"
} if (this.statusList[i].value == "连接异常") {
la[i].style.color = "#f00";
la[i].innerHTML = "告警"
} if (this.statusList[i].value == "正常") {
la[i].style.color = "green";
la[i].innerHTML = "正常"
} if (this.statusList[i].value == "紧急") {
la[i].style.color = "#f00";
la[i].innerHTML = "紧急告警"
} if (this.statusList[i].value == "重要") {
la[i].style.color = "#f89850";
la[i].innerHTML = "重要告警"
} if (this.statusList[i].value == "一般") {
la[i].style.color = "#ead906";
la[i].innerHTML = "一般告警"
}
}
},
dateFormat(date, format) { dateFormat(date, format) {
date = new Date(date); date = new Date(date);
var o = { var o = {
...@@ -85,6 +106,6 @@ export const DetailMixins = { ...@@ -85,6 +106,6 @@ export const DetailMixins = {
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length)); format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));
return format; return format;
} },
}, },
} }
...@@ -50,12 +50,10 @@ ...@@ -50,12 +50,10 @@
</el-col> </el-col>
<el-col :span="10"> <el-col :span="10">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="10" class="value_handle">告警</el-col> <el-col :span="10" class="value_handle" :style="acolor3">{{form.status.connectAlarm}}</el-col>
<el-col :span="10" <el-col :span="10"
><el-button class="alarmbtn" type="primary" size="mini" ><el-button class="alarmbtn" type="primary" size="mini" v-if="form.status.connectAlarm == '告警' || form.status.connectAlarm == '连接异常'"
>处理告警</el-button @click="toalarm(form.status.connectAlarm)">处理告警</el-button></el-col>
></el-col
>
</el-row> </el-row>
</el-col> </el-col>
</el-row> </el-row>
...@@ -65,13 +63,12 @@ ...@@ -65,13 +63,12 @@
</el-col> </el-col>
<el-col :span="10"> <el-col :span="10">
<el-row :gutter="20"> <el-row :gutter="20">
<el-col :span="10" class="value_handle">紧急告警</el-col> <el-col :span="10" class="value_handle" :style="acolor">{{form.status.monitorAlarm}}</el-col>
<el-col :span="10" <el-col :span="10"
><el-button class="alarmbtn" type="primary" size="mini" ><el-button class="alarmbtn" type="primary" size="mini" v-if="form.status.monitorAlarm != '正常' && form.status.monitorAlarm != '' && form.status.monitorAlarm != undefined"
>处理告警</el-button @click="toalarm(form.status.monitorAlarm)">处理告警</el-button></el-col>
></el-col
>
</el-row> </el-row>
</el-col> </el-col>
</el-row> </el-row>
</div> </div>
...@@ -137,7 +134,9 @@ ...@@ -137,7 +134,9 @@
class="savebtn" class="savebtn"
v-if="flag == true" v-if="flag == true"
@click="editbtn()" @click="editbtn()"
>编辑</el-button ><svg-icon
icon-class="edit"
/> 编辑</el-button
> >
<el-button <el-button
style="float: right; padding: 3px 0; margin-right: 20px" style="float: right; padding: 3px 0; margin-right: 20px"
...@@ -145,7 +144,9 @@ ...@@ -145,7 +144,9 @@
class="savebtn" class="savebtn"
v-else v-else
@click="savebtn()" @click="savebtn()"
>保存</el-button ><svg-icon
icon-class="save"
/> 保存</el-button
> >
</div> </div>
<div> <div>
...@@ -247,15 +248,67 @@ export default { ...@@ -247,15 +248,67 @@ export default {
mixins: [DetailMixins], mixins: [DetailMixins],
data() { data() {
return { return {
colspan:14 colspan:14,
acolor:{
color:""
},
acolor3:{
color:""
},
}; };
}, },
methods: { methods: {
savebtn() { savebtn() {
this.flag = true; this.flag = true;
console.log(this.info());
railWayOpen(this.info()).then((res) => { let params = {
console.log("铁路线"); id : this.form.baseInfo.id,
name: this.form.baseInfo.name,
isOpen : this.form.baseInfo.isOpen,
startPointName: this.form.baseInfo.startPointName,
endPointName: this.form.baseInfo.endPointName,
totalLong: this.form.baseInfo.totalLong
}
railWayOpen(params).then((res) => {
this.$message.success("修改成功");
});
},
waylevelcolor() {
if (this.form.status.monitorAlarm == '正常') {
this.acolor.color = 'green'
} else if (this.form.status.monitorAlarm == '紧急') {
this.acolor.color = '#f00'
this.form.status.monitorAlarm = '紧急告警'
} else if (this.form.status.monitorAlarm == '重要') {
this.acolor.color = '#f89850'
this.form.status.monitorAlarm = '重要告警'
} else if (this.form.status.monitorAlarm == '一般') {
this.acolor.color = '#ead906'
this.form.status.monitorAlarm = '一般告警'
}
},
waylevelcolor2() {
if (this.form.status.connectAlarm == '连接正常') {
this.acolor3.color = 'green'
} else if (this.form.status.connectAlarm == '连接异常') {
this.acolor3.color = '#f00'
this.form.status.connectAlarm = '告警'
}
},
toalarm(data){
console.log(data);
let topath = ''
if (data == '告警') {
topath = '/alarm/device'
} else{
topath = '/alarm/cableTime'
}
this.$router.push({
path: topath,
query: {
wayId :this.form.baseInfo.id
},
}); });
}, },
}, },
...@@ -264,6 +317,18 @@ export default { ...@@ -264,6 +317,18 @@ export default {
return getUserName(); return getUserName();
}, },
}, },
watch: {
form: {
immediate: true,
handler(newV) {
if (newV) {
this.waylevelcolor()
this.waylevelcolor2()
}
},
},
deep: true,
},
}; };
</script> </script>
...@@ -319,8 +384,8 @@ export default { ...@@ -319,8 +384,8 @@ export default {
} }
.value_handle { .value_handle {
color: red;
margin-right: 10px; margin-right: 10px;
min-width: 52px;
} }
.alarmbtn { .alarmbtn {
margin-top: 6px; margin-top: 6px;
......
<template> <template>
<div class="dashboard-container"> <div class="dashboard-container" v-if="form.status">
<!-- 首页 --> <!-- 首页 -->
<header class="header_title">站点({{ form.baseInfo.siteName }})</header> <header class="header_title">站点({{ form.baseInfo.siteName }})</header>
<el-row :gutter="24"> <el-row :gutter="24">
...@@ -54,7 +54,7 @@ ...@@ -54,7 +54,7 @@
class="savebtn" class="savebtn"
v-if="flag == true" v-if="flag == true"
@click="editbtn()" @click="editbtn()"
>编辑</el-button ><svg-icon icon-class="edit" /> 编辑</el-button
> >
<el-button <el-button
style="float: right; padding: 3px 0; margin-right: 20px" style="float: right; padding: 3px 0; margin-right: 20px"
...@@ -62,7 +62,7 @@ ...@@ -62,7 +62,7 @@
class="savebtn" class="savebtn"
v-else v-else
@click="savebtn()" @click="savebtn()"
>保存</el-button ><svg-icon icon-class="save" /> 保存</el-button
> >
</div> </div>
<div> <div>
...@@ -194,28 +194,26 @@ ...@@ -194,28 +194,26 @@
</div> </div>
</el-card> </el-card>
</el-col> </el-col>
<el-col :span="12" class="mb20 specialCard"> <el-col :span="12" class="mb20 specialCard" v-if="form.status">
<el-card shadow="never"> <el-card shadow="never">
<div slot="header" class="clearfix posa"> <div slot="header" class="clearfix posa">
<span>当前状态</span> <span>当前状态</span>
</div> </div>
<div> <div>
<el-row class="text" :gutter="24"> <el-row v-for="(item, i) in statusAlarmfun" class="text" :gutter="24">
<el-col :span="10"> <el-col :span="10">
<div class="item_name">设备状态</div> <div class="item_name">{{ item.name }}</div>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="8">
<div class="item_data">{{ form.status.connect }}</div> <div class="item_data levelData" >{{item.value}}</div>
</el-col>
</el-row>
<el-row class="text" :gutter="24">
<el-col :span="10">
<div class="item_name">漏缆状态</div>
</el-col>
<el-col :span="10">
<div class="item_data">{{ form.status.monitor }}</div>
</el-col> </el-col>
<el-col :span="6"
><el-button class="alarmbtn" type="primary" size="mini" v-if="item.value == '连接异常' || item.value == '紧急' || item.value == '重要' || item.value == '一般'"
@click="toalarm(item.value)" >处理告警</el-button
></el-col
>
</el-row> </el-row>
</div> </div>
</el-card> </el-card>
</el-col> </el-col>
...@@ -232,16 +230,77 @@ export default { ...@@ -232,16 +230,77 @@ export default {
data() { data() {
return { return {
flag: true, flag: true,
colspan:14 colspan: 14,
}; };
}, },
methods: { methods: {
savebtn() { savebtn() {
this.flag = true; this.flag = true;
siteOpen(this.info()).then((res) => { siteOpen(this.info()).then((res) => {
console.log("站点"); this.$message.success("修改成功");
}); });
}, },
levelcolor2() {
let la = document.getElementsByClassName("levelData");
for (var i = 0; i < this.statusAlarmfun.length; i++) {
if (la[i].innerHTML == "连接正常") {
la[i].style.color = "green";
la[i].innerHTML = "连接正常"
} if (la[i].innerHTML == "连接异常") {
la[i].style.color = "#f00";
la[i].innerHTML = "告警"
} if (la[i].innerHTML == "正常") {
la[i].style.color = "green";
} if (la[i].innerHTML == "紧急") {
la[i].style.color = "#f00";
} if (la[i].innerHTML == "重要") {
la[i].style.color = "#f89850";
la[i].innerHTML = "重要告警"
} if (la[i].innerHTML == "一般") {
la[i].style.color = "#ead906";
la[i].innerHTML = "一般告警"
}
}
},
toalarm(data){
console.log(data);
let topath = ''
if (data == '告警') {
topath = '/alarm/device'
} else{
topath = '/alarm/cableTime'
}
this.$router.push({
path: topath,
query: {
siteId :this.form.baseInfo.id
},
});
},
},
mounted() {},
computed: {
statusAlarmfun() {
if (this.form.status) {
return this.form.status;
}
},
},
watch: {
statusAlarmfun: {
immediate: true,
handler(newV) {
if (newV) {
this.$nextTick(function () {
this.levelcolor2();
});
}
},
},
}, },
}; };
</script> </script>
......
...@@ -40,13 +40,15 @@ ...@@ -40,13 +40,15 @@
<el-card shadow="never"> <el-card shadow="never">
<div slot="header" class="clearfix posa"> <div slot="header" class="clearfix posa">
<span>基础信息</span> <span>基础信息</span>
<el-button <el-button
style="float: right; padding: 3px 0; margin-right: 20px" style="float: right; padding: 3px 0; margin-right: 20px"
type="text" type="text"
class="savebtn" class="savebtn"
v-if="flag == true" v-if="flag == true"
@click="editbtn()" @click="editbtn()"
>编辑</el-button ><svg-icon
icon-class="edit"
/> 编辑</el-button
> >
<el-button <el-button
style="float: right; padding: 3px 0; margin-right: 20px" style="float: right; padding: 3px 0; margin-right: 20px"
...@@ -54,7 +56,9 @@ ...@@ -54,7 +56,9 @@
class="savebtn" class="savebtn"
v-else v-else
@click="savebtn()" @click="savebtn()"
>保存</el-button ><svg-icon
icon-class="save"
/> 保存</el-button
> >
</div> </div>
<div> <div>
...@@ -222,9 +226,14 @@ ...@@ -222,9 +226,14 @@
<el-col :span="10"> <el-col :span="10">
<div class="item_name">{{ item.name }}</div> <div class="item_name">{{ item.name }}</div>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="8">
<div class="item_data">{{ item.value }}</div> <div class="item_data levelData">{{ item.value }}</div>
</el-col> </el-col>
<el-col :span="6" >
<el-button class="alarmbtn" type="primary" size="mini"
v-if="item.value == '连接异常' || item.value == '紧急' || item.value == '重要' || item.value == '一般'"
@click="toalarm(item)" >处理告警</el-button>
</el-col>
</el-row> </el-row>
</div> </div>
</el-card> </el-card>
...@@ -241,7 +250,8 @@ export default { ...@@ -241,7 +250,8 @@ export default {
name: "Dashboard", name: "Dashboard",
data() { data() {
return { return {
colspan:14 colspan:14,
}; };
}, },
mixins: [DetailMixins], mixins: [DetailMixins],
...@@ -249,10 +259,39 @@ export default { ...@@ -249,10 +259,39 @@ export default {
savebtn() { savebtn() {
this.flag = true; this.flag = true;
fsuOpen(this.info()).then((res) => { fsuOpen(this.info()).then((res) => {
console.log("fsu"); this.$message.success("修改成功");
});
},
toalarm(item){
let topath = ''
let toquery = {}
if (item.name == '设备状态') {
topath = '/alarm/device'
toquery = { fsuId:this.form.baseInfo.id }
} else{
topath = '/alarm/cableTime'
toquery = { alarmTargetName:item.name }
}
this.$router.push({
path: topath,
query: toquery,
}); });
}, },
}, },
watch: {
statusList: {
immediate: true,
handler(newV) {
if (newV) {
this.$nextTick(function () {
this.levelcolor();
});
}
},
},
},
mounted() {}, mounted() {},
}; };
</script> </script>
......
...@@ -34,13 +34,15 @@ ...@@ -34,13 +34,15 @@
<el-card shadow="never"> <el-card shadow="never">
<div slot="header" class="clearfix posa"> <div slot="header" class="clearfix posa">
<span>基础信息</span> <span>基础信息</span>
<el-button <el-button
style="float: right; padding: 3px 0; margin-right: 20px" style="float: right; padding: 3px 0; margin-right: 20px"
type="text" type="text"
class="savebtn" class="savebtn"
v-if="flag == true" v-if="flag == true"
@click="editbtn()" @click="editbtn()"
>编辑</el-button ><svg-icon
icon-class="edit"
/> 编辑</el-button
> >
<el-button <el-button
style="float: right; padding: 3px 0; margin-right: 20px" style="float: right; padding: 3px 0; margin-right: 20px"
...@@ -48,7 +50,9 @@ ...@@ -48,7 +50,9 @@
class="savebtn" class="savebtn"
v-else v-else
@click="savebtn()" @click="savebtn()"
>保存</el-button ><svg-icon
icon-class="save"
/> 保存</el-button
> >
</div> </div>
<div> <div>
...@@ -190,9 +194,14 @@ ...@@ -190,9 +194,14 @@
<el-col :span="10"> <el-col :span="10">
<div class="item_name">{{ item.name }}</div> <div class="item_name">{{ item.name }}</div>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="8">
<div class="item_data">{{ item.value }}</div> <div class="item_data levelData">{{ item.value }}</div>
</el-col> </el-col>
<el-col :span="6" >
<el-button class="alarmbtn" type="primary" size="mini"
v-if="item.value == '连接异常' || item.value == '紧急' || item.value == '重要' || item.value == '一般'"
@click="toalarm(item)" >处理告警</el-button>
</el-col>
</el-row> </el-row>
</div> </div>
</el-card> </el-card>
...@@ -209,7 +218,7 @@ export default { ...@@ -209,7 +218,7 @@ export default {
name: "Dashboard", name: "Dashboard",
data() { data() {
return { return {
colspan:14 colspan:14,
}; };
}, },
mixins: [DetailMixins], mixins: [DetailMixins],
...@@ -218,10 +227,38 @@ export default { ...@@ -218,10 +227,38 @@ export default {
savebtn() { savebtn() {
this.flag = true; this.flag = true;
monitorEquipOpen(this.info()).then((res) => { monitorEquipOpen(this.info()).then((res) => {
console.log("监测设备"); this.$message.success("修改成功");
});
},
toalarm(item){
let topath = ''
let toquery = {}
if (item.name == '设备状态') {
topath = '/alarm/device'
toquery = { monitorEquipId:this.form.baseInfo.id }
} else{
topath = '/alarm/cableTime'
toquery = { alarmTargetName :item.name }
}
this.$router.push({
path: topath,
query: toquery,
}); });
}, },
}, },
watch: {
statusList: {
immediate: true,
handler(newV) {
if (newV) {
this.$nextTick(function () {
this.levelcolor();
});
}
},
},
},
mounted() {}, mounted() {},
}; };
</script> </script>
......
...@@ -15,9 +15,12 @@ ...@@ -15,9 +15,12 @@
<el-col :span="10"> <el-col :span="10">
<div class="item_name">历史记录</div> <div class="item_name">历史记录</div>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="8">
<div class="item_data">{{ form.log.all }}</div> <div class="item_data">{{ form.log.all }}</div>
</el-col> </el-col>
<el-col :span="6" >
<el-button class="picbtn" type="success" size="mini">趋势分析图形</el-button>
</el-col>
</el-row> </el-row>
<el-row class="text" :gutter="24"> <el-row class="text" :gutter="24">
<el-col :span="10"> <el-col :span="10">
...@@ -41,7 +44,9 @@ ...@@ -41,7 +44,9 @@
class="savebtn" class="savebtn"
v-if="flag == true" v-if="flag == true"
@click="editbtn()" @click="editbtn()"
>编辑</el-button ><svg-icon
icon-class="edit"
/> 编辑</el-button
> >
<el-button <el-button
style="float: right; padding: 3px 0; margin-right: 20px" style="float: right; padding: 3px 0; margin-right: 20px"
...@@ -49,7 +54,9 @@ ...@@ -49,7 +54,9 @@
class="savebtn" class="savebtn"
v-else v-else
@click="savebtn()" @click="savebtn()"
>保存</el-button ><svg-icon
icon-class="save"
/> 保存</el-button
> >
</div> </div>
<div> <div>
...@@ -216,32 +223,37 @@ ...@@ -216,32 +223,37 @@
</div> </div>
<div> <div>
<!-- === --> <!-- === -->
<el-row class="text" :gutter="24"> <el-row class="text" :gutter="24">
<el-col :span="10"> <el-col :span="10">
<div class="item_name">漏缆状态</div> <div class="item_name">漏缆状态</div>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="8">
<div class="item_data">{{ this.timeStatus.level }}</div> <div class="item_data levelData" :style="acolor" v-if="statusl.length!=0">{{ this.statusl[0].value }}</div>
</el-col> </el-col>
<el-col :span="6" >
<el-button class="alarmbtn" type="primary" size="mini"
v-if="this.timeStatus.level == '紧急告警' || this.timeStatus.level == '重要告警' || this.timeStatus.level == '一般告警'"
@click="toalarm()" >处理告警</el-button>
</el-col>
</el-row> </el-row>
<el-row class="text" :gutter="24"> <el-row class="text" :gutter="24">
<el-col :span="10"> <el-col :span="10">
<div class="item_name">最后更新时间</div> <div class="item_name">最后更新时间</div>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="colspan">
<div class="item_data">{{ this.timeStatus.time }}</div> <div class="item_data" v-if="statusl.length!=0">{{ this.statusl[1].value }}</div>
</el-col> </el-col>
</el-row> </el-row>
<el-row v-for="(item, i) in leakyList" class="text" :gutter="24"> <el-row v-for="(item, i) in long" class="text" :gutter="24">
<el-col :span="10"> <el-col :span="10">
<div class="item_name"> <div class="item_name">
距({{ form.baseInfo.leakyCableDescribe }}方向){{ 距({{ form.baseInfo.leakyCableDescribe }}方向){{
item.name item.value
}} }}
</div> </div>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="colspan">
<div class="item_data">驻波比:{{ item.value }}</div> <div class="item_data">驻波比:{{ zhubobi[i].value }}</div>
</el-col> </el-col>
</el-row> </el-row>
...@@ -251,11 +263,15 @@ ...@@ -251,11 +263,15 @@
<el-col :span="10"> <el-col :span="10">
<div class="item_name">百米损耗</div> <div class="item_name">百米损耗</div>
</el-col> </el-col>
<el-col :span="10"> <el-col :span="8">
<div class="item_data"> <div class="item_data">
{{ form.baseInfo.hundredMetersLoss }} {{ form.baseInfo.hundredMetersLoss }}
</div> </div>
</el-col> </el-col>
<el-col :span="6" >
<el-button class="picbtn" type="success" size="mini" >生成图形</el-button>
</el-col>
</el-row> </el-row>
</div> </div>
</el-card> </el-card>
...@@ -266,57 +282,108 @@ ...@@ -266,57 +282,108 @@
<script> <script>
import { DetailMixins } from "./mixins"; import { DetailMixins } from "./mixins";
import { leakyCableOpen } from "../api"; import { leakyCableOpen } from "../api";
export default { export default {
name: "Dashboard",
data() { data() {
return { return {
colspan:14, colspan:14,
acolor:{
color:""
},
leakyList: [], leakyList: [],
timeStatus: {}, timeStatus: {},
zhubobi:[],
long:[],
statusl:[]
}; };
}, },
mixins: [DetailMixins], mixins: [DetailMixins],
methods: { methods: {
savebtn() { savebtn() {
this.flag = true; this.flag = true;
console.log(this.info()); let params = {
leakyCableOpen(this.info()).then((res) => { id : this.form.baseInfo.id,
console.log("漏缆"); isOpen : this.form.baseInfo.isOpen,
hundredMetersLoss : this.form.baseInfo.hundredMetersLoss
}
leakyCableOpen(params).then((res) => {
this.$message.success("修改成功");
});
},
leakylevelcolor() {
if (this.timeStatus.level == '正常') {
this.acolor.color = 'green'
} else if (this.timeStatus.level == '紧急') {
this.acolor.color = '#f00'
this.timeStatus.level = '紧急告警'
} else if (this.timeStatus.level == '重要') {
this.acolor.color = '#f89850'
this.timeStatus.level = '重要告警'
} else if (this.timeStatus.level == '一般') {
this.acolor.color = '#ead906'
this.timeStatus.level = '一般告警'
}
},
toalarm(){
this.$router.push({
path: "/alarm/cableTime",
query: {
alarmTargetName : this.form.baseInfo.leakyCableDescribe
},
}); });
}, },
trans() { trans() {
var temp = []; let arr1 = [],arr2 = [],arr3 = []
var asd = []; if (this.statusAlarmfun.length != 0) {
for(let i=0; i<this.statusAlarmfun.length;i++){
if (i % 2 != 0) {
if (this.statusAlarmfun[i].name=='最后更新时间') {
arr1.push(this.statusAlarmfun[i])
} else{
arr2.push(this.statusAlarmfun[i])
}
} else{
if (this.statusAlarmfun[i].name=='漏缆状态') {
arr1.push(this.statusAlarmfun[i])
} else{
arr3.push(this.statusAlarmfun[i])
}
}
}
this.statusl=arr1
this.zhubobi=arr2
this.long=arr3
}
},
},
computed: {
statusAlarmfun() {
if (this.form.status) { if (this.form.status) {
for (var i in this.form.status) { return this.form.status;
for (var j in this.form.status[i]) {
asd.push({ name: j, value: this.form.status[i][j] });
}
temp.push({ name: i, value: this.form.status[i] });
}
asd.shift();
for (var i in temp[0].value) {
this.timeStatus = { level: i, time: temp[0].value[i] };
}
this.leakyList = asd;
} }
}, },
}, },
computed: {},
watch: { watch: {
form: { statusAlarmfun: {
immediate: true, immediate: true,
handler(newV) { handler(newV) {
if (newV) { if (newV) {
this.trans(); this.trans();
this.$nextTick(function () {
this.leakylevelcolor();
});
} }
}, },
}, },
deep: true, deep: true,
}, },
mounted() {}, mounted() {
},
}; };
</script> </script>
......
...@@ -47,7 +47,7 @@ export function formInit2(data = {}) { ...@@ -47,7 +47,7 @@ export function formInit2(data = {}) {
type3: 0, type3: 0,
type4: 0, type4: 0,
type5: 0, type5: 0,
status: '', status: [],
controlLimit: "", controlLimit: "",
count: "", count: "",
...data ...data
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
<type :type="type" :curInfo="curInfo" /> <type :type="type" :curInfo="curInfo" />
</div> </div>
</div> </div>
</div> </div>
</template> </template>
...@@ -14,6 +15,7 @@ ...@@ -14,6 +15,7 @@
import { treeBaseInfo } from './api' import { treeBaseInfo } from './api'
import orgTree from '@/components/orgTree.vue' import orgTree from '@/components/orgTree.vue'
import Type from './components/index.vue' import Type from './components/index.vue'
export default { export default {
name: 'Dashboard', name: 'Dashboard',
data() { data() {
...@@ -24,7 +26,7 @@ export default { ...@@ -24,7 +26,7 @@ export default {
}, },
components: { components: {
orgTree, orgTree,
Type Type,
}, },
computed: { computed: {
}, },
......
...@@ -353,3 +353,16 @@ $light_gray: #eee; ...@@ -353,3 +353,16 @@ $light_gray: #eee;
} }
</style> </style>
<style>
/* 自动填充样式修改 */
.login-container .el-input input:-webkit-autofill{
-webkit-box-shadow: 0 0 0px 1000px transparent inset !important;
box-shadow: 0 0 0px 1000px transparent inset !important;
}
input:-internal-autofill-previewed,
input:-internal-autofill-selected {
-webkit-text-fill-color: #FFFFFF !important;
transition: background-color 5000s ease-in-out 0s !important;
}
</style>
...@@ -89,6 +89,8 @@ export default { ...@@ -89,6 +89,8 @@ export default {
return "important"; return "important";
} else if (row.alarmLevelName == "一般" && column.label == "告警级别") { } else if (row.alarmLevelName == "一般" && column.label == "告警级别") {
return "common"; return "common";
} else if (row.alarmLevelName == "正常" && column.label == "告警级别") {
return "normal"
} }
if (rowIndex % 2 == 1) { if (rowIndex % 2 == 1) {
return "stripe"; return "stripe";
...@@ -186,6 +188,9 @@ export default { ...@@ -186,6 +188,9 @@ export default {
& ::v-deep .common { & ::v-deep .common {
background-color: #ead906; background-color: #ead906;
} }
& ::v-deep .normal {
background-color: green;
}
.page { .page {
display: flex; display: flex;
align-items: center; align-items: center;
......
...@@ -122,8 +122,8 @@ export default { ...@@ -122,8 +122,8 @@ export default {
.content { .content {
border: 1px solid #e3e3e3; border: 1px solid #e3e3e3;
border-radius: 10px; border-radius: 10px;
height: 700px; // height: 700px;
overflow-y: scroll; // overflow-y: scroll;
.content-title { .content-title {
width: 100%; width: 100%;
height: 60px; height: 60px;
......
...@@ -222,7 +222,6 @@ export default { ...@@ -222,7 +222,6 @@ export default {
this.ids = this.multipleSelection.map((i) => i.id); this.ids = this.multipleSelection.map((i) => i.id);
}, },
handleView(row) { handleView(row) {
console.log(row);
this.$router.push({ this.$router.push({
path: "/detail", path: "/detail",
query: { query: {
......
...@@ -15,7 +15,6 @@ export default { ...@@ -15,7 +15,6 @@ export default {
type: 1, type: 1,
curInfo: {}, curInfo: {},
listData: [],
}; };
}, },
computed: {}, computed: {},
...@@ -28,11 +27,14 @@ export default { ...@@ -28,11 +27,14 @@ export default {
}; };
treeBaseInfo(params).then((res) => { treeBaseInfo(params).then((res) => {
let controlLimit = res.controlLimit; let controlLimit = res.controlLimit || []
controlLimit.map((item) => { if(controlLimit) {
res[`type${item.type}`] = item.sum; controlLimit.map(item => {
}); res[`type${item.type}`]= item.sum
})
}
this.curInfo = res; this.curInfo = res;
console.log(res);
}); });
}, },
}, },
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment