22bug,视频监控提示

This commit is contained in:
gaoyuanwei 2022-08-10 16:52:36 +08:00
parent 2674226018
commit 10787a8682
4 changed files with 439 additions and 431 deletions

View File

@ -506,7 +506,12 @@ export default {
bus.$off('openCurrentVideoSurveillance')
bus.$on('openCurrentVideoSurveillance', (channelCode) => {
this.openVideo = true
this.channelCode.unshift(channelCode)
if (!this.channelCode.includes(channelCode)) {
console.log(this.channelCode, channelCode, '====>实时监控')
this.channelCode.unshift(channelCode)
} else {
this.$message.warning('该实时监控已经加入视频列表了!')
}
})
bus.$off('closeVideoDia')
bus.$on('closeVideoDia', () => {

View File

@ -74,36 +74,36 @@
</template>
<script>
import { HieimpMap } from "@/supermap/map-init";
import TiledMap from "./components/tiledMap";
import { searchCamera } from "@/api/videoSurveillance/index";
import bus from "@/views/layout/bus";
import complaintEvent from "./components/ComplaintEvent";
import VideoList from "./components/VideoList";
import SiteList from "./components/SiteList";
import { selectByJdWd,selectByDayRaise,selectByDayNoice,selectByDayRoadData } from "@/api/construction/index";
import { createSiteListPop } from "@/supermap/createMarkerPopup";
import {createCameraDetailsPop} from '@/supermap/createMarkerPopup';
import { HieimpMap } from '@/supermap/map-init'
import TiledMap from './components/tiledMap'
import { searchCamera } from '@/api/videoSurveillance/index'
import bus from '@/views/layout/bus'
import complaintEvent from './components/ComplaintEvent'
import VideoList from './components/VideoList'
import SiteList from './components/SiteList'
import { selectByJdWd, selectByDayRaise, selectByDayNoice, selectByDayRoadData } from '@/api/construction/index'
import { createSiteListPop, createCameraDetailsPop } from '@/supermap/createMarkerPopup'
import VideoPlay from './components/VideoPlay'
import { selectAllByGps } from '@/api/road'
import { selectAllByGps } from '@/api/road'
export default {
data() {
data () {
return {
hiMap: new HieimpMap(), //
mapId: "map-single", // id
mapId: 'map-single', // id
state: "",
state: '',
constructionSiteData: [],
changeLayerBtnList: ['AI事件','视频监控','工地','道路'],
changeLayerBtnList: ['AI事件', '视频监控', '工地', '道路'],
changeLayerBtnGroup: [],
openVideo: false,
channelCode:[],
channelCode: [],
todayListNum: 0,
allListDataNum: 0,
};
allListDataNum: 0
}
},
components: {
TiledMap,
@ -112,308 +112,305 @@ export default {
SiteList,
VideoPlay
},
created() {},
mounted() {
this.hiMapFun = this.hiMap.myMapFun(this.hiMap.mapObj);
created () {},
mounted () {
this.hiMapFun = this.hiMap.myMapFun(this.hiMap.mapObj)
this.multiScreenFun = this.hiMap.multiScreenFun(
this.hiMap.mapObj,
this.hiMapFun
);
)
selectByDayRaise().then((res) => {
this.todayListNum += res.data.data.sum
})
selectByDayNoice().then((res) => {
this.todayListNum += res.data.data.sum
})
selectByDayRoadData().then((res) => {
this.todayListNum += res.data.data.sum
})
//
bus.$off("openCauseAnalysis");
bus.$on("openCauseAnalysis", (row) => {
bus.$off('openCauseAnalysis')
bus.$on('openCauseAnalysis', (row) => {
this.removeRoadCauseAnalysis()
// this.timeRegion = data.data.dt;
// this.hiMapFun.removerPolygon();
this.hiMapFun.removeLayerByLayerName("constructionSite");
this.hiMapFun.removeLayerByLayerName('constructionSite')
// debugger
// this.circle(latLng);
this.hiMap.mapObj.map.flyTo({ lat: row.wd, lng: row.jd });
this.hiMap.mapObj.map.flyTo({ lat: row.wd, lng: row.jd })
// this.WithinRadiusSite(latLng);
let dataEvent = [{
latLng: { lat: row.wd, lng: row.jd },
data: row,
type: "site",
const dataEvent = [{
latLng: { lat: row.wd, lng: row.jd },
data: row,
type: 'site'
}]
this.hiMapFun.addPointsToMap(
dataEvent,
"construction.png",
"constructionSite",
'construction.png',
'constructionSite',
createSiteListPop
);
});
bus.$off("roadOnMap");
bus.$on("roadOnMap",(roadData) => {
this.removeRoadCauseAnalysis()
this.roadOnMap(roadData);
)
})
bus.$off("removeCameraLayer");
bus.$on("removeCameraLayer",(type) => {
bus.$off('roadOnMap')
bus.$on('roadOnMap', (roadData) => {
this.removeRoadCauseAnalysis()
this.roadOnMap(roadData)
})
bus.$off('removeCameraLayer')
bus.$on('removeCameraLayer', (type) => {
this.hiMapFun.removeLayerByLayerName(type)
})
bus.$off("CameraSingleDataOnMap");
bus.$on("CameraSingleDataOnMap",(labelName,data) => {
bus.$off('CameraSingleDataOnMap')
bus.$on('CameraSingleDataOnMap', (labelName, data) => {
this.removeRoadCauseAnalysis()
this.addResourceTomap(labelName,data);
this.addResourceTomap(labelName, data)
})
bus.$off('openCurrentVideoWaterPoint')
bus.$on('openCurrentVideoWaterPoint',channelCode => {
this.openVideo = true;
bus.$on('openCurrentVideoWaterPoint', channelCode => {
this.openVideo = true
this.channelCode.unshift(channelCode)
})
bus.$off("openCurrentVideoSurveillance");
bus.$on("openCurrentVideoSurveillance", (channelCode) => {
this.openVideo = true;
this.channelCode.unshift(channelCode);
});
bus.$off("roadCauseAnalysis");
bus.$on("roadCauseAnalysis", (data) => {
bus.$off('openCurrentVideoSurveillance')
bus.$on('openCurrentVideoSurveillance', (channelCode) => {
this.openVideo = true
if (!this.channelCode.includes(channelCode)) {
console.log(this.channelCode, channelCode, '====>实时监控')
this.channelCode.unshift(channelCode)
} else {
this.$message.warning('该实时监控已经加入视频列表了!')
}
})
bus.$off('roadCauseAnalysis')
bus.$on('roadCauseAnalysis', (data) => {
this.removeRoadCauseAnalysis()
this.circle({ lat: Number(data.lat), lng: Number(data.lng) });
this.selectAllByGps(data);
this.circle({ lat: Number(data.lat), lng: Number(data.lng) })
this.selectAllByGps(data)
this.WithinRadiusSite(data)
});
})
},
methods: {
querySearchAsync(queryString, cb) {
querySearchAsync (queryString, cb) {
if (queryString.length > 0) {
searchCamera(queryString).then((res) => {
cb(res.data.suggestions);
});
cb(res.data.suggestions)
})
}
},
handleSelect(item) {
this.hiMapFun.clearAllLayers();
const arr = item.detail.location.split(",");
handleSelect (item) {
this.hiMapFun.clearAllLayers()
const arr = item.detail.location.split(',')
const searchDataDetail = [
{
latLng: { lat: arr[1], lng: arr[0] },
data: item,
},
];
this.hiMap.mapObj.map.flyTo({ lat: arr[1], lng: arr[0] });
this.hiMapFun.openPopupVideoSurveillance(searchDataDetail[0]);
data: item
}
]
this.hiMap.mapObj.map.flyTo({ lat: arr[1], lng: arr[0] })
this.hiMapFun.openPopupVideoSurveillance(searchDataDetail[0])
this.hiMapFun.addResourceOnMapWithoutSuperMapCluster(
searchDataDetail,
"poi-red.png",
"address"
);
'poi-red.png',
'address'
)
// this.timer = setTimeout(() => {
// this.addResourceTomap("", this.cameraAllData);
// }, 1000);
},
//
circle(latlng) {
this.hiMapFun.addCircleToMap(latlng, 3500);
circle (latlng) {
this.hiMapFun.addCircleToMap(latlng, 3500)
},
//
async WithinRadiusSite(data) {
async WithinRadiusSite (data) {
const param = {
jd: data.lng,
radius: 3000,
wd: data.lat,
};
const res = await selectByJdWd(param);
this.constructionSiteData = res.data.data;
const dataEvent = [];
wd: data.lat
}
const res = await selectByJdWd(param)
this.constructionSiteData = res.data.data
const dataEvent = []
this.constructionSiteData.forEach((item) => {
const arr = [0, 0.0, "", "0", "0.0"];
const arr = [0, 0.0, '', '0', '0.0']
if (arr.indexOf(item.wd) == -1) {
dataEvent.push({
latLng: { lat: Number(item.wd), lng: Number(item.jd) },
data: item,
type: "site",
});
type: 'site'
})
}
});
})
this.hiMapFun.addPointsToMap(
dataEvent,
"construction.png",
"constructionSite",
'construction.png',
'constructionSite',
createSiteListPop
);
)
},
//
roadOnMap(roadData) {
//
roadOnMap (roadData) {
roadData.forEach((item) => {
let newPoint = JSON.parse(item.points);
const newPoint = JSON.parse(item.points)
newPoint[0].map((Point) => {
Point.reverse();
});
item.pm10 = Number(item.pm10);
Point.reverse()
})
item.pm10 = Number(item.pm10)
switch (true) {
case 0 < item.pm10 && item.pm10 <= 50:
this.hiMapFun.addPathToMap(newPoint, "#36fe78");
break;
case 50 < item.pm10 && item.pm10 <= 150:
this.hiMapFun.addPathToMap(newPoint, "#fde202");
break;
case 150 < item.pm10 && item.pm10 <= 250:
this.hiMapFun.addPathToMap(newPoint, "#feb403");
break;
case 250 < item.pm10 && item.pm10 <= 350:
this.hiMapFun.addPathToMap(newPoint, "#fd8402");
break;
case 350 < item.pm10 && item.pm10 <= 420:
this.hiMapFun.addPathToMap(newPoint, "#fd4302");
break;
case 420 < item.pm10 && item.pm10 <= 500:
this.hiMapFun.addPathToMap(newPoint, "#fd0202");
break;
case 500 < item.pm10 && item.pm10 <= 600:
this.hiMapFun.addPathToMap(newPoint, "#a80101");
break;
case 600 < item.pm10 && item.pm10 <= 700:
this.hiMapFun.addPathToMap(newPoint, "#690000");
break;
case item.pm10 > 0 && item.pm10 <= 50:
this.hiMapFun.addPathToMap(newPoint, '#36fe78')
break
case item.pm10 > 50 && item.pm10 <= 150:
this.hiMapFun.addPathToMap(newPoint, '#fde202')
break
case item.pm10 > 150 && item.pm10 <= 250:
this.hiMapFun.addPathToMap(newPoint, '#feb403')
break
case item.pm10 > 250 && item.pm10 <= 350:
this.hiMapFun.addPathToMap(newPoint, '#fd8402')
break
case item.pm10 > 350 && item.pm10 <= 420:
this.hiMapFun.addPathToMap(newPoint, '#fd4302')
break
case item.pm10 > 420 && item.pm10 <= 500:
this.hiMapFun.addPathToMap(newPoint, '#fd0202')
break
case item.pm10 > 500 && item.pm10 <= 600:
this.hiMapFun.addPathToMap(newPoint, '#a80101')
break
case item.pm10 > 600 && item.pm10 <= 700:
this.hiMapFun.addPathToMap(newPoint, '#690000')
break
default:
this.hiMapFun.addPathToMap(newPoint, "#36fe78");
break;
this.hiMapFun.addPathToMap(newPoint, '#36fe78')
break
}
});
})
},
layerHandleChange(item) {
layerHandleChange (item) {
this.removeRoadCauseAnalysis()
if (this.changeLayerBtnGroup.indexOf(item) !== -1) {
switch (item) {
case "道路":
this.roadOnMap(this.$refs.complaintEventRef.roadData);
break;
case "AI事件":
break;
case "视频监控":
this.addResourceTomap('全部',this.$refs.videoListRef.cameraAllData)
break;
case "工地":
this.hiMapFun.removeLayerByLayerName("constructionSite");
let dataEvent = []
case '道路':
this.roadOnMap(this.$refs.complaintEventRef.roadData)
break
case 'AI事件':
break
case '视频监控':
this.addResourceTomap('全部', this.$refs.videoListRef.cameraAllData)
break
case '工地':
this.hiMapFun.removeLayerByLayerName('constructionSite')
const dataEvent = []
this.$refs.siteListRef.siteData.forEach((item) => {
dataEvent.push({
latLng: { lat: Number(item.wd), lng: Number(item.jd) },
data: item,
type: "site",
});
});
type: 'site'
})
})
this.hiMapFun.addPointsToMap(
dataEvent,
"construction.png",
"constructionSite",
'construction.png',
'constructionSite',
createSiteListPop
);
break;
)
break
default:
break;
break
}
} else {
switch (item) {
case "道路":
this.hiMapFun.removerPolyline();
break;
case "AI事件":
break;
case "视频监控":
case '道路':
this.hiMapFun.removerPolyline()
break
case 'AI事件':
break
case '视频监控':
this.hiMapFun.removeLayerByLayerName('全部')
break;
case "工地":
this.hiMapFun.removeLayerByLayerName("constructionSite");
break;
break
case '工地':
this.hiMapFun.removeLayerByLayerName('constructionSite')
break
default:
break;
break
}
}
},
addResourceTomap(type,data) {
const dataEvent = [];
addResourceTomap (type, data) {
const dataEvent = []
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", type, createCameraDetailsPop)
},
circle(latlng) {
this.hiMapFun.addCircleToMap(latlng, 3800);
},
async selectAllByGps(data) {
const param = {
gpsX: data.lng,
gpsY: data.lat,
radius: 3000,
};
const res = await selectAllByGps(param);
console.log(res);
const dataEvent = [];
res.data.data.forEach((item) => {
const arr = [0, 0.0, "", "0", "0.0"];
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",
});
type: 'videoSurveillance'
})
}
});
this.hiMapFun.addResourceOnMapWithoutSuperMapCluster(
dataEvent,
"videoSurveillance.png",
"videoSurveillance",
createCameraDetailsPop
);
})
this.hiMapFun.addResourceOnMapWithoutSuperMapCluster(dataEvent, 'videoSurveillance.png', type, createCameraDetailsPop)
},
removeRoadCauseAnalysis() {
this.hiMapFun.removerPolygon();
this.hiMapFun.removeLayerByLayerName("videoSurveillance");
this.hiMapFun.removeLayerByLayerName("constructionSite");
this.hiMapFun.removeLayerByLayerName("roadPoint")
circle (latlng) {
this.hiMapFun.addCircleToMap(latlng, 3800)
},
async selectAllByGps (data) {
const param = {
gpsX: data.lng,
gpsY: data.lat,
radius: 3000
}
const res = await selectAllByGps(param)
console.log(res)
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
)
},
removeRoadCauseAnalysis () {
this.hiMapFun.removerPolygon()
this.hiMapFun.removeLayerByLayerName('videoSurveillance')
this.hiMapFun.removeLayerByLayerName('constructionSite')
this.hiMapFun.removeLayerByLayerName('roadPoint')
}
},
beforeDestroy() {},
};
beforeDestroy () {}
}
</script>
<style scoped lang="scss">
@import url(../../../../node_modules/element-ui/lib/theme-chalk/index.css);
@font-face {
font-family: 'Tensentype-ZhiHeiJ-W5';
font-family: "Tensentype-ZhiHeiJ-W5";
src: url("../../../assets/construction/TTZhiHeiJ-W5.ttf");
}
.map-box {
@ -442,11 +439,11 @@ export default {
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
font-family: 'Tensentype-ZhiHeiJ-W5';
font-family: "Tensentype-ZhiHeiJ-W5";
}
.title::before {
content: '在建工地综合监管平台';
text-shadow: 0px 3px 10px rgba(0,0,0,.9);
content: "在建工地综合监管平台";
text-shadow: 0px 3px 10px rgba(0, 0, 0, 0.9);
position: absolute;
z-index: -1;
}
@ -457,20 +454,20 @@ export default {
z-index: 1000;
left: 496px;
top: 90px;
border: 1px solid rgba(31,254,253,.9);
border: 1px solid rgba(31, 254, 253, 0.9);
::v-deep .el-input__inner {
color: #fff;
background: rgba($color: #203b5d, $alpha: .8);
background: rgba($color: #203b5d, $alpha: 0.8);
width: 226px;
height: 36px;
border:none;
border: none;
&::placeholder {
color: rgba($color: #fff, $alpha: 0.6);
}
}
::v-deep .el-input__prefix {
top: -1px;
color: rgba(31,254,253,.9);
color: rgba(31, 254, 253, 0.9);
}
::v-deep .el-input-group__append {
width: 54px;
@ -489,7 +486,7 @@ export default {
z-index: -1 !important;
width: 226px !important;
left: 0px !important;
background: rgba(32,59,93,.8);
background: rgba(32, 59, 93, 0.8);
border: 1px solid #1ffefd;
li {
color: #fff;
@ -505,9 +502,9 @@ export default {
z-index: 1000;
left: 10px;
top: 90px;
height:980px;
height: 980px;
width: 478px;
background: rgba($color: #05213b, $alpha: .85)
background: rgba($color: #05213b, $alpha: 0.85);
}
.eventNum {
@ -528,7 +525,7 @@ export default {
span {
font-size: 46px;
font-weight: bold;
background: linear-gradient(0deg, #91f4f8 0%, #ffffff 100% );
background: linear-gradient(0deg, #91f4f8 0%, #ffffff 100%);
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
@ -543,8 +540,8 @@ export default {
right: 8px;
top: 92px;
width: 398px;
height:460px;
background: rgba($color: #05213b, $alpha: .85);
height: 460px;
background: rgba($color: #05213b, $alpha: 0.85);
}
.siteList {
@ -553,14 +550,14 @@ export default {
right: 8px;
top: 562px;
width: 398px;
height:500px;
background: rgba($color: #05213b, $alpha: .85);
height: 500px;
background: rgba($color: #05213b, $alpha: 0.85);
}
.changeLayer {
width: 332px;
height: 67px;
background: rgba(7,26,44,.8);
background: rgba(7, 26, 44, 0.8);
position: absolute;
bottom: 10px;
left: 50%;
@ -571,7 +568,7 @@ export default {
width: 96px;
height: 100%;
font-size: 16px;
color: rgba(255,255,255,.6);
color: rgba(255, 255, 255, 0.6);
text-align: center;
line-height: 67px;
}

View File

@ -297,7 +297,12 @@ export default {
bus.$off('openCurrentVideoSurveillance')
bus.$on('openCurrentVideoSurveillance', (channelCode) => {
this.openVideo = true
this.channelCode.unshift(channelCode)
if (!this.channelCode.includes(channelCode)) {
console.log(this.channelCode, channelCode, '====>实时监控')
this.channelCode.unshift(channelCode)
} else {
this.$message.warning('该实时监控已经加入视频列表了!')
}
})
//

View File

@ -19,7 +19,7 @@
v-model="state"
:fetch-suggestions="querySearchAsync"
placeholder="搜索地点"
:trigger-on-focus="false"
:trigger-on-focus="false"
@select="handleSelect"
:popper-append-to-body='false'
popper-class="my-autocomplete"
@ -35,7 +35,7 @@
<!-- <aside class="left-list">
<h2>事件</h2>
</aside> -->
<aside class="tag-box">
<div class="refresh" @click="refresh"><i class="el-icon-refresh"></i></div>
<el-tabs type="border-card" class="border-card">
@ -48,9 +48,9 @@
>
</el-input>
<el-checkbox-group v-model="checkboxGroup">
<el-checkbox-button
v-for="item in tabList"
:label="item.labelName"
<el-checkbox-button
v-for="item in tabList"
:label="item.labelName"
:key="item.id"
@change="tabChange(item)"
>
@ -63,7 +63,7 @@
placeholder="请输入关键词"
suffix-icon="el-icon-search"
v-model="labelSearch"
@input="searchCameraTree"
@input="searchCameraTree"
>
</el-input>
<!-- <el-checkbox-group v-model="checkStatus" class="checkStatus" style="height:unset">
@ -94,7 +94,7 @@
<el-tree
v-show="!camreaTreeIsShow"
ref="tree"
:data="camreaTreeSingle"
:data="camreaTreeSingle"
:props="{label:'channelName',children:'children'}"
:filter-node-method="filterNode"
@node-click="treeCameraClick"
@ -105,83 +105,81 @@
</el-tree>
</el-tab-pane>
</el-tabs>
</aside>
</aside>
</div>
<video-play
v-if="openVideo"
:key="channelCode"
:key="channelCode"
:channel-id="channelCode"
></video-play>
</div>
</template>
<script>
import { HieimpMap } from "@/supermap/map-init";
import TiledMap from "./components/tiledMap";
import * as turf from '@turf/turf';
import { wgs84LL2bdLL } from '@/utils/coordinateSystemTransform';
import {createCameraDetailsPop} from '@/supermap/createMarkerPopup';
import { HieimpMap } from '@/supermap/map-init'
import TiledMap from './components/tiledMap'
import * as turf from '@turf/turf'
import { wgs84LL2bdLL } from '@/utils/coordinateSystemTransform'
import { createCameraDetailsPop } from '@/supermap/createMarkerPopup'
import VideoPlay from './components/VideoPlay'
import { getCameraAll,getCameraLabel,getCameraAllLabel,searchCamera,getCameraAllOrgan,getCameraByParentId,selectByLabelName,selectByChannelName } from '@/api/videoSurveillance/index'
import bus from '@/views/layout/bus';
import { getCameraAll, getCameraLabel, getCameraAllLabel, searchCamera, getCameraAllOrgan, getCameraByParentId, selectByLabelName, selectByChannelName } from '@/api/videoSurveillance/index'
import bus from '@/views/layout/bus'
// import testjson from "@/assets/response2.json";
export default {
data() {
data () {
return {
loading: true,
hiMap: new HieimpMap(), //
mapId: "map-single", // id
mapId: 'map-single', // id
cameraAllData: [],
cameraAllData:[],
checkboxGroup: [],
tabList: [],
state: '',
timeout: null,
camreaTree:[],
camreaTreeIsShow:true,
timeout: null,
camreaTree: [],
camreaTreeIsShow: true,
camreaTreeSingle: [],
checkStatus: '2',
labelSearch: '',
page: 1,
timer:null,
openVideo:false,
channelCode:[]
timer: null,
openVideo: false,
channelCode: []
// testjson:testjson,
};
}
},
components: {
TiledMap,
VideoPlay
},
created() {
created () {
},
watch: {
page(newV,oldV){
page (newV, oldV) {
this.getCameraAllPage(newV)
},
checkStatus(newV,oldV) {
checkStatus (newV, oldV) {
console.log(newV)
this.$refs.tree.filter(newV)
}
},
mounted() {
this.hiMapFun = this.hiMap.myMapFun(this.hiMap.mapObj);
mounted () {
this.hiMapFun = this.hiMap.myMapFun(this.hiMap.mapObj)
this.multiScreenFun = this.hiMap.multiScreenFun(
this.hiMap.mapObj,
this.hiMapFun
);
this.hiMap.mapObj.map.flyTo({ lat: 36.060, lng: 120.3899},16)
)
this.hiMap.mapObj.map.flyTo({ lat: 36.060, lng: 120.3899 }, 16)
getCameraAllLabel().then((res) => {
this.tabList = res.data.data
});
getCameraAllOrgan({parentId:'S4NbecfYB1DBH8HNULGS34'}).then((res) => {
})
getCameraAllOrgan({ parentId: 'S4NbecfYB1DBH8HNULGS34' }).then((res) => {
this.camreaTree = res.data.data
res.data.data.forEach((item) => {
this.camreaTreeSingle.push({
@ -191,203 +189,207 @@ export default {
})
})
getCameraAll().then((res) => {
let t1 = new Date().getTime();
this.cameraAllData = res.data
this.addResourceTomap('全部',res.data);
this.loading = false
let t2 = new Date().getTime();
console.log("时间#############" + (t2 - t1));
const t1 = new Date().getTime()
this.cameraAllData = res.data
this.addResourceTomap('全部', res.data)
this.loading = false
const t2 = new Date().getTime()
console.log('时间#############' + (t2 - t1))
})
// this.getMapPoint()
bus.$off('openCurrentVideoSurveillance')
bus.$on('openCurrentVideoSurveillance',channelCode => {
this.openVideo = true;
this.channelCode.unshift(channelCode)
bus.$on('openCurrentVideoSurveillance', channelCode => {
this.openVideo = true
if (!this.channelCode.includes(channelCode)) {
console.log(this.channelCode, channelCode, '====>实时监控')
this.channelCode.unshift(channelCode)
} else {
this.$message.warning('该实时监控已经加入视频列表了!')
}
})
},
methods: {
getCameraAllPage(page){
let params = {
page:page,
pageSize:20000
getCameraAllPage (page) {
const params = {
page: page,
pageSize: 20000
}
getCameraAll(params).then((res) => {
// let t1 = new Date().getTime();
this.cameraAllData = res.data.data
this.addResourceTomap('全部',res.data.data);
this.addResourceTomap('全部', res.data.data)
this.loading = false
// let t2 = new Date().getTime();
// console.log("#############" + (t2 - t1));
})
},
tabChange(item){
if(this.checkboxGroup.indexOf(item.labelName) !== -1){
if(item.labelName == '全部'){
this.addResourceTomap('全部',this.cameraAllData)
tabChange (item) {
if (this.checkboxGroup.indexOf(item.labelName) !== -1) {
if (item.labelName == '全部') {
this.addResourceTomap('全部', this.cameraAllData)
this.checkboxGroup = ['全部']
} else {
this.hiMapFun.removeLayerByLayerName('全部');
getCameraLabel({labelCode:item.labelCode}).then((res) => {
this.addResourceTomap(item.labelName,res.data.data);
this.hiMapFun.removeLayerByLayerName('全部')
getCameraLabel({ labelCode: item.labelCode }).then((res) => {
this.addResourceTomap(item.labelName, res.data.data)
res.data.data.forEach((item) => {
this.camreaTreeSingle.forEach((val) => {
if(item.nodeName == val.channelName){
if (item.nodeName == val.channelName) {
val.children.push(item)
}
})
})
this.camreaTreeIsShow = false;
this.camreaTreeIsShow = false
})
}
}else {
this.hiMapFun.removeLayerByLayerName(item.labelName);
this.checkStatus = "2"
} else {
this.hiMapFun.removeLayerByLayerName(item.labelName)
this.checkStatus = '2'
this.camreaTreeIsShow = true
getCameraAllOrgan({parentId:'S4NbecfYB1DBH8HNULGS34'}).then((res) => {
getCameraAllOrgan({ parentId: 'S4NbecfYB1DBH8HNULGS34' }).then((res) => {
this.camreaTree = res.data.data
})
}
},
addResourceTomap(type,data) {
const dataEvent = [];
addResourceTomap (type, data) {
const dataEvent = []
data.forEach((item) => {
const arr = [0,0.0,'','0','0.0']
if(arr.indexOf(item.gpsX) == -1){
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.getMapPoint(dataEvent, "videoSurveillance.png", type);
})
this.getMapPoint(dataEvent, 'videoSurveillance.png', type)
},
getMapPoint(data, img, type) {
getMapPoint (data, img, type) {
// this.hiMapFun.clearAllLayers();
const features = data;
const features = data
// debugger
this.hiMapFun.addResourceOnMapWithoutSuperMapCluster(features, img, type, createCameraDetailsPop)
// this.hiMapFun.addResourceOnMapWithoutSuper(features, img, "newEVent", createListDetailsPop);
},
querySearchAsync(queryString, cb) {
if(queryString.length > 0){
querySearchAsync (queryString, cb) {
if (queryString.length > 0) {
searchCamera(queryString).then((res) => {
cb(res.data.suggestions)
// console.log(res)
})
}
// console.log(queryString)
// cb(this.testjson.suggestions)
// console.log(queryString)
// cb(this.testjson.suggestions)
},
handleSelect(item) {
this.hiMapFun.clearAllLayers();
//
let arr = item.detail.location.split(',')
handleSelect (item) {
this.hiMapFun.clearAllLayers()
//
const arr = item.detail.location.split(',')
const searchDataDetail = [{
latLng: { lat: arr[1], lng: arr[0] },
data: item,
}]
this.hiMap.mapObj.map.flyTo({ lat: arr[1], lng: arr[0] });
latLng: { lat: arr[1], lng: arr[0] },
data: item
}]
this.hiMap.mapObj.map.flyTo({ lat: arr[1], lng: arr[0] })
this.hiMapFun.openPopupVideoSurveillance(searchDataDetail[0])
this.hiMapFun.addResourceOnMapWithoutSuperMapCluster(searchDataDetail,"poi-red.png", "address");
this.hiMapFun.addResourceOnMapWithoutSuperMapCluster(searchDataDetail, 'poi-red.png', 'address')
this.timer = setTimeout(() => {
this.addResourceTomap('全部',this.cameraAllData)
this.addResourceTomap('全部', this.cameraAllData)
}, 1000)
//
//
// this.flyToMapCallback(item,this.asyncCameraAllDataOnMap)
this.checkboxGroup = []
},
flyToMapCallback(item,callback){
let arr = item.detail.location.split(',')
flyToMapCallback (item, callback) {
const arr = item.detail.location.split(',')
const searchDataDetail = [{
latLng: { lat: arr[1], lng: arr[0] },
data: item,
}]
this.hiMap.mapObj.map.flyTo({ lat: arr[1], lng: arr[0] });
latLng: { lat: arr[1], lng: arr[0] },
data: item
}]
this.hiMap.mapObj.map.flyTo({ lat: arr[1], lng: arr[0] })
this.hiMapFun.openPopupVideoSurveillance(searchDataDetail[0])
this.hiMapFun.addResourceOnMapWithoutSuperMapCluster(searchDataDetail,"poi-red.png", "address");
this.hiMapFun.addResourceOnMapWithoutSuperMapCluster(searchDataDetail, 'poi-red.png', 'address')
callback(callback)
},
asyncCameraAllDataOnMap(){
this.addResourceTomap('全部',this.cameraAllData)
asyncCameraAllDataOnMap () {
this.addResourceTomap('全部', this.cameraAllData)
},
handleNodeClick(data) {
console.log(data);
getCameraAllOrgan({parentId:data.id}).then((res) => {
this.camreaTree.forEach( (item) => {
handleNodeClick (data) {
console.log(data)
getCameraAllOrgan({ parentId: data.id }).then((res) => {
this.camreaTree.forEach((item) => {
item.children = res.data.data
})
console.log(this.camreaTree);
console.log(this.camreaTree)
})
},
loadNode(node, resolve) {
// if (node.level === 0) {
// return resolve([{ name: 'region' }]);
// }
console.log(node)
if (node.level > 0) {
let subData = []
getCameraAllOrgan({parentId:node.data.id}).then((res) => {
if(res.data.data.length == 0){
const params = {
parentId:node.data.id,
checkStatus: this.checkStatus=='2'?["0","1"]:this.checkStatus,
}
getCameraByParentId(params).then((res) => {
res.data.data.forEach((item) => {
subData.push({
name: item.channelName,
gpsX: item.gpsX,
gpsY: item.gpsY,
channelCode:item.channelCode,
checkStatus:item.checkStatus,
leaf:true,
})
})
return resolve(subData);
})
}else{
subData = res.data.data
return resolve(subData);
loadNode (node, resolve) {
// if (node.level === 0) {
// return resolve([{ name: 'region' }]);
// }
console.log(node)
if (node.level > 0) {
let subData = []
getCameraAllOrgan({ parentId: node.data.id }).then((res) => {
if (res.data.data.length == 0) {
const params = {
parentId: node.data.id,
checkStatus: this.checkStatus == '2' ? ['0', '1'] : this.checkStatus
}
})
}
getCameraByParentId(params).then((res) => {
res.data.data.forEach((item) => {
subData.push({
name: item.channelName,
gpsX: item.gpsX,
gpsY: item.gpsY,
channelCode: item.channelCode,
checkStatus: item.checkStatus,
leaf: true
})
})
return resolve(subData)
})
} else {
subData = res.data.data
return resolve(subData)
}
})
}
},
treeCameraClick(data) {
treeCameraClick (data) {
console.log(data)
if(data.channelCode){
if (data.channelCode) {
const cameraTree = [{
latLng: { lat: data.gpsY, lng: data.gpsX },
data: data,
type:'cameraTree'
type: 'cameraTree'
}]
this.hiMapFun.removeLayerByLayerName("cameraTree");
this.hiMapFun.removeLayerByLayerName('cameraTree')
this.hiMapFun.openPopupVideoSurveillance(cameraTree[0])
const arr = [0,0.0,'','0','0.0']
if(arr.indexOf(data.gpsX) == -1){
this.hiMapFun.addResourceOnMapWithoutSuperMapCluster(cameraTree,"poi-red.png", "cameraTree");
this.hiMap.mapObj.map.flyTo({ lat: data.gpsY, lng: data.gpsX });
const arr = [0, 0.0, '', '0', '0.0']
if (arr.indexOf(data.gpsX) == -1) {
this.hiMapFun.addResourceOnMapWithoutSuperMapCluster(cameraTree, 'poi-red.png', 'cameraTree')
this.hiMap.mapObj.map.flyTo({ lat: data.gpsY, lng: data.gpsX })
}
}
},
searchLabel(value) {
searchLabel (value) {
const params = {
labelName:value
labelName: value
}
selectByLabelName(params).then((res) => {
console.log(res)
this.tabList = res.data.data
})
},
searchCameraTree(value) {
if(value.length > 0){
searchCameraTree (value) {
if (value.length > 0) {
const params = {
channelName:value
}
channelName: value
}
selectByChannelName(params).then((res) => {
console.log(res)
this.camreaTree = []
@ -396,46 +398,46 @@ export default {
name: item.channelName,
gpsX: item.gpsX,
gpsY: item.gpsY,
channelCode:item.channelCode,
leaf:true,
channelCode: item.channelCode,
leaf: true
})
})
})
}else {
getCameraAllOrgan({parentId:'S4NbecfYB1DBH8HNULGS34'}).then((res) => {
} else {
getCameraAllOrgan({ parentId: 'S4NbecfYB1DBH8HNULGS34' }).then((res) => {
this.camreaTree = res.data.data
})
}
},
refresh() {
this.hiMapFun.clearAllLayers();
this.addResourceTomap('全部',this.cameraAllData)
refresh () {
this.hiMapFun.clearAllLayers()
this.addResourceTomap('全部', this.cameraAllData)
this.checkboxGroup = []
},
reset() {
reset () {
this.checkboxGroup = []
this.checkStatus = "2";
this.checkStatus = '2'
this.camreaTreeIsShow = true
getCameraAllOrgan({parentId:'S4NbecfYB1DBH8HNULGS34'}).then((res) => {
getCameraAllOrgan({ parentId: 'S4NbecfYB1DBH8HNULGS34' }).then((res) => {
this.camreaTree = res.data.data
})
document.getElementById("tree").scrollTop = 0;
document.getElementById('tree').scrollTop = 0
},
filterNode(value, data) {
if (value == "2") return true;
if (value == "0") {
return data.checkStatus == 0;
filterNode (value, data) {
if (value == '2') return true
if (value == '0') {
return data.checkStatus == 0
}
if (value == "1") {
return data.checkStatus == 1;
if (value == '1') {
return data.checkStatus == 1
}
},
}
},
beforeDestroy(){
clearInterval(this.timer);//
this.timer = null;
},
};
beforeDestroy () {
clearInterval(this.timer)//
this.timer = null
}
}
</script>
<style scoped lang="scss">
@ -444,10 +446,9 @@ export default {
::v-deep .el-loading-mask {
z-index: 99999;
width: 1920px;
height:1080px;
height: 1080px;
}
.map-box {
width: 100%;
height: 100%;
@ -462,19 +463,20 @@ export default {
#contain {
// width: 1920px;
// height: 1080px;
header {
position: relative;
z-index: 1000;
width: 100%;
height: 104px;
padding-top: 10px;
background: url("~@/assets/img/titlevideo.png") no-repeat,url("~@/assets/img/titlevideobg.png") no-repeat;
background: url("~@/assets/img/titlevideo.png") no-repeat,
url("~@/assets/img/titlevideobg.png") no-repeat;
text-align: center;
span {
font-size: 44px;
font-weight: bold;
background: linear-gradient(0deg, #C7FBFB 0%, #FFFFFF 100%);
background: linear-gradient(0deg, #c7fbfb 0%, #ffffff 100%);
background-clip: text;
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
@ -485,28 +487,28 @@ export default {
position: absolute;
z-index: 1000;
left: 100px;
border-radius:4px;
border-radius: 4px;
::v-deep .el-input__inner {
color: #fff;
background: #629ab8;
width: 255px;
height: 44px;
border-radius:20px;
border:none;
border-radius: 20px;
border: none;
&::placeholder {
color: #fff;
color: #fff;
}
}
::v-deep .el-input__prefix {
top: 2px;
}
::v-deep .el-input-group__append {
width:54px;
height:30px;
position:absolute;
top:6px;
right:6px;
border-radius:20px;
width: 54px;
height: 30px;
position: absolute;
top: 6px;
right: 6px;
border-radius: 20px;
line-height: 30px;
text-indent: -4px;
color: #5e9bbd;
@ -523,7 +525,7 @@ export default {
li {
color: #fff;
&:hover {
background: #41738f
background: #41738f;
}
}
}
@ -548,7 +550,7 @@ export default {
z-index: 1000;
width: 350px;
height: 500px;
border-radius:5px;
border-radius: 5px;
background-color: #25536d;
// background: url("~@/assets/img/table2.png") no-repeat;
.refresh {
@ -559,7 +561,7 @@ export default {
cursor: pointer;
z-index: 1008;
}
::v-deep .el-tabs {
background: transparent;
// width: 300px;
@ -571,19 +573,18 @@ export default {
// .el-tabs__item {
// color: #fff;
// }
.el-tabs__item{
.el-tabs__item {
width: 154px;
border: none;
text-align: center;
}
.el-tabs__item.is-active {
background: rgba(27,255,255,.2);
background: rgba(27, 255, 255, 0.2);
color: #fff;
background-image:url("~@/assets/img/picture_left.png"),
url("~@/assets/img/picture_right.png");
background-image: url("~@/assets/img/picture_left.png"),
url("~@/assets/img/picture_right.png");
background-repeat: no-repeat;
background-position: 6% 55%,
94% 55%;
background-position: 6% 55%, 94% 55%;
background-size: 20% 20%;
border: none;
}
@ -604,8 +605,8 @@ export default {
height: 320px;
overflow-y: auto;
&::-webkit-scrollbar {
width: 4px;
background-color: #456d83;
width: 4px;
background-color: #456d83;
}
&::-webkit-scrollbar-thumb {
border-radius: 10px;
@ -618,8 +619,8 @@ export default {
overflow-y: auto;
margin-top: 22px;
&::-webkit-scrollbar {
width: 4px;
background-color: #456d83;
width: 4px;
background-color: #456d83;
}
&::-webkit-scrollbar-thumb {
border-radius: 10px;
@ -635,7 +636,7 @@ export default {
}
.el-checkbox-button__inner {
border-radius: 20px;
background-color: rgba(116,204,252,.4);
background-color: rgba(116, 204, 252, 0.4);
color: #fff;
border: none;
}
@ -643,8 +644,8 @@ export default {
background: linear-gradient(90deg, #31abee 0%, #17d3d3 100%);
}
}
::v-deep .el-checkbox-button.is-checked {
background: linear-gradient(90deg, #31abee 0%, #17d3d3 100%);
::v-deep .el-checkbox-button.is-checked {
background: linear-gradient(90deg, #31abee 0%, #17d3d3 100%);
}
::v-deep .el-tabs__item {
color: #d1ced5;
@ -654,10 +655,10 @@ export default {
color: #fff;
}
::v-deep .el-tree-node__content:hover {
background: rgba(27,255,255,.2);
background: rgba(27, 255, 255, 0.2);
}
::v-deep .el-tree-node:focus > .el-tree-node__content {
background-color: rgba(27,255,255,.2);
background-color: rgba(27, 255, 255, 0.2);
color: #fff;
}
.reset-button {