修改界面

master
夜笙歌 12 months ago
parent 02d0cb01b6
commit bdcef51b98

@ -119,15 +119,9 @@
<el-descriptions class="margin-top" :column="3" border> <el-descriptions class="margin-top" :column="3" border>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
经度 设备编号
</template> </template>
{{ equipmentInfo.longitude }} {{ equipmentInfo.deviceId }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
纬度
</template>
{{ equipmentInfo.latitude }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
@ -135,12 +129,30 @@
</template> </template>
{{ equipmentInfo.deviceName }} {{ equipmentInfo.deviceName }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item>
<template slot="label">
监控单元
</template>
{{ equipmentInfo.monitorUnitName }}
</el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
城市名称 城市名称
</template> </template>
{{ equipmentInfo.deviceLocation }} {{ equipmentInfo.deviceLocation }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item>
<template slot="label">
经度
</template>
{{ equipmentInfo.longitude }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
纬度
</template>
{{ equipmentInfo.latitude }}
</el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
备注 备注
@ -166,6 +178,11 @@
v-loading="loading" v-loading="loading"
:data="historyData" :data="historyData"
style="width: 100%"> style="width: 100%">
<el-table-column
prop="deviceId"
label="设备编号"
width="180">
</el-table-column>
<el-table-column <el-table-column
prop="longitude" prop="longitude"
label="经度" label="经度"
@ -183,6 +200,9 @@
<el-table-column <el-table-column
prop="ts" prop="ts"
label="采集时间"> label="采集时间">
<template slot-scope="scope">
{{ parseTime(scope.row.ts) }}
</template>
</el-table-column> </el-table-column>
</el-table> </el-table>
<pagination <pagination
@ -193,6 +213,82 @@
@pagination="getHistoryData" @pagination="getHistoryData"
/> />
</el-dialog> </el-dialog>
<el-dialog
:visible.sync="isDispose"
width="30%">
<el-descriptions class="margin-top" :column="2" border>
<el-descriptions-item>
<template slot="label">
设备id
</template>
{{ warInfo.deviceId }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
监控单元名称
</template>
{{ warInfo.monitorUnitName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
监控单元类型
</template>
{{ warInfo.monitorUnitTypeName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
告警编号
</template>
{{ warInfo.alarmInfoId }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
告警类型
</template>
{{ warInfo.alarmTypeName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
告警位置
</template>
{{ warInfo.location }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
告警信息
</template>
{{ warInfo.alarmLevelName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
告警时间
</template>
{{ warInfo.createTime }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
告警区域
</template>
{{ warInfo.areaName }}
</el-descriptions-item>
</el-descriptions>
<span>备注</span>
<el-input
style="margin-top: 12px;margin-bottom:12px"
type="textarea"
:rows="2"
placeholder="请输入内容"
v-model="textarea">
</el-input>
<span slot="footer" class="dialog-footer">
<el-button @click="isDispose = false"> </el-button>
<el-button type="primary" @click="disposeThis"></el-button>
<el-button type="primary" @click="disposeAll"></el-button>
</span>
</el-dialog>
</div> </div>
</template> </template>
@ -230,6 +326,10 @@ export default {
}, },
data() { data() {
return { return {
warInfo: {},
textarea: '',
isDispose: false,
disposeNo: '',
loading: false, loading: false,
equipmentInfo: {}, equipmentInfo: {},
num1: 0, num1: 0,
@ -301,33 +401,11 @@ export default {
await this.getTable2Data() await this.getTable2Data()
}, },
dispose(e) { dispose(e) {
this.$confirm('该问题已处理?', '提示', {
confirmButtonText: '确定', this.warInfo = e
cancelButtonText: '取消', this.textarea = ''
type: 'warning' this.isDispose = true
}).then(() => { this.disposeNo = e.no
handleAlarmInfo({
alarmInfoId: e.value1
}).then(e => {
if (e.code === 200) {
this.$message({
type: 'success',
message: '已处理!'
});
this.setAlarmInfos()
} else {
this.$message({
type: 'info',
message: '网络错误'
});
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消'
});
});
}, },
createMap() { createMap() {
map = new AMap.Map('map', { map = new AMap.Map('map', {

@ -176,7 +176,7 @@
<!-- </el-button>--> <!-- </el-button>-->
</div> </div>
<el-dialog :visible.sync="realMap" width="80%" @close="monitorUnitId = null"> <el-dialog :visible.sync="realMap" width="80%" @close="monitorUnitId = null;options=[];value=[]">
<el-form :inline="true" :model="formInline" class="demo-form-inline"> <el-form :inline="true" :model="formInline" class="demo-form-inline">
<el-form-item label="搜索"> <el-form-item label="搜索">
<el-select <el-select
@ -216,18 +216,60 @@
:visible.sync="isDispose" :visible.sync="isDispose"
width="30%"> width="30%">
<el-descriptions class="margin-top" :column="3" border> <el-descriptions class="margin-top" :column="2" border>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
报警信息 设备id
</template>
{{ warInfo.deviceId }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
监控单元名称
</template>
{{ warInfo.monitorUnitName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
监控单元类型
</template>
{{ warInfo.monitorUnitTypeName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
告警编号
</template>
{{ warInfo.alarmInfoId }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
告警类型
</template>
{{ warInfo.alarmTypeName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
告警位置
</template>
{{ warInfo.location }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
告警信息
</template> </template>
{{ warInfo.alarmLevelName }} {{ warInfo.alarmLevelName }}
</el-descriptions-item> </el-descriptions-item>
<el-descriptions-item> <el-descriptions-item>
<template slot="label"> <template slot="label">
报警位置 告警时间
</template> </template>
{{ warInfo.location }} {{ warInfo.createTime }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
告警区域
</template>
{{ warInfo.areaName }}
</el-descriptions-item> </el-descriptions-item>
</el-descriptions> </el-descriptions>
@ -247,26 +289,65 @@
</el-dialog> </el-dialog>
<el-dialog title="设备信息" :visible.sync="equipmentInfoDialog"> <el-dialog title="设备信息" :visible.sync="equipmentInfoDialog">
<el-descriptions class="margin-top" :column="3" border>
<el-descriptions-item> <el-table
<template slot="label"> :data="equipmentInfo"
经度 style="width: 100%">
</template> <el-table-column
{{ equipmentInfo.longitude }} prop="deviceCode"
</el-descriptions-item> label="编号"
<el-descriptions-item> width="180">
<template slot="label"> </el-table-column>
纬度 <el-table-column
</template> prop="deviceName"
{{ equipmentInfo.latitude }} label="名称"
</el-descriptions-item> width="180">
<el-descriptions-item> </el-table-column>
<template slot="label"> <el-table-column
名称 prop="monitorUnitName"
</template> label="监控单元">
{{ equipmentInfo.deviceName }} </el-table-column>
</el-descriptions-item> <el-table-column
</el-descriptions> prop="longitude"
label="经度">
</el-table-column>
<el-table-column
prop="latitude"
label="纬度">
</el-table-column>
</el-table>
<!-- <el-descriptions class="margin-top" :column="3" border v-for="i in equipmentInfo" style="margin-top: 8px">-->
<!-- <el-descriptions-item>-->
<!-- <template slot="label">-->
<!-- 编号-->
<!-- </template>-->
<!-- {{ i.deviceCode }}-->
<!-- </el-descriptions-item>-->
<!-- <el-descriptions-item>-->
<!-- <template slot="label">-->
<!-- 名称-->
<!-- </template>-->
<!-- {{ i.deviceName }}-->
<!-- </el-descriptions-item>-->
<!-- <el-descriptions-item>-->
<!-- <template slot="label">-->
<!-- 监控单元-->
<!-- </template>-->
<!-- {{ i.monitorUnitName }}-->
<!-- </el-descriptions-item>-->
<!-- <el-descriptions-item>-->
<!-- <template slot="label">-->
<!-- 经度-->
<!-- </template>-->
<!-- {{ i.longitude }}-->
<!-- </el-descriptions-item>-->
<!-- <el-descriptions-item>-->
<!-- <template slot="label">-->
<!-- 纬度-->
<!-- </template>-->
<!-- {{ i.latitude }}-->
<!-- </el-descriptions-item>-->
<!-- </el-descriptions>-->
<div slot="footer" class="dialog-footer"> <div slot="footer" class="dialog-footer">
<el-button @click="equipmentInfoDialog = false"> </el-button> <el-button @click="equipmentInfoDialog = false"> </el-button>
<el-button type="primary" @click="getDeviceInfo" :disabled="!monitorUnitId">设备信息</el-button> <el-button type="primary" @click="getDeviceInfo" :disabled="!monitorUnitId">设备信息</el-button>
@ -312,6 +393,7 @@ export default {
data() { data() {
return { return {
containerPic, containerPic,
markerData:[],
isTown: false, isTown: false,
value: [], value: [],
loading: false, loading: false,
@ -320,7 +402,7 @@ export default {
monitorUnitId: null, monitorUnitId: null,
equipmentInfoDialog: false, equipmentInfoDialog: false,
exTableTime: [new Date(new Date().getTime() - 1000 * 60 * 60 * 24), new Date()], exTableTime: [new Date(new Date().getTime() - 1000 * 60 * 60 * 24), new Date()],
equipmentInfo: {}, equipmentInfo: [],
warInfo: {}, warInfo: {},
formInline: {}, formInline: {},
textarea: '', textarea: '',
@ -893,6 +975,7 @@ export default {
this.$nextTick(async () => { this.$nextTick(async () => {
this.createMap() this.createMap()
const data = await getDeviceByAreaId(this.$store.getters.tenantId) const data = await getDeviceByAreaId(this.$store.getters.tenantId)
this.markerData = data.data.map(e => e.devicesList).flat(1)
data.data.map(e => e.devicesList).flat(1).forEach(e => { data.data.map(e => e.devicesList).flat(1).forEach(e => {
this.setMarker(e) this.setMarker(e)
}) })
@ -929,7 +1012,7 @@ export default {
}) })
marker.on('dblclick', () => { marker.on('dblclick', () => {
this.equipmentInfoDialog = true this.equipmentInfoDialog = true
this.equipmentInfo = e this.equipmentInfo = this.markerData.filter(v=>v.monitorUnitId === e.monitorUnitId)
this.monitorUnitId = e.monitorUnitId this.monitorUnitId = e.monitorUnitId
// this.$router.push({path: '/board/equipment', query: {monitorUnitId: e.monitorUnitId}}) // this.$router.push({path: '/board/equipment', query: {monitorUnitId: e.monitorUnitId}})
}); });
@ -964,7 +1047,7 @@ export default {
}) })
marker.on('dblclick', () => { marker.on('dblclick', () => {
this.equipmentInfoDialog = true this.equipmentInfoDialog = true
this.equipmentInfo = e this.equipmentInfo = this.markerData.filter(v=>v.monitorUnitId === e.monitorUnitId)
this.monitorUnitId = e.monitorUnitId this.monitorUnitId = e.monitorUnitId
// this.$router.push({path: '/board/equipment', query: {monitorUnitId: e.monitorUnitId}}) // this.$router.push({path: '/board/equipment', query: {monitorUnitId: e.monitorUnitId}})
}); });
@ -1030,6 +1113,8 @@ export default {
map.remove(polygons) map.remove(polygons)
map.remove(circles) map.remove(circles)
markers = [] markers = []
this.markerData = data
console.log(data)
data.forEach(e => { data.forEach(e => {
if (e.latitude && e.longitude) { if (e.latitude && e.longitude) {
this.setMarker1(e) this.setMarker1(e)
@ -1045,10 +1130,12 @@ export default {
markers = [] markers = []
this.loading = true; this.loading = true;
const {data} = await selectDeviceByName({name: name}) const {data} = await selectDeviceByName({name: name})
this.markerData = data
console.log(data)
this.loading = false; this.loading = false;
let option = [] let option = []
data.forEach(e => { data.forEach(e => {
if (e.latitude && e.longitude) { if (e.latitude && e.longitude && e.deviceName.includes(name)) {
option.push({ option.push({
label: e.deviceName, label: e.deviceName,
value: e value: e

@ -54,7 +54,8 @@
{{ item.alarmTime }} {{ item.alarmTime }}
</div> </div>
<div class="scrollTable" style="width: 10%"> <div class="scrollTable" style="width: 10%">
<el-button v-if="item.handleStatus === '0'" size="mini" type="primary" @click="dispose(item)"></el-button> <el-button v-if="item.handleStatus === '0'" size="mini" type="primary" @click="dispose(item)">
</el-button>
<span v-else style="color: #67C23A;">已处理</span> <span v-else style="color: #67C23A;">已处理</span>
</div> </div>
</div> </div>
@ -80,6 +81,82 @@
</el-pagination> </el-pagination>
</div> </div>
</div> </div>
<el-dialog
:visible.sync="isDispose"
width="30%">
<el-descriptions class="margin-top" :column="2" border>
<el-descriptions-item>
<template slot="label">
设备id
</template>
{{ warInfo.deviceId }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
监控单元名称
</template>
{{ warInfo.monitorUnitName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
监控单元类型
</template>
{{ warInfo.monitorUnitTypeName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
告警编号
</template>
{{ warInfo.alarmInfoId }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
告警类型
</template>
{{ warInfo.alarmTypeName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
告警位置
</template>
{{ warInfo.location }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
告警信息
</template>
{{ warInfo.alarmLevelName }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
告警时间
</template>
{{ warInfo.createTime }}
</el-descriptions-item>
<el-descriptions-item>
<template slot="label">
告警区域
</template>
{{ warInfo.areaName }}
</el-descriptions-item>
</el-descriptions>
<span>备注</span>
<el-input
style="margin-top: 12px;margin-bottom:12px"
type="textarea"
:rows="2"
placeholder="请输入内容"
v-model="textarea">
</el-input>
<span slot="footer" class="dialog-footer">
<el-button @click="isDispose = false"> </el-button>
<el-button type="primary" @click="disposeThis"></el-button>
<el-button type="primary" @click="disposeAll"></el-button>
</span>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
@ -102,6 +179,10 @@ export default {
data() { data() {
return { return {
defaultImg, defaultImg,
warInfo: {},
textarea: '',
isDispose: false,
disposeNo: '',
num1: 0, num1: 0,
num2: 0, num2: 0,
alarmCountGroupAlarmType: [], alarmCountGroupAlarmType: [],
@ -183,33 +264,10 @@ export default {
this.table1Data = data this.table1Data = data
}, },
dispose(e) { dispose(e) {
this.$confirm('该问题已处理?', '提示', { this.warInfo = e
confirmButtonText: '确定', this.textarea = ''
cancelButtonText: '取消', this.isDispose = true
type: 'warning' this.disposeNo = e.no
}).then(() => {
handleAlarmInfo({
alarmInfoId:e.alarmInfoId
}).then(e=>{
if(e.code === 200){
this.$message({
type: 'success',
message: '已处理!'
});
this.setTable3()
}else{
this.$message({
type: 'info',
message: '网络错误'
});
}
})
}).catch(() => {
this.$message({
type: 'info',
message: '已取消'
});
});
} }
} }
}; };

@ -273,7 +273,6 @@
</el-col> </el-col>
</el-row> </el-row>
<el-form-item label="触发条件" prop="triggerCondition"> <el-form-item label="触发条件" prop="triggerCondition">
<el-select v-model="form.triggerCondition" placeholder="请选择触发条件" @input="triggerConditionChange" <el-select v-model="form.triggerCondition" placeholder="请选择触发条件" @input="triggerConditionChange"
:disabled="editedDisabled" style="width: 240px"> :disabled="editedDisabled" style="width: 240px">

@ -4,14 +4,14 @@
<el-col :span="0.1" :xs="24" v-if="toggleRightDisplay"> <el-col :span="0.1" :xs="24" v-if="toggleRightDisplay">
<div @click="toggleDeviceClick"> <div @click="toggleDeviceClick">
<img v-if="toggleMenuRightImg" :src="toggleMenuRightImg" class="hamburger"/> <!-- <img v-if="toggleMenuRightImg" :src="toggleMenuRightImg" class="hamburger"/>-->
</div> </div>
</el-col> </el-col>
<!--网关设备数据--> <!--网关设备数据-->
<el-col :span="4" :xs="24" v-if="toggleLeftDisplay"> <el-col :span="4" :xs="24" v-if="toggleLeftDisplay">
<div @click="toggleDeviceClick" style="display:flex;justify-content: space-between"> <div @click="toggleDeviceClick" style="display:flex;justify-content: space-between">
<h6 class="form-header h6" style="margin: 10px 0 10px 0">网关设备,点击过滤显示子设备</h6> <h6 class="form-header h6" style="margin: 10px 0 10px 0">网关设备,点击过滤显示子设备</h6>
<img v-if="toggleMenuLeftImg" :src="toggleMenuLeftImg" class="hamburger"/> <!-- <img v-if="toggleMenuLeftImg" :src="toggleMenuLeftImg" class="hamburger"/>-->
</div> </div>
<div class="head-container"> <div class="head-container">
<el-input <el-input
@ -545,8 +545,8 @@ export default {
data() { data() {
return { return {
toggleMenuLeftImg: toggleMenuLeftImg, // toggleMenuLeftImg: toggleMenuLeftImg,
toggleMenuRightImg: toggleMenuRightImg, // toggleMenuRightImg: toggleMenuRightImg,
toggleLeftDisplay: true, toggleLeftDisplay: true,
toggleRightDisplay: false, toggleRightDisplay: false,
// //

Loading…
Cancel
Save