|
@@ -4,8 +4,9 @@
|
|
|
<!--主体-->
|
|
|
<div class="spsb_down">
|
|
|
<el-date-picker
|
|
|
- v-model="value"
|
|
|
+ v-model="dataValue"
|
|
|
type="date"
|
|
|
+ @change="updateDataValue"
|
|
|
placeholder="选择日期">
|
|
|
</el-date-picker>
|
|
|
</div>
|
|
@@ -15,13 +16,13 @@
|
|
|
<div class="yjzx_k1">
|
|
|
<img src="../assets/images/sentinel/sb_icon1.png"/>
|
|
|
<span>总计</span>
|
|
|
- <b>235</b>
|
|
|
+ <b>{{eventTotal}}</b>
|
|
|
</div>
|
|
|
<div class="yjzx_k2">
|
|
|
- <p><span>震动预警</span><b>60</b></p>
|
|
|
- <p><span>水位预警</span><b>70</b></p>
|
|
|
- <p><span>位移预警</span><b>45</b></p>
|
|
|
- <p><span>泄露预警</span><b>60</b></p>
|
|
|
+ <p v-for="item in eventNumberList">
|
|
|
+ <span>{{item.eventTypeName}}</span>
|
|
|
+ <b>{{item.countSum}}</b>
|
|
|
+ </p>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="list_tit">事件列表</div>
|
|
@@ -36,25 +37,26 @@
|
|
|
<el-input
|
|
|
placeholder="请输入内容"
|
|
|
suffix-icon="el-icon-search"
|
|
|
- v-model="input1">
|
|
|
+ @change="getEventLeft(1)"
|
|
|
+ v-model="searchLeft">
|
|
|
</el-input>
|
|
|
<dl class="sp_list">
|
|
|
- <dt><span class="dt1">序号</span><span class="dt2">设备名称</span><span class="dt3">定位</span></dt>
|
|
|
- <div class="hei_scroll hei30">
|
|
|
- <dd><span class="dt1">0101</span><span class="dt2">G068545</span><span class="dt3"><img src="../assets/images/sentinel/hz_list_d.png"/></span></dd>
|
|
|
- <dd><span class="dt1">0102</span><span class="dt2">G068545</span><span class="dt3"><img src="../assets/images/sentinel/hz_list_d.png"/></span></dd>
|
|
|
- <dd><span class="dt1">0105</span><span class="dt2">G068545</span><span class="dt3"><img src="../assets/images/sentinel/hz_list_d.png"/></span></dd>
|
|
|
- <dd><span class="dt1">0101</span><span class="dt2">G068545</span><span class="dt3"><img src="../assets/images/sentinel/hz_list_d.png"/></span></dd>
|
|
|
- <dd><span class="dt1">0105</span><span class="dt2">G068545</span><span class="dt3"><img src="../assets/images/sentinel/hz_list_d.png"/></span></dd>
|
|
|
- <dd><span class="dt1">0101</span><span class="dt2">G068545</span><span class="dt3"><img src="../assets/images/sentinel/hz_list_d.png"/></span></dd>
|
|
|
- <dd><span class="dt1">0103</span><span class="dt2">G068545</span><span class="dt3"><img src="../assets/images/sentinel/hz_list_d.png"/></span></dd>
|
|
|
- <dd><span class="dt1">0104</span><span class="dt2">G068545</span><span class="dt3"><img src="../assets/images/sentinel/hz_list_d.png"/></span></dd>
|
|
|
+ <dt><span class="dtc1">序号</span><span class="dtc2">设备名称</span><span class="dtc3">定位</span></dt>
|
|
|
+ <div class="hei_scroll hei30" >
|
|
|
+ <dd v-for="(item,index) in eventLeftList">
|
|
|
+ <span class="dtc1">{{index+1}}</span>
|
|
|
+ <span class="dtc2">{{item.eventTitle.length>15?item.eventTitle.substring(0,15)+'...':item.eventTitle}}</span>
|
|
|
+ <span class="dtc3" @click="flyTo(item.longitude,item.latitude)"><img src="../assets/images/sentinel/hz_list_d.png"/></span>
|
|
|
+ </dd>
|
|
|
</div>
|
|
|
</dl>
|
|
|
<el-pagination
|
|
|
background
|
|
|
layout="prev, pager, next"
|
|
|
- :total="100">
|
|
|
+ @prev-click="getEventLeft"
|
|
|
+ @next-click="getEventLeft"
|
|
|
+ @current-change="getEventLeft"
|
|
|
+ :total="leftTotal">
|
|
|
</el-pagination>
|
|
|
</div>
|
|
|
<div class="con_right">
|
|
@@ -62,156 +64,44 @@
|
|
|
<el-input
|
|
|
placeholder="请输入事件名称"
|
|
|
suffix-icon="el-icon-search"
|
|
|
- v-model="input1">
|
|
|
+ @change="getEventRight(1)"
|
|
|
+ v-model="searchRight">
|
|
|
</el-input>
|
|
|
<dl class="sp_list yjsj_list">
|
|
|
<dt><span class="dt1">序号</span><span class="dt2">应急事件名称</span><span class="dt3">发生时间</span></dt>
|
|
|
<div class="hei_scroll hei64">
|
|
|
- <dd><span class="dt1">0101</span><span class="dt2">G068545</span><span class="dt3">2025/02/06 11:45:11</span></dd>
|
|
|
- <dd><span class="dt1">0102</span><span class="dt2">G068545</span><span class="dt3">2025/02/06 11:45:11</span></dd>
|
|
|
- <dd><span class="dt1">0105</span><span class="dt2">G068545</span><span class="dt3">2025/02/06 11:45:11</span></dd>
|
|
|
- <dd><span class="dt1">0101</span><span class="dt2">G068545</span><span class="dt3">2025/02/06 11:45:11</span></dd>
|
|
|
- <dd><span class="dt1">0105</span><span class="dt2">G068545</span><span class="dt3">2025/02/06 11:45:11</span></dd>
|
|
|
- <dd><span class="dt1">0101</span><span class="dt2">G068545</span><span class="dt3">2025/02/06 11:45:11</span></dd>
|
|
|
- <dd><span class="dt1">0103</span><span class="dt2">G068545</span><span class="dt3">2025/02/06 11:45:11</span></dd>
|
|
|
- <dd><span class="dt1">0105</span><span class="dt2">G068545</span><span class="dt3">2025/02/06 11:45:11</span></dd>
|
|
|
- <dd><span class="dt1">0101</span><span class="dt2">G068545</span><span class="dt3">2025/02/06 11:45:11</span></dd>
|
|
|
- <dd><span class="dt1">0105</span><span class="dt2">G068545</span><span class="dt3">2025/02/06 11:45:11</span></dd>
|
|
|
- <dd><span class="dt1">0101</span><span class="dt2">G068545</span><span class="dt3">2025/02/06 11:45:11</span></dd>
|
|
|
- <dd><span class="dt1">0103</span><span class="dt2">G068545</span><span class="dt3">2025/02/06 11:45:11</span></dd>
|
|
|
- <dd><span class="dt1">0105</span><span class="dt2">G068545</span><span class="dt3">2025/02/06 11:45:11</span></dd>
|
|
|
- <dd><span class="dt1">0101</span><span class="dt2">G068545</span><span class="dt3">2025/02/06 11:45:11</span></dd>
|
|
|
- <dd><span class="dt1">0105</span><span class="dt2">G068545</span><span class="dt3">2025/02/06 11:45:11</span></dd>
|
|
|
- <dd><span class="dt1">0101</span><span class="dt2">G068545</span><span class="dt3">2025/02/06 11:45:11</span></dd>
|
|
|
- <dd><span class="dt1">0103</span><span class="dt2">G068545</span><span class="dt3">2025/02/06 11:45:11</span></dd>
|
|
|
- <dd><span class="dt1">0104</span><span class="dt2">G068545</span><span class="dt3">2025/02/06 11:45:11</span></dd>
|
|
|
+ <dd v-for="(item,index) in eventRightList">
|
|
|
+ <span class="dt1">{{index+1}}</span><span class="dt2">{{item.eventTitle.length>5?item.eventTitle.substring(0,5)+'...':item.eventTitle}}</span><span class="dt3">{{item.createTime}}</span>
|
|
|
+ </dd>
|
|
|
</div>
|
|
|
</dl>
|
|
|
<el-pagination
|
|
|
background
|
|
|
layout="prev, pager, next"
|
|
|
- :total="100">
|
|
|
+ @prev-click="getEventRight"
|
|
|
+ @next-click="getEventRight"
|
|
|
+ @current-change="getEventRight"
|
|
|
+ :total="rightTotal">
|
|
|
</el-pagination>
|
|
|
</div>
|
|
|
- <div class="visual-body">
|
|
|
- <!--弹框演示模板 开始-->
|
|
|
- <img src="../assets/images/sentinel/hz_qy4.png" class="qydw1"/>
|
|
|
- <img src="../assets/images/sentinel/hz_qy.png" class="qydw2"/>
|
|
|
- <img src="../assets/images/sentinel/hz_qy.png" class="qydw3"/>
|
|
|
- <div class="tk_div red_div">
|
|
|
- <div class="tk1 tk_bor">
|
|
|
- <h1>事件详情<i>使用中</i></h1>
|
|
|
- <p>事件名称:超级大姐发生燃气事件</p>
|
|
|
- <p>上报设备:燃气哨兵</p>
|
|
|
- <p>上报时间:2025/02/06 11:45:11</p>
|
|
|
- <p>事件类型:燃气事件</p>
|
|
|
- <p>所在街道:紫气大路</p>
|
|
|
- <p>事件坐标:43°43′5% 125°19</p>
|
|
|
- <p>所属部门:燃气</p>
|
|
|
- <p>处理流程:<a @click="dialogVisible = true">详情</a></p>
|
|
|
- </div>
|
|
|
- <div class="tk2 tk_bor" v-if="isVisible">
|
|
|
- <h1>哨兵详情</h1>
|
|
|
- <div id="sbxqChart" ref="MyChart"></div>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <!--弹框演示模板 结束-->
|
|
|
-
|
|
|
- <!--弹框 开始-->
|
|
|
- <el-dialog
|
|
|
- title="事件处理流程"
|
|
|
- :visible.sync="dialogVisible"
|
|
|
- width="70%"
|
|
|
- :before-close="handleClose">
|
|
|
-
|
|
|
- <div class="sjlc_con">
|
|
|
- <div class="sjlc_div">
|
|
|
- <i><img src="../assets/images/sentinel/sb_icon2.png" /></i>
|
|
|
- <h4>事件上报</h4>
|
|
|
- <p>事件名称:超级大街燃气爆炸</p>
|
|
|
- <p>上报时间:2025/02/06 11:56:25</p>
|
|
|
- <p>上报设备:GBD15</p>
|
|
|
- <p>预警类型:燃气爆炸</p>
|
|
|
- <p>事件坐标:43°43′5% 125°19</p>
|
|
|
- </div>
|
|
|
- <u></u>
|
|
|
- <div class="sjlc_div">
|
|
|
- <i><img src="../assets/images/sentinel/sb_icon3.png" /></i>
|
|
|
- <h4>事件研判</h4>
|
|
|
- <p>事件名称:超级大街燃气爆炸</p>
|
|
|
- <p>上报时间:2025/02/06 11:56:25</p>
|
|
|
- <p>上报设备:GBD15</p>
|
|
|
- <p>预警类型:燃气爆炸</p>
|
|
|
- <p>事件坐标:43°43′5% 125°19</p>
|
|
|
- </div>
|
|
|
- <u class="date"></u>
|
|
|
- <div class="sjlc_div date_div">
|
|
|
- <i><img src="../assets/images/sentinel/sb_icon4.png" /></i>
|
|
|
- <h4>事件派发</h4>
|
|
|
- <p>事件名称:超级大街燃气爆炸</p>
|
|
|
- <p>上报时间:2025/02/06 11:56:25</p>
|
|
|
- <p>上报设备:GBD15</p>
|
|
|
- <p>预警类型:燃气爆炸</p>
|
|
|
- <p>事件坐标:43°43′5% 125°19</p>
|
|
|
- </div>
|
|
|
- <u></u>
|
|
|
- <div class="sjlc_div">
|
|
|
- <i><img src="../assets/images/sentinel/sb_icon5.png" /></i>
|
|
|
- <h4>事件处置</h4>
|
|
|
- <p>事件名称:超级大街燃气爆炸</p>
|
|
|
- <p>上报时间:2025/02/06 11:56:25</p>
|
|
|
- <p>上报设备:GBD15</p>
|
|
|
- <p>预警类型:燃气爆炸</p>
|
|
|
- <p>事件坐标:43°43′5% 125°19</p>
|
|
|
- </div>
|
|
|
- <u></u>
|
|
|
- <div class="sjlc_div">
|
|
|
- <i><img src="../assets/images/sentinel/sb_icon6.png" /></i>
|
|
|
- <h4>已经办结</h4>
|
|
|
- <p>事件名称:超级大街燃气爆炸</p>
|
|
|
- <p>上报时间:2025/02/06 11:56:25</p>
|
|
|
- <p>上报设备:GBD15</p>
|
|
|
- <p>预警类型:燃气爆炸</p>
|
|
|
- <p>事件坐标:43°43′5% 125°19</p>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="sjcl_media_con">
|
|
|
- <div class="sjcl_media">
|
|
|
- <img src="../assets/images/sentinel/sb_img1.png"/>
|
|
|
- </div>
|
|
|
- <div class="sjcl_img">
|
|
|
- <img src="../assets/images/sentinel/sb_img2.png"/>
|
|
|
- <img src="../assets/images/sentinel/sb_img2.png"/>
|
|
|
- <img src="../assets/images/sentinel/sb_img2.png"/>
|
|
|
- <img src="../assets/images/sentinel/sb_img2.png"/>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
-
|
|
|
- </el-dialog>
|
|
|
- <!--弹框 结束-->
|
|
|
-
|
|
|
- <!-- 地图 -->
|
|
|
- <supermap ref="supermap" style="width: 100%;height: 100vh;">
|
|
|
- </supermap>
|
|
|
- </div>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import Cookies from 'js-cookie'
|
|
|
- import supermap from '@/components/supermap-2.5d' //超图
|
|
|
import {getUserProfile} from "@/api/system/user";
|
|
|
+ import {getEventList,getStatisticByEventType} from "@/api/event";
|
|
|
|
|
|
import '../assets/styles/sb_body.css';
|
|
|
|
|
|
import {
|
|
|
selectConfigKey
|
|
|
} from "@/api/system/config";
|
|
|
+ import {param} from "@/utils";
|
|
|
// import * as echarts from 'echarts'
|
|
|
let echarts = require("echarts");
|
|
|
export default {
|
|
|
components: {
|
|
|
- supermap,
|
|
|
},
|
|
|
metaInfo () {
|
|
|
return {
|
|
@@ -226,19 +116,20 @@
|
|
|
}
|
|
|
},
|
|
|
created() {
|
|
|
-
|
|
|
+ this.getEventLeft(1);
|
|
|
+ this.getEventRight(1);
|
|
|
+ this.getSupermapEvent();
|
|
|
+ this.getStatisticByEventType();
|
|
|
},
|
|
|
mounted() {
|
|
|
// 初始化地图数据
|
|
|
- // this.getSuperMapUrl();
|
|
|
setTimeout(() => {
|
|
|
this.title = '四平市智慧哨兵监管平台'
|
|
|
}, 1000);
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
- title:'四平市智慧哨兵监管平台',
|
|
|
- dialogVisible: false,
|
|
|
+ dialogVisible: false,
|
|
|
pickerOptions: {
|
|
|
disabledDate(time) {
|
|
|
return time.getTime() > Date.now();
|
|
@@ -264,10 +155,22 @@
|
|
|
}
|
|
|
}]
|
|
|
},
|
|
|
- value: '',
|
|
|
- input:'',
|
|
|
- input1: '',
|
|
|
+ dataValue: this.getCurrentDataStr(new Date()),
|
|
|
+
|
|
|
+ eventNumberList:[],
|
|
|
+ eventTotal:0,
|
|
|
+
|
|
|
title:'四平市智慧哨兵监管平台',
|
|
|
+ searchLeft: '',
|
|
|
+ eventLeftList:[],
|
|
|
+ leftTotal:0,
|
|
|
+ leftCurrentPage:1,
|
|
|
+
|
|
|
+ searchRight:'',
|
|
|
+ eventRightList:[],
|
|
|
+ rightTotal:0,
|
|
|
+ rightCurrentPage:1,
|
|
|
+
|
|
|
options: [{
|
|
|
value: '选项1',
|
|
|
label: '华生1'
|
|
@@ -288,35 +191,95 @@
|
|
|
}
|
|
|
},
|
|
|
methods: {
|
|
|
- getSuperMapUrl(){
|
|
|
- getUserProfile().then(response => {
|
|
|
- let mapDeptId=response.mapDeptId
|
|
|
- let num = 0;
|
|
|
- if (mapDeptId == "365") {
|
|
|
- num = 0;
|
|
|
- } else if (mapDeptId == "369") {
|
|
|
- num = 1;
|
|
|
- } else if (mapDeptId == "371") {
|
|
|
- num = 2;
|
|
|
- } else if (mapDeptId == "373") {
|
|
|
- num = 3;
|
|
|
- } else if (mapDeptId == "372") {
|
|
|
- num = 4;
|
|
|
- } else if (mapDeptId == "370") {
|
|
|
- num = 5;
|
|
|
- }
|
|
|
- this.$refs.supermap.removeAllviewer(mapDeptId, -1);
|
|
|
- });
|
|
|
- },
|
|
|
-// 弹框开启
|
|
|
- handleClose(done) {
|
|
|
- this.$confirm('确认关闭?')
|
|
|
- .then(_ => {
|
|
|
- done();
|
|
|
- })
|
|
|
- .catch(_ => {});
|
|
|
+ getStatisticByEventType(){
|
|
|
+ getStatisticByEventType().then(req => {
|
|
|
+ this.eventNumberList = req.data;
|
|
|
+ for(let item of req.data){
|
|
|
+ this.eventTotal += item.countSum
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getCurrentDataStr(date) {
|
|
|
+ let y = date.getFullYear()
|
|
|
+ let m = date.getMonth() + 1
|
|
|
+ m = m < 10 ? '0' + m : m
|
|
|
+ let d = date.getDate()
|
|
|
+ d = d < 10 ? '0' + d : d
|
|
|
+ return y + '-' + m + '-' + d
|
|
|
+ },
|
|
|
+ updateDataValue(value){
|
|
|
+ this.dataValue = this.getCurrentDataStr(value);
|
|
|
+ this.getEventLeft(1);
|
|
|
+ this.getEventRight(1);
|
|
|
+ },
|
|
|
+ getEventLeft(pageNum){
|
|
|
+ let param = {
|
|
|
+ pageNum:pageNum,
|
|
|
+ pageSize:10,
|
|
|
+ eventTitle:this.searchLeft,
|
|
|
+ createTimeRange:this.dataValue+","+this.dataValue,
|
|
|
+ };
|
|
|
+ getEventList(param).then(req => {
|
|
|
+ this.eventLeftList = req.rows;
|
|
|
+ this.leftTotal = req.total;
|
|
|
+ })
|
|
|
+ },
|
|
|
+ flyTo(longitude,latitude){
|
|
|
+ this.$parent.$refs.supermap.flyTo(longitude,latitude);
|
|
|
+ },
|
|
|
+ getEventRight(pageNum){
|
|
|
+ let param = {
|
|
|
+ pageNum:pageNum,
|
|
|
+ pageSize:10,
|
|
|
+ eventTitle:this.searchRight,
|
|
|
+ createTimeRange:this.dataValue+","+this.dataValue,
|
|
|
+ eventTypeCode:'2'
|
|
|
+ };
|
|
|
+ getEventList(param).then(req => {
|
|
|
+ this.eventRightList = req.rows;
|
|
|
+ this.rightTotal = req.total;
|
|
|
+ })
|
|
|
+ },
|
|
|
+ getSupermapEvent(){
|
|
|
+ let that = this;
|
|
|
+ let param = {
|
|
|
+ createTimeRange:this.dataValue+","+this.dataValue,
|
|
|
+ selectClient:"ALL"
|
|
|
+ };
|
|
|
+ getEventList(param).then(res => {
|
|
|
+ const markersList = []
|
|
|
+ if (res.rows != null && res.rows.length > 0) {
|
|
|
+ for (let i = 0; i < res.rows.length; i++) {
|
|
|
+ let markersMap = {
|
|
|
+ lng: 124.59,
|
|
|
+ lat: 43.02,
|
|
|
+ icon: 'marker',
|
|
|
+ bindPopupHtml: '',
|
|
|
+ click: 'openDetails',
|
|
|
+ parameter: res.rows[i],
|
|
|
+ keepBindPopup: false,
|
|
|
+ isAggregation: false
|
|
|
+ }
|
|
|
+ markersMap.icon = "sj-icon-event";
|
|
|
+ if(res.rows[i].eventTypeCode == '2'){//应急事件
|
|
|
+ markersMap.icon = "sj-icon-event-yingji";
|
|
|
+ }
|
|
|
+ markersMap.lng = res.rows[i].longitude
|
|
|
+ markersMap.lat = res.rows[i].latitude
|
|
|
+ markersList.push(markersMap);
|
|
|
}
|
|
|
- }
|
|
|
+ setTimeout(() => {
|
|
|
+ that.$parent.$refs.supermap.clearM()
|
|
|
+ that.$parent.$refs.supermap.setMarkers(markersList)
|
|
|
+ }, 1000)
|
|
|
+ } else {
|
|
|
+ setTimeout(() => {
|
|
|
+ that.$parent.$refs.supermap.clearM()
|
|
|
+ }, 1000)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ },
|
|
|
+ }
|
|
|
}
|
|
|
</script>
|
|
|
<style rel="stylesheet/scss" lang="scss">
|
|
@@ -503,6 +466,30 @@
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ .sp_list span.dtc1 {
|
|
|
+ width: 60px;
|
|
|
+ background: url("../assets/images/sentinel/hz_list_j.png") no-repeat left;
|
|
|
+ padding-left: 15px;
|
|
|
+ }
|
|
|
+
|
|
|
+ .sp_list span.dtc2 {
|
|
|
+ width: 192px;
|
|
|
+ text-align: left;
|
|
|
+ }
|
|
|
+
|
|
|
+ .sp_list span.dtc3 {
|
|
|
+ width: 35px;
|
|
|
+ text-align: center;
|
|
|
+ line-height: 38px;
|
|
|
+ position: relative;
|
|
|
+ }
|
|
|
+
|
|
|
+ .sp_list span.dtc3 img {
|
|
|
+ display: inline-block;
|
|
|
+ position: absolute;
|
|
|
+ top: 10px;
|
|
|
+ left: 11px;
|
|
|
+ }
|
|
|
|
|
|
</style>
|
|
|
<style rel="stylesheet/scss" lang="scss" scoped>
|