Commit 8c2d7d17 authored by neogcg's avatar neogcg

Merge branch 'dev_gcg' into dev

parents cbefbc50 b98bd069
......@@ -15,6 +15,7 @@
"dependencies": {
"axios": "0.18.1",
"core-js": "^3.6.5",
"echarts": "^5.3.1",
"element-ui": "2.13.2",
"events": "^3.3.0",
"inquirer": "^8.2.0",
......
<template>
<div id="app">
<router-view />
<audio
controls="controls"
id="my_audio"
src="./assets/audio/alarm.mp3"
style="display: none"
hidden="hidden"
/>
<!-- <div class="tips" v-if="tflag">
<p>提示</p>
<span>有一条新告警</span>
</div> -->
<!-- <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>
<span
>系统新增{{ msg.count }}<span
v-text="msg.type == 1 ? '设备连接' : '漏缆监测'"
></span
><span id="alevel" :style="alevel">{{ msg.level }}</span
>告警消息,请及时查看!</span
>
</div>
</transition>
</div>
</template>
......@@ -26,6 +28,10 @@ export default {
return {
websocket: null,
tflag: false,
msg: "",
alevel: {
color: "",
},
};
},
computed: {
......@@ -44,27 +50,51 @@ export default {
this.websocket.close();
}
},
levelcolor() {
if (this.msg.level == "正常" || this.msg.level == "连接正常") {
this.alevel.color = "green";
} else if (this.msg.level == "紧急" || this.msg.level == "连接异常") {
this.alevel.color = "#f00";
} else if (this.msg.level == "重要") {
this.alevel.color = "#f89850";
} else if (this.msg.level == "一般") {
this.alevel.color = "#ead906";
}
},
},
mounted() {
// this.websocket = socket({
// onmessage: this.receiveMessage,
// });
let audioPlay = document.getElementById("my_audio");
this.websocket = socket({
onmessage: this.receiveMessage,
});
EventBus.$on("dialogAlarm", (data) => {
// 接收消息之后 声音弹窗显示
this.tflag = data;
// audioPlay.play();
this.msg = data;
this.levelcolor();
// console.log(data);
this.tflag = true;
setTimeout(() => {
this.tflag = false;
}, 3000);
});
EventBus.$on("cancelWS", () => {
this.websocket.close();
console.log('关闭ws');
});
// EventBus.$on("wsOpen", () => {
// this.websocket.onopen();
// audioPlay.play()
// // this.websocket.onopen();
// });
},
watch: {
$route(to, from) {
if (to.path == "/login") {
this.websocket.close();
console.log("在登录页");
}
},
usertoken: {
immediate: true,
handler(newV) {
......@@ -100,16 +130,24 @@ export default {
// background-color: #bed5ff !important;
// }
}
.tipalerm-enter-active {
transition: 0.5s;
}
.tipalerm-enter {
transform: translateX(200px);
}
.tips {
width: 400px;
height: 80px;
width: 150px;
height: 120px;
font-size: 14px;
letter-spacing: 1px;
background: #fff;
box-shadow: 0px 2px 14px #888888;
border-radius: 5px;
padding: 0 20px 20px 20px;
position: absolute;
padding: 4px 16px 16px 16px;
position: fixed;
text-align: center;
top: calc(50% - 40px);
left: calc(50% - 200px);
bottom: 0px;
right: 0px;
}
</style>
......@@ -15,7 +15,7 @@
type="primary"
icon="el-icon-s-unfold"
size="mini"
v-if="isOpen==true"
v-if="isOpen == true"
@click="toOpen"
>收起</el-button
>
......@@ -60,7 +60,7 @@
<script>
import { mapGetters } from "vuex";
import { getTree } from '@/api/baseData'
import { getTree } from "@/api/baseData";
export default {
data() {
......@@ -91,33 +91,36 @@ export default {
...mapGetters("tree", ["treeData"]),
},
mounted() {
this.getInit()
this.getInit();
},
methods: {
toOpen() {
this.isOpen = !this.isOpen
this.isOpen = !this.isOpen;
this.openOrNot = false;
setTimeout(() => {
this.openOrNot = true;
}, 10);
},
handleClick(data) {
this.$emit('selectItem', data)
this.$emit("selectItem", data);
},
getInit() {
this.loading = true
getTree().then(res => {
this.loading = false
let list = res || []
this.data = list
})
this.loading = true;
getTree().then((res) => {
this.loading = false;
let list = res || [];
this.data = list;
if (this.data[0]) {
this.$emit("defaultSite", this.data[0].id);
}
});
},
renderContent(h, { node, data, store }) {
return (
<div>
<span style="padding-right:10px;">
<span style={{ marginRight: "5px", fontSize: "16px" }}>
<svg-icon icon-class={data.iconName} />
<svg-icon icon-class={data.iconName} />
</span>
<span style={{ marginRight: "5px", fontSize: "16px" }}>
{node.label}
......
......@@ -6,8 +6,7 @@
<Sidebar />
<div class="right-menu">
<el-dropdown class="avatar-container" trigger="click">
<span class="el-dropdown-link">
admin<i class="el-icon-arrow-down el-icon--right"></i>
<span class="el-dropdown-link">{{userName}}<i class="el-icon-arrow-down el-icon--right"></i>
</span>
<el-dropdown-menu slot="dropdown">
<el-dropdown-item divided @click.native="logout">
......@@ -27,12 +26,13 @@ import Breadcrumb from '@/components/Breadcrumb'
import Hamburger from '@/components/Hamburger'
import Sidebar from './Sidebar/index.vue'
import { logout } from '@/api/user'
import { getUserName } from "@/utils/auth";
import EventBus from '@/utils/bus'
export default {
data() {
let timer
return {
dateTime: '',
}
},
components: {
......@@ -44,7 +44,11 @@ export default {
...mapGetters([
'sidebar',
'avatar'
])
]),
userName() {
return getUserName()
},
},
mounted() {
this.nowTimes()
......@@ -55,9 +59,9 @@ export default {
},
logout() {
logout().then(() => {
EventBus.$emit('cancelWS')
this.$store.dispatch('user/logout')
this.$router.push(`/login`)
EventBus.$emit('cancelWS')
})
},
......
......@@ -54,7 +54,7 @@ const actions = {
return new Promise((resolve, reject) => {
removeToken() // must remove token first
removeUserName() // must remove token first
removeUserId() // must remove token first
// removeUserId() // must remove token first
resetRouter()
commit("SET_TOKEN", "")
commit("SET_BASEINFO", {})
......@@ -68,7 +68,7 @@ const actions = {
return new Promise(resolve => {
removeToken() // must remove token first
removeUserName() // must remove token first
removeUserId() // must remove token first
// removeUserId() // must remove token first
commit('RESET_STATE')
resolve()
})
......
......@@ -102,4 +102,10 @@
letter-spacing: 5px;
opacity: 1;
margin-bottom: 20px;
}
\ No newline at end of file
}
/* 自动填充样式修改 */
input:-internal-autofill-previewed,
input:-internal-autofill-selected {
-webkit-text-fill-color: #FFFFFF !important;
transition: background-color 5000s ease-in-out 0s !important;
}
......@@ -13,3 +13,12 @@ export function setToken(token) {
export function removeToken() {
return Cookies.remove(TokenKey)
}
export function setUserName(username){
return Cookies.set('userName',username)
}
export function getUserName(){
return Cookies.get('userName')
}
export function removeUserName(){
return Cookies.remove('userName')
}
......@@ -66,8 +66,8 @@ service.interceptors.response.use(
location.href = location.href.replace(/#.+/, '') + '#/login'
return
}
if (code == 501) {
!config.silence && !errorShowing && Message.error(message)
if (code == 501 ) {
// !config.silence && !errorShowing && Message.error(message)
errorShowing = true
setTimeout(() => { errorShowing = false }, 3000)
store.dispatch('user/resetToken')
......
......@@ -8,7 +8,7 @@ export default function socket(handlerOptions) {
onopen,
// socketUrl
} = handlerOptions
let socketUrl = 'ws://8.142.143.40:8885/websocket/1/1'
let socketUrl = 'ws://8.142.143.40:8885/websocket/1'
let websocket
if ("WebSocket" in window) {
websocket = new WebSocket(socketUrl)
......@@ -57,6 +57,7 @@ function heartCheck(websocket) {
websocket.send("HeartBeat")
console.info("Websocket发送心跳:HeartBeat")
// }
}, this.timeout)
},
}
......@@ -64,8 +65,16 @@ function heartCheck(websocket) {
//消息处理
export function receiveMessage(message) {
// 消息接收后处理逻辑 接口访问
console.log(message, '接收到的信息');
EventBus.$emit('dialogAlarm', true)
// let obj = JSON.parse(message)
// console.log(message, '接收到的信息');
if (message != '连接成功') {
let obj =JSON.parse( JSON.parse(message))
EventBus.$emit('dialogAlarm', obj)
}
// return obj
}
\ No newline at end of file
......@@ -178,6 +178,7 @@ 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() {
return {
......@@ -206,6 +207,7 @@ export default {
},
],
isQuery: false,
istrue: 0,
searchOption: {},
exids: [],
wsUrl: "ws://8.142.143.40:8885/websocket/1/1",
......@@ -221,17 +223,17 @@ 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";
}
},
refresh() {
this.searchOption = {};
if (this.$refs.reset != undefined) {
this.$refs.reset.reset();
}
this.getTableData();
this.$refs.reset != undefined
? this.$refs.reset.reset()
: this.getTableData();
},
handlePageChange(pageData) {
this.params.size = pageData.size;
......@@ -239,6 +241,7 @@ export default {
this.getTableData();
},
search(option) {
this.istrue = 1;
this.searchOption = option;
this.getTableData();
},
......@@ -254,6 +257,14 @@ export default {
this.tableData = list;
this.total = res.total;
this.exids = list.map((i) => i.id);
if (this.istrue == 1) {
if (this.tableData.length != 0) {
successAlert("查询成功");
} else {
warningAlert("查询结果为空");
}
this.istrue = 0;
}
});
},
confirm(dialogInfo) {
......@@ -293,9 +304,14 @@ export default {
...this.params,
...this.searchOption,
};
exportLeakyCable({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `漏缆监测告警.xls`);
});
if (this.exids.length == 0) {
this.$message.warning("暂无数据");
return false;
} else {
exportLeakyCable({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `漏缆监测告警.xls`);
});
}
},
},
computed: {
......@@ -361,6 +377,9 @@ export default {
& ::v-deep .common {
background-color: #ead906;
}
& ::v-deep .normal {
background-color: green;
}
.page {
display: flex;
align-items: center;
......
......@@ -139,6 +139,7 @@ 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 {
data() {
return {
......@@ -167,6 +168,7 @@ export default {
},
],
isQuery: false,
istrue: 0,
searchOption: {},
exids: [],
wsUrl: "ws://8.142.143.40:8885/websocket/1/2",
......@@ -194,11 +196,9 @@ export default {
}
},
refresh() {
this.searchOption = {};
this.getTableData();
if (this.$refs.reset != undefined) {
this.$refs.reset.reset();
}
this.$refs.reset != undefined
? this.$refs.reset.reset()
: this.getTableData();
},
handlePageChange(pageData) {
this.params.size = pageData.size;
......@@ -206,6 +206,7 @@ export default {
this.getTableData();
},
search(option) {
this.istrue = 1;
this.searchOption = option;
this.getTableData();
},
......@@ -219,8 +220,17 @@ 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) {
if (this.tableData.length != 0) {
successAlert("查询成功");
} else {
warningAlert("查询结果为空");
}
this.istrue = 0;
}
});
},
confirm2(row) {
......@@ -261,9 +271,14 @@ export default {
...this.params,
...this.searchOption,
};
exportConnet({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `设备连接告警.xls`);
});
if (this.exids.length == 0) {
this.$message.warning("暂无数据");
return false;
} else {
exportConnet({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `设备连接告警.xls`);
});
}
},
},
mounted() {
......
......@@ -2,8 +2,29 @@ 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',
}
export function treeBaseInfo() {
return request.post(path.treeBaseInfo, ...arguments)
}
export function railWayOpen() {
return request.post(path.railWayOpen, ...arguments)
}
export function siteOpen() {
return request.post(path.siteOpen, ...arguments)
}
export function fsuOpen() {
return request.post(path.fsuOpen, ...arguments)
}
export function monitorEquipOpen() {
return request.post(path.monitorEquipOpen, ...arguments)
}
export function leakyCableOpen() {
return request.post(path.leakyCableOpen, ...arguments)
}
<template>
<component :is="useEditComponent" :type="type" :curInfo="curInfo" @toUpdate="toUpdate" @cancel="cancel"></component>
<component
:is="useEditComponent"
:type="type"
:curInfo="curInfo"
@toUpdate="toUpdate"
@cancel="cancel"
></component>
</template>
<script>
import Type1 from './type1.vue'
import Type2 from './type2.vue'
import Type3 from './type3.vue'
import Type4 from './type4.vue'
import Type5 from './type5.vue'
import Type1 from "./type1.vue";
import Type2 from "./type2.vue";
import Type3 from "./type3.vue";
import Type4 from "./type4.vue";
import Type5 from "./type5.vue";
export default {
data() {
return {}
return {};
},
props: {
type: {
type: Number,
defualt: null
defualt: null,
},
curInfo: {
type: Object,
default: () => {}
}
default: () => {},
},
},
computed: {
useEditComponent() {
return `Type${this.type}`
return `Type${this.type}`;
},
},
components: {
......@@ -37,11 +43,11 @@ export default {
},
methods: {
toUpdate() {
this.$emit('toUpdate')
this.$emit("toUpdate");
},
cancel() {
this.$emit('cancel')
this.$emit("cancel");
},
}
}
},
};
</script>
\ No newline at end of file
......@@ -4,15 +4,16 @@ export const DetailMixins = {
data() {
return {
form: {},
flag: true,
formFunc: null,
isOpenSelect:[{
isOpenSelect: [{
key: 0,
label: "未开通"
},
{
key: 1,
label: "已开通"
}]
}],
}
},
watch: {
......@@ -32,13 +33,58 @@ export const DetailMixins = {
props: {
curInfo: {
type: Object,
default: () => {},
default: () => { },
},
type: {
type: Number,
defualt: null,
},
},
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
}
}
},
methods: {
info() {
let params = {
id: this.form.baseInfo.id,
isOpen: this.form.baseInfo.isOpen
}
return params
},
editbtn() {
this.flag = false
},
dateFormat(date, format) {
date = new Date(date);
var o = {
'M+': date.getMonth() + 1, //month
'd+': date.getDate(), //day
'H+': date.getHours(), //hour
'm+': date.getMinutes(), //minute
's+': date.getSeconds(), //second
'S': date.getMilliseconds() //millisecond
};
if (/(y+)/.test(format))
format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp('(' + k + ')').test(format))
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));
return format;
}
},
}
......@@ -14,7 +14,7 @@
<div class="item_name">服务器IP</div>
</el-col>
<el-col :span="10">
<div class="item_data">192.168.1.110</div>
<div class="item_data">{{ form.operateSystem.ip }}</div>
</el-col>
</el-row>
<el-row class="text" :gutter="24">
......@@ -22,7 +22,9 @@
<div class="item_name">操作系统</div>
</el-col>
<el-col :span="10">
<div class="item_data">Red Hat EnterpiseLin...</div>
<div class="item_data">
{{ form.operateSystem.operateSystem }}
</div>
</el-col>
</el-row>
<el-row class="text" :gutter="24">
......@@ -30,7 +32,7 @@
<div class="item_name">系统软件版本</div>
</el-col>
<el-col :span="10">
<div class="item_data">192.168.1.110</div>
<div class="item_data">{{ form.operateSystem.version }}</div>
</el-col>
</el-row>
</div>
......@@ -78,7 +80,7 @@
<el-col :span="12" class="mb20">
<el-card shadow="never">
<div slot="header" class="clearfix posa">
<span>管理员(admin)管理范围</span>
<span>管理员({{ userName }})管理范围</span>
</div>
<div>
<el-row class="text" :gutter="24">
......@@ -107,7 +109,7 @@
</el-row>
<el-row class="text" :gutter="24">
<el-col :span="10">
<div class="item_name"></div>
<div class="item_name"></div>
</el-col>
<el-col :span="10">
<div class="item_data">{{ form.type5 }}</div>
......@@ -127,11 +129,22 @@
<el-col :span="12" class="mb20">
<el-card shadow="never">
<div slot="header" class="clearfix posa">
<span>基本信息</span>
<span>基础信息</span>
<el-button
style="float: right; padding: 3px 0; margin-right: 20px"
type="text"
class="savebtn"
v-if="flag == true"
@click="editbtn()"
>编辑</el-button
>
<el-button
style="float: right; padding: 3px 0; margin-right: 20px"
type="text"
class="savebtn"
v-else
@click="savebtn()"
>保存</el-button
>
</div>
......@@ -140,14 +153,14 @@
<el-col :span="10">
<div class="item_name">铁路名称</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div>
<el-input
v-model="form.baseInfo.name"
clearable
placeholder="请输入内容"
></el-input
>
:disabled="flag"
></el-input>
</div>
</el-col>
</el-row>
......@@ -155,14 +168,14 @@
<el-col :span="10">
<div class="item_name">铁路起点站名</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div>
<el-input
v-model="form.baseInfo.startPointName"
clearable
placeholder="请输入内容"
></el-input
>
:disabled="flag"
></el-input>
</div>
</el-col>
</el-row>
......@@ -170,14 +183,14 @@
<el-col :span="10">
<div class="item_name">铁路终点站名</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div>
<el-input
v-model="form.baseInfo.endPointName"
v-model="form.baseInfo.endPointName"
clearable
placeholder="请输入内容"
></el-input
>
:disabled="flag"
></el-input>
</div>
</el-col>
</el-row>
......@@ -185,14 +198,14 @@
<el-col :span="10">
<div class="item_name">铁路总长度(公里)</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div>
<el-input
v-model="form.baseInfo.totalLong"
clearable
placeholder="请输入内容"
>张呼铁路客运专线</el-input
>
:disabled="flag"
></el-input>
</div>
</el-col>
</el-row>
......@@ -200,9 +213,13 @@
<el-col :span="10">
<div class="item_name">开通状态</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div>
<el-select v-model="form.baseInfo.isOpen" >
<el-select
v-model="form.baseInfo.isOpen"
:disabled="flag"
style="width: 100%"
>
<el-option
v-for="item in isOpenSelect"
:key="item.key"
......@@ -221,17 +238,33 @@
</template>
<script>
import { DetailMixins } from './mixins'
import { DetailMixins } from "./mixins";
import { getUserName } from "@/utils/auth";
import { railWayOpen } from "../api";
export default {
name: 'Dashboard',
name: "Dashboard",
mixins: [DetailMixins],
data() {
return {
}
colspan:14
};
},
methods: {
}
}
savebtn() {
this.flag = true;
console.log(this.info());
railWayOpen(this.info()).then((res) => {
console.log("铁路线");
});
},
},
computed: {
userName() {
return getUserName();
},
},
};
</script>
<style lang="scss" scoped>
......
......@@ -27,7 +27,7 @@
</el-row>
<el-row class="text" :gutter="24">
<el-col :span="10">
<div class="item_name"></div>
<div class="item_name"></div>
</el-col>
<el-col :span="10">
<div class="item_data">{{ form.type5 }}</div>
......@@ -48,13 +48,29 @@
<el-card shadow="never">
<div slot="header" class="clearfix posa">
<span>基础信息</span>
<el-button
style="float: right; padding: 3px 0; margin-right: 20px"
type="text"
class="savebtn"
v-if="flag == true"
@click="editbtn()"
>编辑</el-button
>
<el-button
style="float: right; padding: 3px 0; margin-right: 20px"
type="text"
class="savebtn"
v-else
@click="savebtn()"
>保存</el-button
>
</div>
<div>
<el-row class="text" :gutter="24">
<el-col :span="10">
<div class="item_name">站点编号</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.siteCode }}</div>
</el-col>
</el-row>
......@@ -62,7 +78,7 @@
<el-col :span="10">
<div class="item_name">站名</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.siteName }}</div>
</el-col>
</el-row>
......@@ -70,7 +86,7 @@
<el-col :span="10">
<div class="item_name">站点地址</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.siteAddress }}</div>
</el-col>
</el-row>
......@@ -78,15 +94,15 @@
<el-col :span="10">
<div class="item_name">所在铁路线</div>
</el-col>
<el-col :span="10">
<div class="item_data">{{ form.baseInfo.wayId }}</div>
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.railWayName }}</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">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.siteArea }}</div>
</el-col>
</el-row>
......@@ -94,7 +110,7 @@
<el-col :span="10">
<div class="item_name">站点所在段号</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.siteSectionCode }}</div>
</el-col>
</el-row>
......@@ -102,7 +118,7 @@
<el-col :span="10">
<div class="item_name">站点所在铁路公里标</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.siteKmSign }}</div>
</el-col>
</el-row>
......@@ -110,47 +126,47 @@
<el-col :span="10">
<div class="item_name">站点经度</div>
</el-col>
<el-col :span="10">
<div class="item_data">{{ form.baseInfo.siteLongitude }}</div>
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.siteLatitude }}</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.baseInfo.siteLatitude }}</div>
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.siteLongitude }}</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">Red Hat EnterpiseLin...</div>
<el-col :span="colspan">
<div class="item_data"></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">Red Hat EnterpiseLin...</div>
<el-col :span="colspan">
<div class="item_data">{{ form.count.LEAKY }}</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">Red Hat EnterpiseLin...</div>
<el-col :span="colspan">
<div class="item_data"></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">
<el-col :span="colspan">
<div class="item_data">
{{ form.baseInfo.siteOtherMessage }}
</div>
......@@ -161,7 +177,11 @@
<div class="item_name">开通状态</div>
</el-col>
<el-col :span="10">
<el-select v-model="form.baseInfo.isOpen">
<el-select
v-model="form.baseInfo.isOpen"
:disabled="flag"
style="width: 100%"
>
<el-option
v-for="item in isOpenSelect"
:key="item.key"
......@@ -185,7 +205,7 @@
<div class="item_name">设备状态</div>
</el-col>
<el-col :span="10">
<div class="item_data">正常</div>
<div class="item_data">{{ form.status.connect }}</div>
</el-col>
</el-row>
<el-row class="text" :gutter="24">
......@@ -193,7 +213,7 @@
<div class="item_name">漏缆状态</div>
</el-col>
<el-col :span="10">
<div class="item_data">正常</div>
<div class="item_data">{{ form.status.monitor }}</div>
</el-col>
</el-row>
</div>
......@@ -205,13 +225,24 @@
<script>
import { DetailMixins } from "./mixins";
import { siteOpen } from "../api";
export default {
name: "Dashboard",
mixins: [DetailMixins],
data() {
return {};
return {
flag: true,
colspan:14
};
},
methods: {
savebtn() {
this.flag = true;
siteOpen(this.info()).then((res) => {
console.log("站点");
});
},
},
methods: {},
};
</script>
......@@ -235,10 +266,13 @@ export default {
.posa {
position: relative;
}
.savebtn {
position: absolute;
right: 2%;
}
.specialCard {
position: absolute;
top: 340px;
top: 328px;
}
.text {
......
......@@ -19,7 +19,7 @@
</el-row>
<el-row class="text" :gutter="24">
<el-col :span="10">
<div class="item_name"></div>
<div class="item_name"></div>
</el-col>
<el-col :span="10">
<div class="item_data">{{ form.type5 }}</div>
......@@ -30,7 +30,7 @@
<div class="item_name">天馈线</div>
</el-col>
<el-col :span="10">
<div class="item_data">{{ form.type5 }}</div>
<div class="item_data">{{ form.count.LEAKY }}</div>
</el-col>
</el-row>
</div>
......@@ -40,13 +40,29 @@
<el-card shadow="never">
<div slot="header" class="clearfix posa">
<span>基础信息</span>
<el-button
style="float: right; padding: 3px 0; margin-right: 20px"
type="text"
class="savebtn"
v-if="flag == true"
@click="editbtn()"
>编辑</el-button
>
<el-button
style="float: right; padding: 3px 0; margin-right: 20px"
type="text"
class="savebtn"
v-else
@click="savebtn()"
>保存</el-button
>
</div>
<div>
<el-row class="text" :gutter="24">
<el-col :span="10">
<div class="item_name">FSU身份编号</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.fsuCode }}</div>
</el-col>
</el-row>
......@@ -54,7 +70,7 @@
<el-col :span="10">
<div class="item_name">FSU端口数</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.fsuPort }}</div>
</el-col>
</el-row>
......@@ -62,7 +78,7 @@
<el-col :span="10">
<div class="item_name">设备名称</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.equipName }}</div>
</el-col>
</el-row>
......@@ -70,7 +86,7 @@
<el-col :span="10">
<div class="item_name">IP地址</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.ip }}</div>
</el-col>
</el-row>
......@@ -78,23 +94,23 @@
<el-col :span="10">
<div class="item_name">所在铁路线</div>
</el-col>
<el-col :span="10">
<div class="item_data">南昆客运专线</div>
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.railWayName }}</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">81</div>
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.siteName }}</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">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.equipFactory }}</div>
</el-col>
</el-row>
......@@ -102,15 +118,15 @@
<el-col :span="10">
<div class="item_name">设备备用方式</div>
</el-col>
<el-col :span="10">
<div class="item_data">{{ form.baseInfo.backupModeName }}</div>
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.backModeName }}</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">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.connectModeName }}</div>
</el-col>
</el-row>
......@@ -118,7 +134,7 @@
<el-col :span="10">
<div class="item_name">设备类型</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.equipTypeName }}</div>
</el-col>
</el-row>
......@@ -126,7 +142,7 @@
<el-col :span="10">
<div class="item_name">设备子类型</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div class="item_data">
{{ form.baseInfo.equipSubTypeName }}
</div>
......@@ -136,7 +152,7 @@
<el-col :span="10">
<div class="item_name">软件版本号</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.softVersion }}</div>
</el-col>
</el-row>
......@@ -144,7 +160,7 @@
<el-col :span="10">
<div class="item_name">设备生产序列号</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div class="item_data">
{{ form.baseInfo.equipSerialNumber }}
</div>
......@@ -154,23 +170,23 @@
<el-col :span="10">
<div class="item_name">安装日期</div>
</el-col>
<el-col :span="10">
<div class="item_data">南昆客运专线</div>
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.creationTime }}</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">南昆客运专线</div>
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.openTime }}</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">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.kmSign }}</div>
</el-col>
</el-row>
......@@ -178,8 +194,12 @@
<el-col :span="10">
<div class="item_name">开通状态</div>
</el-col>
<el-col :span="10">
<el-select v-model="form.baseInfo.isOpen">
<el-col :span="colspan">
<el-select
v-model="form.baseInfo.isOpen"
:disabled="flag"
style="width: 100%"
>
<el-option
v-for="item in isOpenSelect"
:key="item.key"
......@@ -198,20 +218,12 @@
<span>当前状态</span>
</div>
<div>
<el-row class="text" :gutter="24">
<el-row v-for="(item, i) in statusList" 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">81</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">142根</div>
<div class="item_data">{{ item.value }}</div>
</el-col>
</el-row>
</div>
......@@ -224,12 +236,24 @@
<script>
import { DetailMixins } from "./mixins";
import { fsuOpen } from "../api";
export default {
name: "Dashboard",
data() {
return {};
return {
colspan:14
};
},
mixins: [DetailMixins],
methods: {
savebtn() {
this.flag = true;
fsuOpen(this.info()).then((res) => {
console.log("fsu");
});
},
},
mounted() {},
};
</script>
......@@ -252,12 +276,15 @@ export default {
}
.specialCard {
position: absolute;
top: 280px;
top: 268px;
}
.posa {
position: relative;
}
.savebtn {
position: absolute;
right: 2%;
}
.text {
padding: 10px 20px 10px 20px;
border-bottom: 1px solid #e3e3e3;
......
<template>
<div class="dashboard-container">
<!-- 首页 -->
<header class="header_title">FSU</header>
<header class="header_title">
监测设备({{ form.baseInfo.equipName }})
</header>
<el-row :gutter="24">
<el-col :span="11" class="mb20">
<el-card shadow="never">
<div slot="header" class="clearfix posa">
<span>管理范围</span>
</div>
<div >
<div>
<el-row class="text" :gutter="24">
<el-col :span="10">
<div class="item_name">漏缆</div>
......@@ -17,6 +19,14 @@
<div class="item_data">{{ form.type5 }}</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.controlLimit[0].sum }}</div>
</el-col>
</el-row>
</div>
</el-card>
</el-col>
......@@ -24,13 +34,29 @@
<el-card shadow="never">
<div slot="header" class="clearfix posa">
<span>基础信息</span>
<el-button
style="float: right; padding: 3px 0; margin-right: 20px"
type="text"
class="savebtn"
v-if="flag == true"
@click="editbtn()"
>编辑</el-button
>
<el-button
style="float: right; padding: 3px 0; margin-right: 20px"
type="text"
class="savebtn"
v-else
@click="savebtn()"
>保存</el-button
>
</div>
<div >
<div>
<el-row class="text" :gutter="24">
<el-col :span="10">
<div class="item_name">设备身份编号</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.equipCode }}</div>
</el-col>
</el-row>
......@@ -38,7 +64,7 @@
<el-col :span="10">
<div class="item_name">设备名称</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.equipName }}</div>
</el-col>
</el-row>
......@@ -46,7 +72,7 @@
<el-col :span="10">
<div class="item_name">设备厂商</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.equipFactory }}</div>
</el-col>
</el-row>
......@@ -54,7 +80,7 @@
<el-col :span="10">
<div class="item_name">IP地址</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.ip }}</div>
</el-col>
</el-row>
......@@ -62,31 +88,31 @@
<el-col :span="10">
<div class="item_name">所在铁路线</div>
</el-col>
<el-col :span="10">
<div class="item_data">南昆客运专线</div>
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.railWayName }}</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">81</div>
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.siteName }}</div>
</el-col>
</el-row>
<el-row class="text" :gutter="24">
<el-col :span="10">
<div class="item_name">所在FSU</div>
</el-col>
<el-col :span="10">
<div class="item_data">81</div>
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.fsuName }}</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">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.equipTypeName }}</div>
</el-col>
</el-row>
......@@ -94,7 +120,7 @@
<el-col :span="10">
<div class="item_name">设备型号</div>
</el-col>
<el-col :span="10">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.equipModeName }}</div>
</el-col>
</el-row>
......@@ -102,41 +128,46 @@
<el-col :span="10">
<div class="item_name">设备生产序列号</div>
</el-col>
<el-col :span="10">
<div class="item_data">{{ form.baseInfo.equipSerialNumber }}</div>
<el-col :span="colspan">
<div class="item_data">
{{ form.baseInfo.equipSerialNumber }}
</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.baseInfo.installDate }}</div>
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.creationTime }}</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.baseInfo.repairDate }}</div>
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.openTime }}</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">
<el-col :span="colspan">
<div class="item_data">{{ form.baseInfo.kmSign }}</div>
</el-col>
</el-row>
<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">
<el-select class="item_data"
>{{ form.baseInfo.isOpen }}
<el-col :span="colspan">
<el-select
v-model="form.baseInfo.isOpen"
:disabled="flag"
style="width: 100%"
>
<el-option
v-for="item in isOpenSelect"
:key="item.key"
......@@ -154,21 +185,13 @@
<div slot="header" class="clearfix posa">
<span>当前状态</span>
</div>
<div >
<el-row class="text" :gutter="24">
<div>
<el-row v-for="(item, i) in statusList" 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">正常</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">142根</div>
<div class="item_data">{{ item.value }}</div>
</el-col>
</el-row>
</div>
......@@ -179,16 +202,28 @@
</template>
<script>
import { DetailMixins } from './mixins'
import { DetailMixins } from "./mixins";
import { monitorEquipOpen } from "../api";
export default {
name: 'Dashboard',
name: "Dashboard",
data() {
return {
}
colspan:14
};
},
mixins: [DetailMixins],
}
methods: {
savebtn() {
this.flag = true;
monitorEquipOpen(this.info()).then((res) => {
console.log("监测设备");
});
},
},
mounted() {},
};
</script>
<style lang="scss" scoped>
......@@ -210,12 +245,15 @@ export default {
}
.specialCard {
position: absolute;
top: 180px;
top: 205px;
}
.posa {
position: relative;
}
.savebtn {
position: absolute;
right: 2%;
}
.text {
padding: 10px 20px 10px 20px;
border-bottom: 1px solid #e3e3e3;
......@@ -242,5 +280,4 @@ export default {
border-bottom: none !important;
}
}
</style>
This diff is collapsed.
export function formInit1(data = {}) {
return {
deviceStatus: null,
deviceStatus: '',
baseInfo: {
createdBy: "",
id: null,
name: "",
startPointName: "",
endPointName: "",
totalLong: null,
},
status: [],
type2: 0,
type3: 0,
type4: 0,
type5: 0,
operateSystem: null,
controlLimit: [
{ sum: 0, type: "" },
{ sum: 0, type: "" },
{ sum: 0, type: "" },
{ sum: 0, type: "" },
],
operateSystem: '',
...data
}
}
......@@ -39,6 +47,9 @@ export function formInit2(data = {}) {
type3: 0,
type4: 0,
type5: 0,
status: '',
controlLimit: "",
count: "",
...data
}
}
......@@ -50,6 +61,8 @@ export function formInit3(data = {}) {
fsuPort: null,
equipName: "",
ip: "",
railWayName: '',
siteName: '',
equipFactory: "",
backupModeName: null,
connectModeName: "",
......@@ -61,6 +74,10 @@ export function formInit3(data = {}) {
},
type4: 0,
type5: 0,
controlLimit: "",
count: {
LEAKY: 0
},
...data
}
}
......@@ -79,6 +96,9 @@ export function formInit4(data = {}) {
repairDate: '',
},
type5: 0,
controlLimit: [
{ sum: 0, type: "" },
],
...data
}
}
......@@ -101,6 +121,8 @@ export function formInit5(data = {}) {
siteId: null,
wayId: null,
},
log: 0,
loss: 0,
...data
}
}
......
......@@ -2,7 +2,7 @@
<div class="dashboard-container">
<!-- 首页 -->
<div>
<orgTree style="float:left" @selectItem="selectItem" />
<orgTree style="float:left" @selectItem="selectItem" @defaultSite="defaultSite"/>
<div class="ml300">
<type :type="type" :curInfo="curInfo" />
</div>
......@@ -29,9 +29,13 @@ export default {
computed: {
},
mounted() {
this.getDetailNode(4)
// this.defaultSite()
// this.getDetailNode(30)
},
methods: {
defaultSite(data){
this.getDetailNode(data)
},
selectItem(data) {
this.type = data.type
this.getDetailNode(data.id)
......@@ -49,6 +53,7 @@ export default {
})
}
this.curInfo = res
console.log(res);
})
},
}
......
......@@ -9,9 +9,11 @@ const path = {
ConnectStatusList: 'sysHistoryConnectStatus/selectPage',
ConnectStatusDelete: 'sysHistoryConnectStatus/batchDeleteHistoryConnectStatus',
ConnectStatusDeleteAll: 'sysHistoryConnectStatus/deleteAll',
ConnectMaintainList: 'sysHistoryConnectMaintain/selectPage',
ConnectMaintainDelete: 'sysHistoryConnectMaintain/batchDeleteHistoryConnectMaintain',
ConnectMaintainDeleteAll: 'sysHistoryConnectMaintain/deleteAll',
commonQuery: 'sysHistoryCommon/getSiteAndAlarmAll',
}
......@@ -30,12 +32,16 @@ export function MonitorMaintainDelete() {
return request.post(path.MonitorMaintainDelete, ...arguments)
}
export function ConnectStatusList() {
return request.post(path.ConnectStatusList, ...arguments)
}
export function ConnectStatusDelete() {
return request.post(path.ConnectStatusDelete, ...arguments)
}
export function ConnectStatusDeleteAll() {
return request.post(path.ConnectStatusDeleteAll, ...arguments)
}
export function ConnectMaintainList() {
return request.post(path.ConnectMaintainList, ...arguments)
......@@ -43,6 +49,9 @@ export function ConnectMaintainList() {
export function ConnectMaintainDelete() {
return request.post(path.ConnectMaintainDelete, ...arguments)
}
export function ConnectMaintainDeleteAll() {
return request.post(path.ConnectMaintainDeleteAll, ...arguments)
}
export function commonQuery() {
return request.post(path.commonQuery, ...arguments)
......
......@@ -10,11 +10,11 @@
<el-button type="primary" @click="refresh">刷新</el-button>
<el-button type="primary" @click="isQuery = !isQuery">查询</el-button>
<el-button type="primary" @click="toExport">导出</el-button>
<el-button type="primary">清空数据</el-button>
<el-button type="primary" @click="delAll">清空数据</el-button>
</div>
</div>
<div v-if="isQuery">
<search @search="getTableData" ref="reset" />
<search @search="search" ref="reset" />
</div>
<el-table
:data="tableData"
......@@ -60,11 +60,16 @@
</div>
</template>
<script>
import { ConnectMaintainList, ConnectMaintainDelete } from "../api";
import {
ConnectMaintainList,
ConnectMaintainDelete,
ConnectMaintainDeleteAll,
} from "../api";
import { ConnectStatusEnum } from "@/const/index";
import search from "./components/search.vue";
import download from "@/utils/download";
import { exportConnectMaintainHistory } from "@/api/export";
import { successAlert, warningAlert } from "@/utils/alert";
export default {
data() {
return {
......@@ -77,6 +82,7 @@ export default {
total: 14,
tableData: [],
isQuery: false,
istrue: 0,
searchOption: {},
exids: [],
};
......@@ -95,13 +101,19 @@ export default {
this.getTableData();
},
refresh() {
this.$refs.reset != undefined ? (this.$refs.reset.reset()) : (this.getTableData())
this.$refs.reset != undefined
? this.$refs.reset.reset()
: this.getTableData();
},
getTableData(option) {
search(option) {
this.istrue = 1;
this.searchOption = option;
this.getTableData();
},
getTableData() {
let params = {
...this.params,
...option,
...this.searchOption,
};
ConnectMaintainList(params).then((res) => {
let list = res.records || [];
......@@ -112,6 +124,14 @@ export default {
this.tableData = list;
this.total = res.total;
this.exids = list.map((i) => i.id);
if (this.istrue == 1) {
if (this.tableData.length != 0) {
successAlert("查询成功");
} else {
warningAlert("查询结果为空");
}
this.istrue = 0;
}
});
},
toDelete() {
......@@ -120,6 +140,22 @@ export default {
this.getTableData();
});
},
delAll() {
this.$confirm('继续操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
ConnectMaintainDeleteAll().then((res) => {
this.$message.success("清空成功!");
this.getTableData();
});
}).catch(() => {
warningAlert("取消删除")
});
},
cellClassFn({ row, column, rowIndex, columnIndex }) {
if (
row.pointConnectStatus_text == "连接异常" &&
......@@ -137,9 +173,14 @@ export default {
}
},
toExport() {
exportConnectMaintainHistory({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `设备连接维修历史.xls`);
});
if (this.exids.length == 0) {
this.$message.warning("暂无数据");
return false;
} else {
exportConnectMaintainHistory({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `设备连接维修历史.xls`);
});
}
},
},
mounted() {
......
......@@ -10,11 +10,11 @@
<el-button type="primary" @click="refresh">刷新</el-button>
<el-button type="primary" @click="isQuery = !isQuery">查询</el-button>
<el-button type="primary" @click="toExport">导出</el-button>
<el-button type="primary">清空数据</el-button>
<el-button type="primary" @click="delAll">清空数据</el-button>
</div>
</div>
<div v-if="isQuery">
<search @search="getTableData" ref="reset" />
<search @search="search" ref="reset" />
</div>
<el-table
:data="tableData"
......@@ -60,11 +60,16 @@
</div>
</template>
<script>
import { ConnectStatusList, ConnectStatusDelete } from "../api";
import {
ConnectStatusList,
ConnectStatusDelete,
ConnectStatusDeleteAll,
} from "../api";
import { ConnectStatusEnum } from "@/const/index";
import search from "./components/search.vue";
import { exportConnectStatusHistory } from "@/api/export";
import download from "@/utils/download";
import { successAlert, warningAlert } from "@/utils/alert";
export default {
props: [],
data() {
......@@ -78,6 +83,7 @@ export default {
total: 10,
tableData: [],
isQuery: false,
istrue: 0,
searchOption: {},
exids: [],
};
......@@ -96,13 +102,19 @@ export default {
this.getTableData();
},
refresh() {
this.$refs.reset != undefined ? (this.$refs.reset.reset()) : (this.getTableData())
this.$refs.reset != undefined
? this.$refs.reset.reset()
: this.getTableData();
},
getTableData(option) {
search(option) {
this.istrue = 1;
this.searchOption = option;
this.getTableData();
},
getTableData() {
let params = {
...this.params,
...option,
...this.searchOption,
};
ConnectStatusList(params).then((res) => {
let list = res.records || [];
......@@ -113,6 +125,14 @@ export default {
this.tableData = list;
this.total = res.total;
this.exids = list.map((i) => i.id);
if (this.istrue == 1) {
if (this.tableData.length != 0) {
successAlert("查询成功");
} else {
warningAlert("查询结果为空");
}
this.istrue = 0;
}
});
},
toDelete() {
......@@ -121,6 +141,21 @@ export default {
this.getTableData();
});
},
delAll() {
this.$confirm('继续操作将永久删除, 是否继续?', '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
ConnectStatusDeleteAll().then((res)=>{
this.$message.success("清空成功!");
this.getTableData();
});
}).catch(() => {
warningAlert("取消删除")
});
},
cellClassFn({ row, column, rowIndex, columnIndex }) {
if (
row.pointConnectStatus_text == "连接异常" &&
......@@ -138,9 +173,14 @@ export default {
}
},
toExport() {
exportConnectStatusHistory({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `设备连接历史状态.xls`);
});
if (this.exids.length == 0) {
this.$message.warning("暂无数据");
return false;
} else {
exportConnectStatusHistory({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `设备连接历史状态.xls`);
});
}
},
},
mounted() {
......
......@@ -13,7 +13,7 @@
</div>
</div>
<div v-if="isQuery">
<search @search="getTableData" ref="reset" />
<search @search="search" ref="reset" />
</div>
<el-table
:data="tableData"
......@@ -65,6 +65,7 @@ import { MonitorMaintainList, MonitorMaintainDelete } from "../api";
import search from "./components/search.vue";
import download from "@/utils/download";
import { exportLeakyMaintainHistory } from "@/api/export";
import { successAlert, warningAlert } from "@/utils/alert";
export default {
props: [],
data() {
......@@ -77,6 +78,7 @@ export default {
total: 10,
tableData: [],
isQuery: false,
istrue:0,
searchOption: {},
exids: [],
};
......@@ -95,19 +97,33 @@ export default {
this.getTableData();
},
refresh() {
this.$refs.reset != undefined ? (this.$refs.reset.reset()) : (this.getTableData())
this.$refs.reset != undefined
? this.$refs.reset.reset()
: this.getTableData();
},
getTableData(option) {
this.searchOption = option;
search(option){
this.istrue=1
this.searchOption = option
this.getTableData()
},
getTableData() {
let params = {
...this.params,
...option,
...this.searchOption,
};
MonitorMaintainList(params).then((res) => {
let list = res.records || [];
this.tableData = list;
this.total = res.total;
this.exids = list.map((i) => i.id);
if (this.istrue==1) {
if (this.tableData.length != 0) {
successAlert("查询成功");
} else {
warningAlert("查询结果为空");
}
this.istrue=0
}
});
},
deleteCable() {
......@@ -129,9 +145,14 @@ export default {
}
},
toExport() {
exportLeakyMaintainHistory({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `漏缆监测维修历史.xls`);
});
if (this.exids.length == 0) {
this.$message.warning("暂无数据");
return false;
} else {
exportLeakyMaintainHistory({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `漏缆监测维修历史.xls`);
});
}
},
},
mounted() {
......
......@@ -10,13 +10,15 @@
<el-button type="primary" @click="refresh">刷新</el-button>
<el-button type="primary" @click="isQuery = !isQuery">查询</el-button>
<el-button type="primary" @click="toExport">导出</el-button>
<el-button :type="multipleSelection.length ? 'primary' : 'info'"
:disabled="!multipleSelection.length">图形报表
<el-button
:type="multipleSelection.length ? 'primary' : 'info'"
:disabled="!multipleSelection.length"
>图形报表
</el-button>
</div>
</div>
<div v-if="isQuery">
<search @search="getTableData" ref="reset" />
<search @search="search" ref="reset" />
</div>
<el-table
ref="multipleTable"
......@@ -32,9 +34,9 @@
<el-table-column prop="alarmInfo" label="告警信息" align="center">
</el-table-column>
<el-table-column prop="uploadTime" label="上传日期" align="center" />
<el-table-column label="图形分析" align="center">
<el-button type="text">生成图表</el-button>
</el-table-column>>
<el-table-column label="图形分析" align="center">
<el-button type="text">生成图表</el-button> </el-table-column
>>
</el-table>
<Pagination
:limit="params.size"
......@@ -51,6 +53,7 @@ import { MonitorStatusList, MonitorStatusDelete } from "../api";
import search from "./components/search.vue";
import download from "@/utils/download";
import { exportLeakyStatusHistory } from "@/api/export";
import { successAlert, warningAlert } from "@/utils/alert";
export default {
data() {
return {
......@@ -62,6 +65,7 @@ export default {
tableData: [],
multipleSelection: [],
isQuery: false,
istrue:0,
searchOption: {},
exids: [],
};
......@@ -89,13 +93,19 @@ export default {
this.getTableData();
},
refresh() {
this.$refs.reset != undefined ? (this.$refs.reset.reset()) : (this.getTableData())
this.$refs.reset != undefined
? this.$refs.reset.reset()
: this.getTableData();
},
getTableData(option) {
this.searchOption = option;
search(option){
this.istrue=1
this.searchOption = option
this.getTableData()
},
getTableData() {
let params = {
...this.params,
...option,
...this.searchOption,
};
MonitorStatusList(params).then((res) => {
let list = res.records || [];
......@@ -115,9 +125,14 @@ export default {
});
},
toExport() {
exportLeakyStatusHistory({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `漏缆监测历史状态.xls`);
});
if (this.exids.length == 0) {
this.$message.warning("暂无数据");
return false;
} else {
exportLeakyStatusHistory({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `漏缆监测历史状态.xls`);
});
}
},
},
mounted() {
......
......@@ -77,9 +77,9 @@
</template>
<script>
import { login } from "@/api/user"
import { setToken } from "@/utils/auth"
import EventBus from '@/utils/bus'
import { login } from "@/api/user";
import { setToken, setUserName } from "@/utils/auth";
import EventBus from "@/utils/bus";
export default {
name: "Login",
data() {
......@@ -92,12 +92,12 @@ export default {
};
return {
loginForm: {
username: "admin",
password: "123456",
username: "",
password: "",
},
loginRules: {
username: [
{ required: true, trigger: "blur", message: '请输入用户名' },
{ required: true, trigger: "blur", message: "请输入用户名" },
],
password: [
{ required: true, trigger: "blur", validator: validatePassword },
......@@ -138,20 +138,20 @@ export default {
});
},
async toLogin() {
const {
username,
password
} = this.loginForm
let { token } = await login({
userName: username,
password: password,
}, {
el: '.el-button'
})
if (!token) return
this.$store.commit("user/SET_TOKEN", token)
setToken(token)
this.$router.push({ path: "/" })
const { username, password } = this.loginForm;
let { token } = await login(
{
userName: username,
password: password,
},
{
el: ".el-button",
}
);
if (!token) return;
this.$store.commit("user/SET_TOKEN", token);
setToken(token);
this.$router.push({ path: "/" });
// setTimeout(() => {
// location.reload()
// }, 10)
......@@ -159,15 +159,17 @@ export default {
handleLogin() {
this.$refs.loginForm.validate((valid) => {
if (valid) {
this.toLogin()
// EventBus.$emit('wsOpen')
setUserName(this.loginForm.username);
this.toLogin();
// EventBus.$emit('wsOpen')
} else {
console.log("error submit!!");
return false;
}
});
},
},
},
};
</script>
......
......@@ -20,7 +20,7 @@
>
<el-table-column
prop="startPointDeviceName"
label="网元设备"
label="网元设备(起点)"
align="center"
/>
<el-table-column
......@@ -30,7 +30,7 @@
/>
<el-table-column
prop="endPointDeviceName"
label="网元设备"
label="网元设备(终点)"
align="center"
/>
<el-table-column
......@@ -40,7 +40,7 @@
/>
<el-table-column
prop="lastPointDeviceName"
label="网元设备"
label="网元设备(末端)"
align="center"
/>
<el-table-column prop="uploadTime" label="上传时间" align="center" />
......@@ -61,6 +61,7 @@ import { ConnectStatusEnum } from "@/const/index";
import search from "./components/search.vue";
import download from "@/utils/download";
import { exportConnetTime } from "@/api/export";
import { successAlert, warningAlert } from "@/utils/alert";
export default {
data() {
return {
......@@ -72,6 +73,7 @@ export default {
total: 10,
tableData: [],
isQuery: false,
istrue:0,
searchOption: {},
exids: [],
};
......@@ -108,7 +110,9 @@ export default {
}
},
refresh() {
this.$refs.reset != undefined ? (this.$refs.reset.reset()) : (this.getTableData())
this.$refs.reset != undefined
? this.$refs.reset.reset()
: this.getTableData();
},
handlePageChange(pageData) {
......@@ -117,6 +121,7 @@ export default {
this.getTableData();
},
search(option) {
this.istrue=1
this.searchOption = option;
this.getTableData();
},
......@@ -136,12 +141,25 @@ export default {
this.tableData = list;
this.total = res.total;
this.exids = list.map((i) => i.id);
if (this.istrue==1) {
if (this.tableData.length != 0) {
successAlert("查询成功");
} else {
warningAlert("查询结果为空");
}
this.istrue=0
}
});
},
toExport() {
exportConnetTime({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `设备实时.xls`);
});
if (this.exids.length == 0) {
this.$message.warning("暂无数据");
return false;
} else {
exportConnetTime({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `设备实时.xls`);
});
}
},
},
mounted() {
......
......@@ -62,6 +62,7 @@ import { ConnectStatusEnum } from "@/const/index";
import search from "./components/search.vue";
import { exportLeakyCableTime } from "@/api/export";
import download from "@/utils/download";
import { successAlert, warningAlert } from "@/utils/alert";
export default {
data() {
return {
......@@ -73,6 +74,7 @@ export default {
total: 10,
tableData: [],
isQuery: false,
istrue:0,
searchOption: {},
exids: [],
};
......@@ -94,15 +96,18 @@ export default {
},
refresh() {
this.searchOption = {};
this.$refs.reset != undefined ? this.$refs.reset.reset() : this.getTableData();
this.$refs.reset != undefined
? this.$refs.reset.reset()
: this.getTableData();
},
handlePageChange(pageData) {
this.params.size = pageData.size;
this.params.curent = pageData.page;
this.params.size = pageData.size
this.params.curent = pageData.page
this.getTableData();
},
search(option) {
this.searchOption = option;
this.istrue=1
this.searchOption = option
this.getTableData();
},
getTableData() {
......@@ -115,6 +120,14 @@ export default {
this.tableData = list;
this.total = res.records.length;
this.exids = list.map((i) => i.id);
if (this.istrue==1) {
if (this.tableData.length != 0) {
successAlert("查询成功");
} else {
warningAlert("查询结果为空");
}
this.istrue=0
}
});
},
toExport() {
......@@ -122,9 +135,14 @@ export default {
...this.params,
...this.searchOption,
};
exportLeakyCableTime({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `漏缆实时.xls`);
});
if (this.exids.length == 0) {
this.$message.warning("暂无数据");
return false;
} else {
exportLeakyCableTime({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `漏缆实时.xls`);
});
}
},
},
mounted() {
......
......@@ -146,12 +146,12 @@ export default {
{ required: true, message: "请输入FSU身份编号", trigger: "blur" },
],
fsuPort: [
{ required: true, message: "请输入FSU端口数", trigger: "blur" },
{ required: true, pattern : /^(([^0][0-9]+|0)$)|^(([1-9]+)$)/, message: "请输入FSU端口数", trigger: "blur" },
],
equipName: [
{ required: true, message: "请输入设备名称", trigger: "blur" },
],
ip: [{ required: true, message: "请输入IP地址", trigger: "blur" }],
ip: [{ required: true, pattern : /^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.((1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.){2}(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$/ , message: "请输入正确的IP地址", trigger: "blur" }],
equipFactory: [
{ required: true, message: "请输入设备厂商", trigger: "blur" },
],
......
......@@ -136,7 +136,7 @@ import {
selectForSite,
selectForFsu,
selectForEquip,
railWaylist
railWaylist,
} from "../../api";
import { successAlert, warningAlert } from "@/utils/alert";
export default {
......@@ -155,12 +155,13 @@ export default {
size: 10,
},
rules: {
wayId: [{ required: true, message: "请选择铁路线", trigger: "blur" }],
wayId: [{ required: true, message: "请选择铁路线", trigger: "blur" }],
siteId: [{ required: true, message: "请选择站点", trigger: "blur" }],
fsuId: [{ required: true, message: "请选择FSU", trigger: "blur" }],
equipId: [{ required: true, message: "请选择监测设备", trigger: "blur" }],
equipId: [
{ required: true, message: "请选择监测设备", trigger: "blur" },
],
antennaFeederLength: [
{ required: true, message: "请输入天馈线长度", trigger: "blur" },
],
......@@ -229,6 +230,8 @@ export default {
submit() {
this.$refs.leakyCableForm.validate((valid) => {
if (valid) {
console.log(this.leakyCableForm);
this.leakyCableForm.parentId = this.leakyCableForm.equipId;
leakyCablesave(this.leakyCableForm).then((res) => {
if (res.code == 200) {
successAlert("添加成功");
......
......@@ -99,7 +99,7 @@
placeholder="请输入设备所在铁路公里标"
/>
</el-form-item>
<el-form-item label="安装日期:" prop="installDate">
<!-- <el-form-item label="安装日期:" prop="installDate">
<el-date-picker
v-model="monitorForm.installDate"
type="datetime"
......@@ -121,7 +121,7 @@
value-format="yyyy-MM-dd HH:mm:ss"
>
</el-date-picker>
</el-form-item>
</el-form-item> -->
</el-form>
<div class="btn">
<el-button type="primary" @click="reset">重置</el-button>
......@@ -155,17 +155,16 @@ export default {
size: 10,
},
rules: {
wayId: [{ required: true, message: "请选择铁路线", trigger: "blur" }],
wayId: [{ required: true, message: "请选择铁路线", trigger: "blur" }],
siteId: [{ required: true, message: "请选择站点", trigger: "blur" }],
fsuId: [{ required: true, message: "请选择FSU", trigger: "blur" }],
equipCode: [
{ required: true, message: "请输入设备身份编号", trigger: "blur" },
],
equipFactory: [
{ required: true, message: "请输入设备厂商", trigger: "blur" },
],
ip: [{ required: true, message: "请输入IP", trigger: "blur" }],
ip: [{ required: true, pattern : /^(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|[1-9])\.((1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)\.){2}(1\d{2}|2[0-4]\d|25[0-5]|[1-9]\d|\d)$/ , message: "请输入正确的IP地址", trigger: "blur" }],
equipMode: [
{ required: true, message: "请选择设备型号", trigger: "blur" },
],
......
......@@ -53,11 +53,9 @@ export default {
endPointName: [
{ required: true, message: "请输入铁路线终点站名", trigger: "blur" },
],
totalLong: [
{ required: true, message: "请输入铁路全长公里数", trigger: "blur" },
],
siteLongitude: [
{ required: true, message: "请输入铁路全长公里数", trigger: "blur" },
{ required: true, pattern:/^(([^0][0-9]+|0)\.([0-9]{1,2})$)|^(([^0][0-9]+|0)$)|^(([1-9]+)\.([0-9]{1,5})$)|^(([1-9]+)$)/, message: "请输入整数或小数(小数点后最多5位)", trigger: "blur" },
],
},
};
......
......@@ -202,14 +202,19 @@ export default {
},
reset() {
this.FSUForm = formInit();
this.getTableData();
this.searchQuery();
},
exportData() {
// let ids = [];
// this.ids.length != 0 ? (ids = this.ids) : (ids = this.exids);
if (this.exids.length == 0) {
this.$message.warning("暂无数据");
return false;
} else {
exportFsu({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `FSU表.xls`);
});
}
},
handleSelectionChange(val) {
this.multipleSelection = val;
......@@ -217,6 +222,7 @@ export default {
this.ids = this.multipleSelection.map((i) => i.id);
},
handleView(row) {
console.log(row);
this.$router.push({
path: "/detail",
query: {
......
......@@ -259,13 +259,18 @@ export default {
},
reset() {
this.leakyCableForm = formInit();
this.getTableData();
this.searchQuery();
},
exportData() {
if (this.exids.length == 0) {
this.$message.warning("暂无数据");
return false;
} else {
exportLeaky({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `漏缆表.xls`);
});
}
},
handleSelectionChange(val) {
this.multipleSelection = val;
......
......@@ -213,13 +213,18 @@ export default {
},
reset() {
this.monitorForm = formInit();
this.getTableData();
this.searchQuery();
},
exportData() {
if (this.exids.length == 0) {
this.$message.warning("暂无数据");
return false;
} else {
exportMonitorEquip({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `监测设备表.xls`);
});
}
},
handleSelectionChange(val) {
this.multipleSelection = val;
......
......@@ -166,13 +166,18 @@ export default {
},
reset() {
this.railData = formInit();
this.getTableData();
this.searchQuery();
},
exportData() {
if (this.exids.length == 0) {
this.$message.warning("暂无数据");
return false;
} else {
exportRailWay({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `铁路线表.xls`);
});
}
},
handleSelectionChange(val) {
this.multipleSelection = val;
......@@ -181,6 +186,7 @@ export default {
},
handleView(row) {
console.log(row);
this.$router.push({
path: "/detail",
query: {
......
......@@ -167,12 +167,17 @@ export default {
},
reset() {
this.siteForm = formInit();
this.getTableData();
this.searchQuery();
},
exportData() {
if (this.exids.length == 0) {
this.$message.warning("暂无数据");
return false;
} else {
exportSite({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `站点表.xls`);
});
}
},
handleSelectionChange(val) {
this.multipleSelection = val;
......
......@@ -10,7 +10,7 @@
</div>
</div>
<div v-if="isQuery">
<search @search="getTableData" ref="reset" />
<search @search="search" ref="reset" />
</div>
<el-table
:data="tableData"
......@@ -24,12 +24,12 @@
<el-table-column prop="operateTypeName" label="操作类别" align="center" />
<el-table-column prop="operateObjName" label="操作对象" align="center" />
<el-table-column prop="objectName" label="对象名称" align="center" />
<el-table-column prop="operateContent" label="操作内容" align="center" />
<el-table-column
prop="operateContent"
label="操作内容"
prop="operateResultName"
label="操作结果"
align="center"
/>
<el-table-column prop="operateResultName" label="操作结果" align="center" />
<el-table-column prop="creationTime" label="操作时间" align="center" />
</el-table>
<Pagination
......@@ -40,13 +40,13 @@
@pagination="handlePageChange"
/>
</div>
</template>
<script>
import { logList } from '../api'
import search from './components/search.vue'
import { exportLog } from '@/api/export'
import download from '@/utils/download'
import { logList } from "../api";
import search from "./components/search.vue";
import { exportLog } from "@/api/export";
import download from "@/utils/download";
import { successAlert, warningAlert } from "@/utils/alert";
export default {
data() {
return {
......@@ -57,45 +57,69 @@ export default {
total: 10,
tableData: [],
isQuery: false,
istrue:0,
searchOption: {},
exids:[]
exids: [],
};
},
components: {
search
search,
},
methods: {
handlePageChange(pageData) {
this.params.size = pageData.size;
this.params.current = pageData.page;
this.getTableData()
this.params.size = pageData.size
this.params.current = pageData.page
this.getTableData();
},
refresh() {
this.$refs.reset != undefined ? (this.$refs.reset.reset()) : (this.getTableData())
refresh() {
this.$refs.reset != undefined
? this.$refs.reset.reset()
: this.getTableData();
},
getTableData(option) {
search(option){
this.istrue=1
this.searchOption = option
this.getTableData()
},
getTableData() {
let params = {
...this.params,
...option
}
logList(params).then(res => {
let list = res.records || []
this.tableData = list
this.total = res.total
this.exids = list.map((i)=>i.id)
})
...this.params,
...this.searchOption,
};
logList(params).then((res) => {
let list = res.records || [];
this.tableData = list;
this.total = res.total;
this.exids = list.map((i) => i.id);
if (this.istrue==1) {
if (this.tableData.length != 0) {
successAlert("查询成功");
} else {
warningAlert("查询结果为空");
}
this.istrue=0
}
});
},
tableRowClassName({ row, rowIndex }) {
return rowIndex % 2 === 0 ? '' : 'single-row'
return rowIndex % 2 === 0 ? "" : "single-row";
},
exportLog() {
exportLog({ids:this.exids}).then(res => {
download(res, 'vnd.ms-excel', `用户日志.xls`)
})
}
if (this.exids.length == 0) {
this.$message.warning("暂无数据");
return false;
} else {
exportLog({ ids: this.exids }).then((res) => {
download(res, "vnd.ms-excel", `用户日志.xls`);
});
}
},
},
mounted() {
this.getTableData();
},
mounted() { this.getTableData() },
};
</script>
<style lang="scss" scoped>
......
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