feat:积水点部分功能提交

This commit is contained in:
gounaikang@hisense.com 2022-08-25 17:07:17 +08:00
parent a384e13eb1
commit 3609bf595e
4 changed files with 106 additions and 14 deletions

View File

@ -41,11 +41,12 @@
<div class="top"> <div class="top">
<div> <div>
<span class='name'>{{item.waterPointName}}</span> <span class='name'>{{item.waterPointName}}</span>
<span class='topType' v-show="item.reportOrigin !== '2'">{{reportOrigin(item.reportOrigin)}}</span> <!-- <span class='topType' v-show="item.reportOrigin !== '2'">{{reportOrigin(item.reportOrigin)}}</span> -->
<span class='topType' v-show="item.reportOrigin !== '2' && tabsActiveName === '全部'">{{item.waterPointDepth != null ? '水务局' : '水务集团'}}</span>
</div> </div>
<div> <div>
<span class="img" :class=" item.pointLevel=='traffic' ? 'red' : item.pointLevel=='pedestrian' ? 'yellow' : 'green' "></span> <span class="img" :class=" item.pointLevel=='traffic' ? 'red' : item.pointLevel=='pedestrian' ? 'yellow' : 'green' "></span>
<span class="type">{{item.pointLevel=='traffic' ? '影响车辆(>30cm)' : item.pointLevel=='pedestrian' ? '影响行人(<30cm)' : '无积水(<10cm)' }}</span> <span class="type">{{ getDesc(item) }}</span>
</div> </div>
</div> </div>
<div class="bottom"> <div class="bottom">
@ -78,7 +79,7 @@ export default {
}, },
{ {
title:'水务局', title:'水务局',
id:'null' id:'auditorReport'
}, },
{ {
title:'城管局', title:'城管局',
@ -90,7 +91,7 @@ export default {
}, },
{ {
title:'水务集团', title:'水务集团',
id:'auditorReport' id:'null'
}, },
{ {
title:'群众上报', title:'群众上报',
@ -160,6 +161,20 @@ export default {
// }) // })
}, },
methods: { methods: {
getDesc(item) {
let deepth = item.waterPointDepth ? parseFloat(item.waterPointDepth) * 100 : 0
switch(item.pointLevel) {
case 'traffic':
return `影响车辆(${deepth}cm)`
break
case 'pedestrian':
return `影响行人(${deepth}cm)`
break
default:
return `无积水(${deepth}cm)`
break
}
},
selectType (item) { selectType (item) {
if (this.filterButton.typeActive.indexOf(item) > -1) { if (this.filterButton.typeActive.indexOf(item) > -1) {
this.filterButton.typeActive.splice(this.filterButton.typeActive.indexOf(item), 1) this.filterButton.typeActive.splice(this.filterButton.typeActive.indexOf(item), 1)

View File

@ -188,7 +188,7 @@ export default {
} }
}, },
grid: { grid: {
bottom: 40, bottom: 30,
top:10, top:10,
}, },
xAxis: { xAxis: {
@ -238,10 +238,17 @@ export default {
barWidth: 23, barWidth: 23,
label: { label: {
show: true, show: true,
position: 'top', position: 'inside',
distance: 5, distance: 0,
color: 'fe982a', formatter: function(param) {
fontSize: 18 if(param.value > 0)
return param.value
else return ''
},
textStyle: {
color: '#fff',
fontSize: 12
}
} }
} }
] ]

View File

@ -23,9 +23,14 @@
width: 280px; width: 280px;
height: 158px; height: 158px;
cursor: pointer; cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
border: #f2f2f2 1px solid;
" "
> >
<img @click="show" style="width:100%;height:100%;" :src="feature.data.videoCapture||''" alt=""> <img v-if="feature.data.videoCapture" @click="show" style="width:100%;height:100%;" :src="feature.data.videoCapture||''" alt="">
<span v-else>暂无视频内容</span>
</div> </div>
<div class="video-table"> <div class="video-table">
<h4>周边监控</h4> <h4>周边监控</h4>
@ -47,7 +52,12 @@
> >
<el-table-column align="center" width="64" label="序号" type="index" style="text-align: center"> <el-table-column align="center" width="64" label="序号" type="index" style="text-align: center">
</el-table-column> </el-table-column>
<el-table-column prop="cameraName" label="设备名称" show-overflow-tooltip></el-table-column> <el-table-column prop="cameraName" label="设备名称" show-overflow-tooltip>
<template slot-scope="scope">
<span v-if="scope.row.cameraName">{{ scope.row.cameraName }}</span>
<span v-else>暂无设备</span>
</template>
</el-table-column>
</el-table> </el-table>
</div> </div>
</div> </div>
@ -58,6 +68,9 @@
<div> <div>
更新时间: {{ feature.data.updatedDate || "" }} 更新时间: {{ feature.data.updatedDate || "" }}
</div> </div>
<div class="btn-area">
<button class="button" @click="analyse(feature)">线索分析</button>
</div>
</div> </div>
</template> </template>
<script> <script>
@ -123,7 +136,10 @@ export default {
const viewer = this.$el.querySelector('.images').$viewer const viewer = this.$el.querySelector('.images').$viewer
viewer.show() viewer.show()
}, },
// 线
analyse(data) {
bus.$emit('waterPointAnalysis',data)
},
openVideo(row){ openVideo(row){
console.log(row) console.log(row)
bus.$emit('openCurrentVideoWaterPoint',row.channelCode) bus.$emit('openCurrentVideoWaterPoint',row.channelCode)
@ -148,7 +164,7 @@ export default {
} }
.leaflet-popup-content { .leaflet-popup-content {
width: 634px !important; width: 634px !important;
height: 400px; height: 420px;
padding: 12px 16px; padding: 12px 16px;
.pop-box { .pop-box {
width: 100%; width: 100%;
@ -275,4 +291,18 @@ export default {
color: #fff; color: #fff;
} }
} }
.btn-area {
margin: 10px 0;
text-align: right;
.button {
width: 144px;
height: 50px;
background: url("~@/assets/img/roadGovernancePop.png") no-repeat;
color: #082d36;
line-height: 10px;
text-align: center;
border: none;
cursor: pointer;
}
}
</style> </style>

View File

@ -93,6 +93,7 @@
import { HieimpMap } from '@/supermap/map-init' import { HieimpMap } from '@/supermap/map-init'
import TiledMap from './components/tiledMap' import TiledMap from './components/tiledMap'
import { searchCamera } from '@/api/videoSurveillance/index' import { searchCamera } from '@/api/videoSurveillance/index'
import { selectAllByGps } from '@/api/road'
import bus from '@/views/layout/bus' import bus from '@/views/layout/bus'
import complaintEvent from './components/ComplaintEvent' import complaintEvent from './components/ComplaintEvent'
import VideoList from './components/VideoList' import VideoList from './components/VideoList'
@ -132,7 +133,11 @@ export default {
this.hiMap.mapObj, this.hiMap.mapObj,
this.hiMapFun this.hiMapFun
) )
bus.$off('openCurrentVideoSurveillance')
bus.$on('openCurrentVideoSurveillance', (channelCode) => {
this.openVideo = true
this.channelCode.unshift(channelCode)
})
bus.$off('openCauseAnalysis') bus.$off('openCauseAnalysis')
bus.$on('openCauseAnalysis', (row) => { bus.$on('openCauseAnalysis', (row) => {
this.hiMap.mapObj.map.flyTo({ lat: row.wd, lng: row.jd }) this.hiMap.mapObj.map.flyTo({ lat: row.wd, lng: row.jd })
@ -150,6 +155,14 @@ export default {
) )
}) })
bus.$off('waterPointAnalysis')
bus.$on('waterPointAnalysis', (row) => {
this.hiMapFun.removerPolygon()
this.hiMapFun.removeLayerByLayerName('videoSurveillance')
this.circle(row.latLng)
this.selectAllByGps(row.latLng)
})
bus.$off('waterPoint') bus.$off('waterPoint')
bus.$on('waterPoint', (waterPointData) => { bus.$on('waterPoint', (waterPointData) => {
this.waterPointOnMap(waterPointData) this.waterPointOnMap(waterPointData)
@ -221,6 +234,33 @@ export default {
circle (latlng) { circle (latlng) {
this.hiMapFun.addCircleToMap(latlng, 3500) this.hiMapFun.addCircleToMap(latlng, 3500)
}, },
//
async selectAllByGps (data) {
const param = {
gpsX: data.lng,
gpsY: data.lat,
radius: 3000
}
const res = await selectAllByGps(param)
const dataEvent = []
res.data.data.forEach((item) => {
const arr = [0, 0.0, '', '0', '0.0']
if (arr.indexOf(item.gpsX) == -1) {
dataEvent.push({
latLng: { lat: Number(item.gpsY), lng: Number(item.gpsX) },
data: item,
type: 'videoSurveillance'
})
}
})
this.hiMapFun.addResourceOnMapWithoutSuperMapCluster(
dataEvent,
'videoSurveillance.png',
'videoSurveillance',
createCameraDetailsPop
)
},
// //
async WithinRadiusSite (data) { async WithinRadiusSite (data) {
const param = { const param = {