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) {
}
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/
const bakDirName = baseDir + '.bak' + moment(new Date()).format('YYYY-M-D-HH:mm:ss') //备份文件名
const buildPath = path.resolve('./dist') //本地项目编译后的文件目录
......
<template>
<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">
<div class="tips" v-if="tflag">
<p>提示</p>
......@@ -64,16 +65,15 @@ export default {
},
mounted() {
let audioPlay = document.getElementById("my_audio");
this.websocket = socket({
onmessage: this.receiveMessage,
});
// this.websocket = socket({
// onmessage: this.receiveMessage,
// });
EventBus.$on("dialogAlarm", (data) => {
// 接收消息之后 声音弹窗显示
// audioPlay.play();
audioPlay.play();
this.msg = data;
this.levelcolor();
// console.log(data);
this.tflag = true;
setTimeout(() => {
this.tflag = false;
......@@ -91,32 +91,27 @@ export default {
watch: {
$route(to, from) {
if (to.path == "/login") {
this.websocket.close();
setTimeout(this.closeWebsocket(),300)
// this.websocket.close()
console.log("在登录页");
}
},
usertoken: {
immediate: true,
handler(newV) {
if (newV) {
this.closeWebsocket();
this.websocket = socket({
if (newV != '') {
this.websocket = socket({
onmessage: this.receiveMessage,
});
} else{
this.closeWebsocket();
}
}
},
},
// userId: {
// immediate: true,
// handler(newV) {
// if (newV) {
// this.closeWebsocket();
// this.websocket = socket({
// onmessage: this.receiveMessage,
// });
// }
// },
// },
},
};
</script>
......@@ -137,7 +132,7 @@ export default {
transform: translateX(200px);
}
.tips {
width: 150px;
width: 160px;
height: 120px;
font-size: 14px;
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>
<section class="app-main">
<transition name="fade-transform" mode="out-in">
<router-view :key="key" />
<!-- <keep-alive include="Dashboard"> -->
<router-view :key="key" />
<!-- </keep-alive> -->
</transition>
</section>
</template>
......
......@@ -96,7 +96,11 @@ export default {
<style lang="scss" scoped>
.navbar {
overflow: hidden;
position: relative;
position: fixed;
top: 0;
left: 0;
z-index: 5;
width: 100%;
background: #fff;
box-shadow: 0 1px 4px rgba(0,21,41,.08);
.log {
......
......@@ -53,7 +53,7 @@ export const constantRoutes = [
path: 'dashboard',
name: 'Dashboard',
component: () => import('@/views/dashboard/index'),
meta: { title: '首页', icon: 'homePage' }
meta: { title: '首页', icon: 'homePage'}
}]
},
{
......@@ -73,7 +73,7 @@ export const constantRoutes = [
path: 'device',
name: 'device',
component: () => import('@/views/alarm/device/index'),
meta: { title: '设备连接告警' }
meta: { title: '设备连接告警'}
}
]
},
......
......@@ -103,4 +103,11 @@
opacity: 1;
margin-bottom: 20px;
}
.alarmbtn,.picbtn {
margin-top: 6px;
margin-bottom: 6px;
}
.levelData{
min-width:52px;
}
......@@ -18,7 +18,7 @@
<el-button type="primary" @click="exportList">导出</el-button>
</div>
</div>
<div v-if="isQuery">
<div v-show="isQuery">
<search @search="search" ref="reset" />
</div>
<el-table
......@@ -51,7 +51,7 @@
prop="alarmInfo"
label="告警信息"
align="center"
width="200"
width="160"
>
</el-table-column>
<el-table-column
......@@ -66,7 +66,7 @@
align="center"
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 label="操作" align="center" width="100">
<template slot-scope="scope">
......@@ -177,7 +177,6 @@ import { cableTimeList, cableConfirm, cableCancel } from "../api";
import { exportLeakyCable } from "@/api/export";
import search from "@/views/monitor/leakageCable/components/search.vue";
import download from "@/utils/download";
import socket from "@/utils/websocket";
import { successAlert, warningAlert } from "@/utils/alert";
export default {
data() {
......@@ -210,7 +209,6 @@ export default {
istrue: 0,
searchOption: {},
exids: [],
wsUrl: "ws://8.142.143.40:8885/websocket/1/1",
};
},
components: { search },
......@@ -315,29 +313,15 @@ export default {
},
},
computed: {
// getWsMsg:{
// get(){
// return this.$store.state.websocket.webSocketMsg
// },
// set(a){
// this.$store.state.websocket.webSocketMsg=a
// }
// },
},
watch: {
// getWsMsg: {
// handler(newVal) {
// this.getWsMsg=!!newVal
// console.log(newVal);
// // alert("接收到webSocket推送" + newVal);
// },
// },
},
mounted() {
this.getTableData();
},
created() {
// socket({socketUrl:this.wsUrl});
console.log(this.$route.query);
this.searchOption =this.$route.query
},
};
</script>
......
......@@ -18,7 +18,7 @@
<el-button type="primary" @click="exportList">导出</el-button>
</div>
</div>
<div v-if="isQuery">
<div v-show="isQuery">
<search @search="search" ref="reset" />
</div>
<el-table
......@@ -138,9 +138,9 @@ import { deviceList, deviceConfirm, deviceCancel } from "../api";
import { exportConnet } from "@/api/export";
import search from "./components/search.vue";
import download from "@/utils/download";
import socket from "@/utils/websocket";
import { successAlert, warningAlert } from "@/utils/alert";
export default {
name:'device',
data() {
return {
alarmInfo: "",
......@@ -171,7 +171,6 @@ export default {
istrue: 0,
searchOption: {},
exids: [],
wsUrl: "ws://8.142.143.40:8885/websocket/1/2",
};
},
components: { search },
......@@ -220,7 +219,6 @@ export default {
deviceList(param).then((res) => {
let list = res.records || [];
this.tableData = list;
console.log(this.tableData);
this.total = res.total;
this.exids = list.map((i) => i.id);
if (this.istrue == 1) {
......@@ -285,7 +283,8 @@ export default {
this.getTableData();
},
created() {
// socket({socketUrl:this.wsUrl});
console.log(this.$route.query);
this.searchOption =this.$route.query
},
};
</script>
......
......@@ -2,11 +2,11 @@ import request from '@/utils/request'
const path = {
treeBaseInfo: '/home/treeBaseInfo',
railWayOpen: '/railWay/updateIsOpen',
siteOpen: '/site/updateIsOpen',
fsuOpen: '/fsu/updateIsOpen',
monitorEquipOpen: '/monitorEquip/updateIsOpen',
leakyCableOpen: '/leakyCable/updateIsOpen',
railWayOpen: '/railWay/updateRailWay',
siteOpen: '/site/updateSite',
fsuOpen: '/fsu/updateFsu',
monitorEquipOpen: '/monitorEquip/updateMonitorEquip',
leakyCableOpen: '/leakyCable/updateLeakyCable',
}
......
......@@ -5,6 +5,7 @@ export const DetailMixins = {
return {
form: {},
flag: true,
formFunc: null,
isOpenSelect: [{
key: 0,
......@@ -43,13 +44,9 @@ export const DetailMixins = {
computed: {
statusList() {
if (this.form.status) {
for (let i = 0; i < this.form.status.length; i++) {
if (i % 2 != 0) {
this.form.status[i].value = this.dateFormat(this.form.status[i].value, 'yyyy-MM-dd HH:mm:ss')
}
}
return this.form.status
......@@ -67,6 +64,30 @@ export const DetailMixins = {
editbtn() {
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) {
date = new Date(date);
var o = {
......@@ -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));
return format;
}
},
},
}
......@@ -50,12 +50,10 @@
</el-col>
<el-col :span="10">
<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-button class="alarmbtn" type="primary" size="mini"
>处理告警</el-button
></el-col
>
><el-button class="alarmbtn" type="primary" size="mini" v-if="form.status.connectAlarm == '告警' || form.status.connectAlarm == '连接异常'"
@click="toalarm(form.status.connectAlarm)">处理告警</el-button></el-col>
</el-row>
</el-col>
</el-row>
......@@ -65,13 +63,12 @@
</el-col>
<el-col :span="10">
<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-button class="alarmbtn" type="primary" size="mini"
>处理告警</el-button
></el-col
>
><el-button class="alarmbtn" type="primary" size="mini" v-if="form.status.monitorAlarm != '正常' && form.status.monitorAlarm != '' && form.status.monitorAlarm != undefined"
@click="toalarm(form.status.monitorAlarm)">处理告警</el-button></el-col>
</el-row>
</el-col>
</el-row>
</div>
......@@ -137,7 +134,9 @@
class="savebtn"
v-if="flag == true"
@click="editbtn()"
>编辑</el-button
><svg-icon
icon-class="edit"
/> 编辑</el-button
>
<el-button
style="float: right; padding: 3px 0; margin-right: 20px"
......@@ -145,7 +144,9 @@
class="savebtn"
v-else
@click="savebtn()"
>保存</el-button
><svg-icon
icon-class="save"
/> 保存</el-button
>
</div>
<div>
......@@ -247,15 +248,67 @@ export default {
mixins: [DetailMixins],
data() {
return {
colspan:14
colspan:14,
acolor:{
color:""
},
acolor3:{
color:""
},
};
},
methods: {
savebtn() {
this.flag = true;
console.log(this.info());
railWayOpen(this.info()).then((res) => {
console.log("铁路线");
let params = {
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 {
return getUserName();
},
},
watch: {
form: {
immediate: true,
handler(newV) {
if (newV) {
this.waylevelcolor()
this.waylevelcolor2()
}
},
},
deep: true,
},
};
</script>
......@@ -319,8 +384,8 @@ export default {
}
.value_handle {
color: red;
margin-right: 10px;
min-width: 52px;
}
.alarmbtn {
margin-top: 6px;
......
<template>
<div class="dashboard-container">
<div class="dashboard-container" v-if="form.status">
<!-- 首页 -->
<header class="header_title">站点({{ form.baseInfo.siteName }})</header>
<el-row :gutter="24">
......@@ -54,7 +54,7 @@
class="savebtn"
v-if="flag == true"
@click="editbtn()"
>编辑</el-button
><svg-icon icon-class="edit" /> 编辑</el-button
>
<el-button
style="float: right; padding: 3px 0; margin-right: 20px"
......@@ -62,7 +62,7 @@
class="savebtn"
v-else
@click="savebtn()"
>保存</el-button
><svg-icon icon-class="save" /> 保存</el-button
>
</div>
<div>
......@@ -194,28 +194,26 @@
</div>
</el-card>
</el-col>
<el-col :span="12" class="mb20 specialCard">
<el-col :span="12" class="mb20 specialCard" v-if="form.status">
<el-card shadow="never">
<div slot="header" class="clearfix posa">
<span>当前状态</span>
</div>
<div>
<el-row class="text" :gutter="24">
<div>
<el-row v-for="(item, i) in statusAlarmfun" class="text" :gutter="24">
<el-col :span="10">
<div class="item_name">设备状态</div>
<div class="item_name">{{ item.name }}</div>
</el-col>
<el-col :span="10">
<div class="item_data">{{ form.status.connect }}</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 :span="8">
<div class="item_data levelData" >{{item.value}}</div>
</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>
</div>
</el-card>
</el-col>
......@@ -232,16 +230,77 @@ export default {
data() {
return {
flag: true,
colspan:14
colspan: 14,
};
},
methods: {
savebtn() {
this.flag = true;
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>
......
......@@ -40,13 +40,15 @@
<el-card shadow="never">
<div slot="header" class="clearfix posa">
<span>基础信息</span>
<el-button
<el-button
style="float: right; padding: 3px 0; margin-right: 20px"
type="text"
class="savebtn"
v-if="flag == true"
@click="editbtn()"
>编辑</el-button
><svg-icon
icon-class="edit"
/> 编辑</el-button
>
<el-button
style="float: right; padding: 3px 0; margin-right: 20px"
......@@ -54,7 +56,9 @@
class="savebtn"
v-else
@click="savebtn()"
>保存</el-button
><svg-icon
icon-class="save"
/> 保存</el-button
>
</div>
<div>
......@@ -222,9 +226,14 @@
<el-col :span="10">
<div class="item_name">{{ item.name }}</div>
</el-col>
<el-col :span="10">
<div class="item_data">{{ item.value }}</div>
<el-col :span="8">
<div class="item_data levelData">{{ item.value }}</div>
</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>
</div>
</el-card>
......@@ -241,7 +250,8 @@ export default {
name: "Dashboard",
data() {
return {
colspan:14
colspan:14,
};
},
mixins: [DetailMixins],
......@@ -249,10 +259,39 @@ export default {
savebtn() {
this.flag = true;
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() {},
};
</script>
......
......@@ -34,13 +34,15 @@
<el-card shadow="never">
<div slot="header" class="clearfix posa">
<span>基础信息</span>
<el-button
<el-button
style="float: right; padding: 3px 0; margin-right: 20px"
type="text"
class="savebtn"
v-if="flag == true"
@click="editbtn()"
>编辑</el-button
><svg-icon
icon-class="edit"
/> 编辑</el-button
>
<el-button
style="float: right; padding: 3px 0; margin-right: 20px"
......@@ -48,7 +50,9 @@
class="savebtn"
v-else
@click="savebtn()"
>保存</el-button
><svg-icon
icon-class="save"
/> 保存</el-button
>
</div>
<div>
......@@ -190,9 +194,14 @@
<el-col :span="10">
<div class="item_name">{{ item.name }}</div>
</el-col>
<el-col :span="10">
<div class="item_data">{{ item.value }}</div>
<el-col :span="8">
<div class="item_data levelData">{{ item.value }}</div>
</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>
</div>
</el-card>
......@@ -209,7 +218,7 @@ export default {
name: "Dashboard",
data() {
return {
colspan:14
colspan:14,
};
},
mixins: [DetailMixins],
......@@ -218,10 +227,38 @@ export default {
savebtn() {
this.flag = true;
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() {},
};
</script>
......
......@@ -15,9 +15,12 @@
<el-col :span="10">
<div class="item_name">历史记录</div>
</el-col>
<el-col :span="10">
<el-col :span="8">
<div class="item_data">{{ form.log.all }}</div>
</el-col>
<el-col :span="6" >
<el-button class="picbtn" type="success" size="mini">趋势分析图形</el-button>
</el-col>
</el-row>
<el-row class="text" :gutter="24">
<el-col :span="10">
......@@ -41,7 +44,9 @@
class="savebtn"
v-if="flag == true"
@click="editbtn()"
>编辑</el-button
><svg-icon
icon-class="edit"
/> 编辑</el-button
>
<el-button
style="float: right; padding: 3px 0; margin-right: 20px"
......@@ -49,7 +54,9 @@
class="savebtn"
v-else
@click="savebtn()"
>保存</el-button
><svg-icon
icon-class="save"
/> 保存</el-button
>
</div>
<div>
......@@ -216,32 +223,37 @@
</div>
<div>
<!-- === -->
<el-row class="text" :gutter="24">
<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">{{ this.timeStatus.level }}</div>
<el-col :span="8">
<div class="item_data levelData" :style="acolor" v-if="statusl.length!=0">{{ this.statusl[0].value }}</div>
</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 class="text" :gutter="24">
<el-col :span="10">
<div class="item_name">最后更新时间</div>
</el-col>
<el-col :span="10">
<div class="item_data">{{ this.timeStatus.time }}</div>
<el-col :span="colspan">
<div class="item_data" v-if="statusl.length!=0">{{ this.statusl[1].value }}</div>
</el-col>
</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">
<div class="item_name">
距({{ form.baseInfo.leakyCableDescribe }}方向){{
item.name
item.value
}}
</div>
</el-col>
<el-col :span="10">
<div class="item_data">驻波比:{{ item.value }}</div>
<el-col :span="colspan">
<div class="item_data">驻波比:{{ zhubobi[i].value }}</div>
</el-col>
</el-row>
......@@ -251,11 +263,15 @@
<el-col :span="10">
<div class="item_name">百米损耗</div>
</el-col>
<el-col :span="10">
<el-col :span="8">
<div class="item_data">
{{ form.baseInfo.hundredMetersLoss }}
</div>
</el-col>
<el-col :span="6" >
<el-button class="picbtn" type="success" size="mini" >生成图形</el-button>
</el-col>
</el-row>
</div>
</el-card>
......@@ -266,57 +282,108 @@
<script>
import { DetailMixins } from "./mixins";
import { leakyCableOpen } from "../api";
export default {
name: "Dashboard",
data() {
return {
colspan:14,
acolor:{
color:""
},
leakyList: [],
timeStatus: {},
zhubobi:[],
long:[],
statusl:[]
};
},
mixins: [DetailMixins],
methods: {
savebtn() {
this.flag = true;
console.log(this.info());
leakyCableOpen(this.info()).then((res) => {
console.log("漏缆");
let params = {
id : this.form.baseInfo.id,
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() {
var temp = [];
var asd = [];
let arr1 = [],arr2 = [],arr3 = []
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) {
for (var i in 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;
return this.form.status;
}
},
},
computed: {},
watch: {
form: {
statusAlarmfun: {
immediate: true,
handler(newV) {
if (newV) {
this.trans();
this.$nextTick(function () {
this.leakylevelcolor();
});
}
},
},
deep: true,
},
mounted() {},
mounted() {
},
};
</script>
......
......@@ -47,7 +47,7 @@ export function formInit2(data = {}) {
type3: 0,
type4: 0,
type5: 0,
status: '',
status: [],
controlLimit: "",
count: "",
...data
......
......@@ -7,6 +7,7 @@
<type :type="type" :curInfo="curInfo" />
</div>
</div>
</div>
</template>
......@@ -14,6 +15,7 @@
import { treeBaseInfo } from './api'
import orgTree from '@/components/orgTree.vue'
import Type from './components/index.vue'
export default {
name: 'Dashboard',
data() {
......@@ -24,7 +26,7 @@ export default {
},
components: {
orgTree,
Type
Type,
},
computed: {
},
......
......@@ -353,3 +353,16 @@ $light_gray: #eee;
}
</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 {
return "important";
} else if (row.alarmLevelName == "一般" && column.label == "告警级别") {
return "common";
} else if (row.alarmLevelName == "正常" && column.label == "告警级别") {
return "normal"
}
if (rowIndex % 2 == 1) {
return "stripe";
......@@ -186,6 +188,9 @@ export default {
& ::v-deep .common {
background-color: #ead906;
}
& ::v-deep .normal {
background-color: green;
}
.page {
display: flex;
align-items: center;
......
......@@ -122,8 +122,8 @@ export default {
.content {
border: 1px solid #e3e3e3;
border-radius: 10px;
height: 700px;
overflow-y: scroll;
// height: 700px;
// overflow-y: scroll;
.content-title {
width: 100%;
height: 60px;
......
......@@ -222,7 +222,6 @@ export default {
this.ids = this.multipleSelection.map((i) => i.id);
},
handleView(row) {
console.log(row);
this.$router.push({
path: "/detail",
query: {
......
......@@ -15,7 +15,6 @@ export default {
type: 1,
curInfo: {},
listData: [],
};
},
computed: {},
......@@ -28,11 +27,14 @@ export default {
};
treeBaseInfo(params).then((res) => {
let controlLimit = res.controlLimit;
controlLimit.map((item) => {
res[`type${item.type}`] = item.sum;
});
let controlLimit = res.controlLimit || []
if(controlLimit) {
controlLimit.map(item => {
res[`type${item.type}`]= item.sum
})
}
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