parent
68beb62bcb
commit
157f4a96ad
3 changed files with 532 additions and 2 deletions
@ -0,0 +1,79 @@ |
|||||||
|
<template> |
||||||
|
<div class="page"> |
||||||
|
<div style="background: #1e283d; height: 92vh; width: 218px"> |
||||||
|
<el-menu |
||||||
|
class="el-menu-vertical-demo" |
||||||
|
@open="handleOpen" |
||||||
|
@close="handleClose" |
||||||
|
background-color="#1E283D" |
||||||
|
active-background-color="red" |
||||||
|
text-color="#fff" |
||||||
|
active-text-color="#ffd04b" |
||||||
|
:default-active="$route.path" |
||||||
|
router |
||||||
|
> |
||||||
|
<el-submenu index="1"> |
||||||
|
<template slot="title"> |
||||||
|
<span class="point"></span> |
||||||
|
<span>系统监控</span> |
||||||
|
</template> |
||||||
|
<el-menu-item-group> |
||||||
|
<el-menu-item index="/opsVisualization/index">服务监控</el-menu-item> |
||||||
|
<el-menu-item index="/opsVisualization/warnHistory">Redis监控</el-menu-item> |
||||||
|
<el-menu-item index="/opsVisualization/index">数据库监控</el-menu-item> |
||||||
|
<el-menu-item index="/opsVisualization/index">网络监控</el-menu-item> |
||||||
|
<el-menu-item index="/opsVisualization/index">系统硬件监控</el-menu-item> |
||||||
|
</el-menu-item-group> |
||||||
|
</el-submenu> |
||||||
|
<el-submenu index="2"> |
||||||
|
<template slot="title"> |
||||||
|
<i class="point"></i> |
||||||
|
<span>业务数据运维</span> |
||||||
|
</template> |
||||||
|
<el-menu-item-group> |
||||||
|
<el-menu-item index="/opsVisualization/index">服务监控</el-menu-item> |
||||||
|
<el-menu-item index="/opsVisualization/index">Redis监控</el-menu-item> |
||||||
|
<el-menu-item index="/opsVisualization/index">数据库监控</el-menu-item> |
||||||
|
<el-menu-item index="/opsVisualization/index">网络监控</el-menu-item> |
||||||
|
<el-menu-item index="/opsVisualization/index">系统硬件监控</el-menu-item> |
||||||
|
</el-menu-item-group> |
||||||
|
</el-submenu> |
||||||
|
</el-menu> |
||||||
|
</div> |
||||||
|
</div> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
|
||||||
|
export default { |
||||||
|
data() { |
||||||
|
return {}; |
||||||
|
}, |
||||||
|
watch: {}, |
||||||
|
computed: {}, |
||||||
|
mounted() {}, |
||||||
|
methods: {}, |
||||||
|
}; |
||||||
|
</script> |
||||||
|
|
||||||
|
<style lang="scss" scoped> |
||||||
|
.page{ |
||||||
|
position: absolute; |
||||||
|
top: 64px; |
||||||
|
left: 0; |
||||||
|
z-index: 1027; |
||||||
|
} |
||||||
|
/deep/.el-menu-item-group__title { |
||||||
|
padding: 0; |
||||||
|
} |
||||||
|
.point { |
||||||
|
width: 4px; |
||||||
|
height: 4px; |
||||||
|
background: #fff; |
||||||
|
opacity: 0.7; |
||||||
|
display: inline-block; |
||||||
|
margin: 0 20px 0 30px; |
||||||
|
border-radius: 50%; |
||||||
|
} |
||||||
|
</style> |
||||||
|
|
||||||
@ -0,0 +1,445 @@ |
|||||||
|
<template> |
||||||
|
<el-row> |
||||||
|
<el-col :span="3"> |
||||||
|
<div class="box"> |
||||||
|
<el-scrollbar> |
||||||
|
<basic-container> |
||||||
|
<avue-tree :option="treeOption" :data="treeData" @node-click="nodeClick" /> |
||||||
|
</basic-container> |
||||||
|
</el-scrollbar> |
||||||
|
</div> |
||||||
|
</el-col> |
||||||
|
<el-col :span="21"> |
||||||
|
<basic-container> |
||||||
|
<avue-crud :option="option" :table-loading="loading" :data="data" ref="crud" v-model="form" |
||||||
|
:permission="permissionList" :before-open="beforeOpen" :before-close="beforeClose" @row-del="rowDel" |
||||||
|
@row-update="rowUpdate" @row-save="rowSave" @search-change="searchChange" @search-reset="searchReset" |
||||||
|
@selection-change="selectionChange" @current-change="currentChange" @size-change="sizeChange" |
||||||
|
@refresh-change="refreshChange" @on-load="onLoad" @tree-load="treeLoad" :page.sync="page"> |
||||||
|
<template slot-scope="scope" slot="areaSearch"> |
||||||
|
<el-select v-model="area"> |
||||||
|
<el-option label="业务区" value="1"></el-option> |
||||||
|
<el-option label="塔台" value="2"></el-option> |
||||||
|
</el-select> |
||||||
|
</template> |
||||||
|
<template slot-scope="scope" slot="startDateSearch"> |
||||||
|
<el-date-picker |
||||||
|
v-model="startDate" |
||||||
|
type="date" |
||||||
|
placeholder="选择日期" |
||||||
|
value-format = 'yyyy-MM-dd' |
||||||
|
format="yyyy-MM-dd" |
||||||
|
> |
||||||
|
</el-date-picker> |
||||||
|
</template> |
||||||
|
<template slot-scope="scope" slot="endDateSearch"> |
||||||
|
<el-date-picker |
||||||
|
v-model="endDate" |
||||||
|
type="date" |
||||||
|
placeholder="选择日期" |
||||||
|
value-format = 'yyyy-MM-dd' |
||||||
|
format="yyyy-MM-dd" |
||||||
|
> |
||||||
|
</el-date-picker> |
||||||
|
</template> |
||||||
|
</avue-crud> |
||||||
|
</basic-container> |
||||||
|
</el-col> |
||||||
|
</el-row> |
||||||
|
</template> |
||||||
|
|
||||||
|
<script> |
||||||
|
import { |
||||||
|
getLazyList, |
||||||
|
remove, |
||||||
|
update, |
||||||
|
add, |
||||||
|
getDept, |
||||||
|
getDeptTree |
||||||
|
} from "@/api/system/dept"; |
||||||
|
import { |
||||||
|
mapGetters |
||||||
|
} from "vuex"; |
||||||
|
import website from '@/config/website'; |
||||||
|
import {getAlarmList,getDeptLazyTree} from '@/api/equipment' |
||||||
|
|
||||||
|
var DIC = { |
||||||
|
alarmType: [{ |
||||||
|
label: '未知', |
||||||
|
value: -1 |
||||||
|
},{ |
||||||
|
label: '事件报警', |
||||||
|
value: 1 |
||||||
|
}, { |
||||||
|
label: '设备报警', |
||||||
|
value: 2 |
||||||
|
}], |
||||||
|
statusType:[{ |
||||||
|
label:'报警中', |
||||||
|
value:1 |
||||||
|
},{ |
||||||
|
label:'已恢复', |
||||||
|
value:2 |
||||||
|
}], |
||||||
|
aereaType:[{ |
||||||
|
label:'业务区', |
||||||
|
value:'1' |
||||||
|
},{ |
||||||
|
label:'塔台', |
||||||
|
value:'2' |
||||||
|
}], |
||||||
|
recoveryType:[{ |
||||||
|
label: ' ', |
||||||
|
value: -1 |
||||||
|
},{ |
||||||
|
label: '手动', |
||||||
|
value: 1 |
||||||
|
}, { |
||||||
|
label: '自动', |
||||||
|
value: 0 |
||||||
|
}] |
||||||
|
} |
||||||
|
export default { |
||||||
|
data() { |
||||||
|
return { |
||||||
|
area:this.$route.query.area ? this.$route.query.area : '1', |
||||||
|
classCode:this.$route.query.classCode ? this.$route.query.classCode : '', |
||||||
|
startDate:'', |
||||||
|
endDate:'', |
||||||
|
form: {}, |
||||||
|
selectionList: [], |
||||||
|
query: {}, |
||||||
|
loading: false, |
||||||
|
parentId: 0, |
||||||
|
page: { |
||||||
|
pageSize: 10, |
||||||
|
currentPage: 1, |
||||||
|
total: 0, |
||||||
|
}, |
||||||
|
option: { |
||||||
|
lazy: true, |
||||||
|
tip: false, |
||||||
|
// simplePage: true, |
||||||
|
searchShow: true, |
||||||
|
searchMenuSpan: 6, |
||||||
|
tree: true, |
||||||
|
border: true, |
||||||
|
index: true, |
||||||
|
selection: true, |
||||||
|
viewBtn: true, |
||||||
|
menuWidth: 80, |
||||||
|
dialogClickModal: false, |
||||||
|
addBtn:false, |
||||||
|
delBtn:false, |
||||||
|
editBtn:false, |
||||||
|
column: [ |
||||||
|
{ |
||||||
|
label:'设备名称', |
||||||
|
prop:'equipName', |
||||||
|
align:'center' |
||||||
|
}, |
||||||
|
{ |
||||||
|
label: "设备位置", |
||||||
|
prop: "location", |
||||||
|
align:'center' |
||||||
|
}, |
||||||
|
{ |
||||||
|
label: "报警信息", |
||||||
|
prop: "warnContent", |
||||||
|
align:'center' |
||||||
|
}, |
||||||
|
{ |
||||||
|
label:'报警区域', |
||||||
|
prop:'area', |
||||||
|
searchslot:true, |
||||||
|
search:true, |
||||||
|
type:"select", |
||||||
|
dicData: DIC.aereaType, |
||||||
|
// hide:true, |
||||||
|
row: false, |
||||||
|
display: false, |
||||||
|
viewDisplay:false, |
||||||
|
align:'center', |
||||||
|
}, |
||||||
|
{ |
||||||
|
label: "报警类型", |
||||||
|
prop: "warnType", |
||||||
|
search: true, |
||||||
|
type:"select", |
||||||
|
dicData: DIC.alarmType, |
||||||
|
align:'center', |
||||||
|
}, |
||||||
|
{ |
||||||
|
label: "报警状态", |
||||||
|
prop: "status", |
||||||
|
type:"select", |
||||||
|
dicData: DIC.statusType, |
||||||
|
align:'center', |
||||||
|
}, |
||||||
|
{ |
||||||
|
label: "报警时间", |
||||||
|
prop: "warnDate", |
||||||
|
type:'datetime', |
||||||
|
width:"140", |
||||||
|
// format:'yyyy-MM-dd', |
||||||
|
// valueFormat:'yyyy-MM-dd', |
||||||
|
align:'center', |
||||||
|
}, |
||||||
|
{ |
||||||
|
label: "开始时间", |
||||||
|
prop: "startDate", |
||||||
|
align:'center', |
||||||
|
searchslot:true, |
||||||
|
hide:true, |
||||||
|
search:true, |
||||||
|
row: false, |
||||||
|
display: false, |
||||||
|
viewDisplay:false |
||||||
|
}, |
||||||
|
{ |
||||||
|
label: "结束时间", |
||||||
|
prop: "endDate", |
||||||
|
align:'center', |
||||||
|
searchslot:true, |
||||||
|
hide:true, |
||||||
|
search:true, |
||||||
|
row: false, |
||||||
|
display: false, |
||||||
|
viewDisplay:false |
||||||
|
}, |
||||||
|
{ |
||||||
|
label: "恢复方式", |
||||||
|
prop: "recoveryType", |
||||||
|
dicData: DIC.recoveryType, |
||||||
|
type:"select", |
||||||
|
align:'center', |
||||||
|
}, |
||||||
|
{ |
||||||
|
label: "恢复人", |
||||||
|
prop: "recoveryPerson", |
||||||
|
align:'center', |
||||||
|
}, |
||||||
|
{ |
||||||
|
label: "恢复时间", |
||||||
|
prop: "recoveryDate", |
||||||
|
type:'datetime', |
||||||
|
align:'center', |
||||||
|
}, |
||||||
|
] |
||||||
|
}, |
||||||
|
data: [], |
||||||
|
treeData:[], |
||||||
|
treeOption: { |
||||||
|
nodeKey: 'id', |
||||||
|
lazy: true, |
||||||
|
treeLoad: function(node, resolve) { |
||||||
|
const parentId = (node.level === 0) ? 0 : node.data.id; |
||||||
|
getDeptLazyTree(parentId).then(res => { |
||||||
|
resolve(res.data.data.map(item => { |
||||||
|
return { |
||||||
|
...item, |
||||||
|
leaf: !item.hasChildren |
||||||
|
} |
||||||
|
})) |
||||||
|
}); |
||||||
|
}, |
||||||
|
addBtn: false, |
||||||
|
menu: false, |
||||||
|
size: 'small', |
||||||
|
props: { |
||||||
|
labelText: '标题', |
||||||
|
label: 'title', |
||||||
|
value: 'value', |
||||||
|
children: 'children' |
||||||
|
} |
||||||
|
}, |
||||||
|
}; |
||||||
|
}, |
||||||
|
computed: { |
||||||
|
...mapGetters(["userInfo", "permission"]), |
||||||
|
permissionList() { |
||||||
|
return { |
||||||
|
addBtn: this.vaildData(this.permission.dept_add, false), |
||||||
|
viewBtn: this.vaildData(this.permission.dept_view, false), |
||||||
|
delBtn: this.vaildData(this.permission.dept_delete, false), |
||||||
|
editBtn: this.vaildData(this.permission.dept_edit, false) |
||||||
|
}; |
||||||
|
}, |
||||||
|
ids() { |
||||||
|
let ids = []; |
||||||
|
this.selectionList.forEach(ele => { |
||||||
|
ids.push(ele.id); |
||||||
|
}); |
||||||
|
return ids.join(","); |
||||||
|
} |
||||||
|
}, |
||||||
|
methods: { |
||||||
|
nodeClick(data){ |
||||||
|
this.classCode = data.key; |
||||||
|
this.page.currentPage = 1; |
||||||
|
this.onLoad(this.page) |
||||||
|
}, |
||||||
|
|
||||||
|
initData() { |
||||||
|
getDeptTree().then(res => { |
||||||
|
const column = this.findObject(this.option.column, "parentId"); |
||||||
|
column.dicData = res.data.data; |
||||||
|
}); |
||||||
|
}, |
||||||
|
handleAdd(row) { |
||||||
|
this.parentId = row.id; |
||||||
|
const column = this.findObject(this.option.column, "parentId"); |
||||||
|
column.value = row.id; |
||||||
|
column.addDisabled = true; |
||||||
|
this.$refs.crud.rowAdd(); |
||||||
|
}, |
||||||
|
rowSave(row, done, loading) { |
||||||
|
add(row).then((res) => { |
||||||
|
// 获取新增数据的相关字段 |
||||||
|
const data = res.data.data; |
||||||
|
row.id = data.id; |
||||||
|
row.deptCategoryName = data.deptCategoryName; |
||||||
|
row.tenantId = data.tenantId; |
||||||
|
this.$message({ |
||||||
|
type: "success", |
||||||
|
message: "操作成功!" |
||||||
|
}); |
||||||
|
// 数据回调进行刷新 |
||||||
|
done(row); |
||||||
|
}, error => { |
||||||
|
window.console.log(error); |
||||||
|
loading(); |
||||||
|
}); |
||||||
|
}, |
||||||
|
rowUpdate(row, index, done, loading) { |
||||||
|
update(row).then(() => { |
||||||
|
this.$message({ |
||||||
|
type: "success", |
||||||
|
message: "操作成功!" |
||||||
|
}); |
||||||
|
// 数据回调进行刷新 |
||||||
|
done(row); |
||||||
|
}, error => { |
||||||
|
window.console.log(error); |
||||||
|
loading(); |
||||||
|
}); |
||||||
|
}, |
||||||
|
rowDel(row, index, done) { |
||||||
|
this.$confirm("确定将选择数据删除?", { |
||||||
|
confirmButtonText: "确定", |
||||||
|
cancelButtonText: "取消", |
||||||
|
type: "warning" |
||||||
|
}) |
||||||
|
.then(() => { |
||||||
|
return remove(row.id); |
||||||
|
}) |
||||||
|
.then(() => { |
||||||
|
this.$message({ |
||||||
|
type: "success", |
||||||
|
message: "操作成功!" |
||||||
|
}); |
||||||
|
// 数据回调进行刷新 |
||||||
|
done(row); |
||||||
|
}); |
||||||
|
}, |
||||||
|
handleDelete() { |
||||||
|
if (this.selectionList.length === 0) { |
||||||
|
this.$message.warning("请选择至少一条数据"); |
||||||
|
return; |
||||||
|
} |
||||||
|
this.$confirm("确定将选择数据删除?", { |
||||||
|
confirmButtonText: "确定", |
||||||
|
cancelButtonText: "取消", |
||||||
|
type: "warning" |
||||||
|
}) |
||||||
|
.then(() => { |
||||||
|
return remove(this.ids); |
||||||
|
}) |
||||||
|
.then(() => { |
||||||
|
// 刷新表格数据并重载 |
||||||
|
this.data = []; |
||||||
|
this.parentId = 0; |
||||||
|
this.$refs.crud.refreshTable(); |
||||||
|
this.$refs.crud.toggleSelection(); |
||||||
|
// 表格数据重载 |
||||||
|
this.onLoad(this.page); |
||||||
|
this.$message({ |
||||||
|
type: "success", |
||||||
|
message: "操作成功!" |
||||||
|
}); |
||||||
|
}); |
||||||
|
}, |
||||||
|
searchReset() { |
||||||
|
this.query.warnType = ''; |
||||||
|
this.query.area = '1'; |
||||||
|
this.startDate = ''; |
||||||
|
this.page.currentPage = 1 |
||||||
|
this.onLoad(this.page); |
||||||
|
}, |
||||||
|
searchChange(params, done) { |
||||||
|
this.query.warnType = params.warnType; |
||||||
|
this.query.startDate = params.startDate; |
||||||
|
this.page.currentPage = 1; |
||||||
|
this.onLoad(); |
||||||
|
done(); |
||||||
|
}, |
||||||
|
selectionChange(list) { |
||||||
|
this.selectionList = list; |
||||||
|
}, |
||||||
|
selectionClear() { |
||||||
|
this.selectionList = []; |
||||||
|
this.$refs.crud.toggleSelection(); |
||||||
|
}, |
||||||
|
beforeOpen(done, type) { |
||||||
|
if (["add", "edit"].includes(type)) { |
||||||
|
this.initData(); |
||||||
|
} |
||||||
|
if (["edit", "view"].includes(type)) { |
||||||
|
|
||||||
|
// getDept(this.form.id).then(res => { |
||||||
|
// this.form = res.data.data; |
||||||
|
// }); |
||||||
|
} |
||||||
|
done(); |
||||||
|
}, |
||||||
|
beforeClose(done) { |
||||||
|
// this.parentId = ""; |
||||||
|
// const column = this.findObject(this.option.column, "parentId"); |
||||||
|
// column.value = ""; |
||||||
|
// column.addDisabled = false; |
||||||
|
done(); |
||||||
|
}, |
||||||
|
currentChange(currentPage) { |
||||||
|
this.page.currentPage = currentPage; |
||||||
|
}, |
||||||
|
sizeChange(pageSize) { |
||||||
|
this.page.pageSize = pageSize; |
||||||
|
}, |
||||||
|
refreshChange() { |
||||||
|
this.onLoad(this.page, this.query); |
||||||
|
}, |
||||||
|
onLoad() { |
||||||
|
this.loading = true; |
||||||
|
getAlarmList(this.query.warnType,this.startDate,this.endDate,this.page.currentPage,this.page.pageSize,this.area,this.classCode).then(res => { |
||||||
|
this.data = res.data.data.records; |
||||||
|
// this.page.total = res.data.data.total |
||||||
|
this.page.total = res.data.data.total; |
||||||
|
console.log(this.page) |
||||||
|
this.loading = false; |
||||||
|
|
||||||
|
}); |
||||||
|
|
||||||
|
// this.selectionClear(); |
||||||
|
}, |
||||||
|
// treeLoad(tree, treeNode, resolve) { |
||||||
|
// const parentId = tree.id; |
||||||
|
// getLazyList(parentId).then(res => { |
||||||
|
// resolve(res.data.data); |
||||||
|
// }); |
||||||
|
// } |
||||||
|
} |
||||||
|
}; |
||||||
|
</script> |
||||||
|
|
||||||
|
<style> |
||||||
|
</style> |
||||||
Loading…
Reference in new issue