|
@@ -5,17 +5,21 @@
|
|
|
v-if="mapStore.isAMap"
|
|
|
ref="mapRef"
|
|
|
@handle-show-video="handleShowVideo"
|
|
|
+ @handle-show-video-detail="handleShowVideo2"
|
|
|
@handle-show-warehouse="handleShowWarehouse"
|
|
|
@handle-show-people="handleShowPeople"
|
|
|
@handle-show-track="handleShowTrack"
|
|
|
+ @resize="mapMoveEnd"
|
|
|
/>
|
|
|
<YztMap
|
|
|
v-else-if="!!mapStore.activeMap"
|
|
|
ref="map2Ref"
|
|
|
@handle-show-video="handleShowVideo"
|
|
|
+ @handle-show-video-detail="handleShowVideo2"
|
|
|
@handle-show-warehouse="handleShowWarehouse"
|
|
|
@handle-show-people="handleShowPeople"
|
|
|
@handle-show-track="handleShowTrack"
|
|
|
+ @resize="mapMoveEnd"
|
|
|
/>
|
|
|
<!--左侧菜单-->
|
|
|
<LeftMenu
|
|
@@ -44,6 +48,8 @@
|
|
|
<CommunicationSupport v-if="communicationSupport.show" @close="handleHideCommunicationSupport" />
|
|
|
<!--应急人员详情-->
|
|
|
<EmergencyCrew v-if="showPeople" v-model="showPeople" :id="teamId" />
|
|
|
+ <!--视频详情-->
|
|
|
+ <VideoDialog v-if="showVideoDetail" v-model="showVideoDetail" :videoMonitorData="videoDetail" />
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -181,10 +187,17 @@ const addMarkersMethod = debounce(
|
|
|
}
|
|
|
getPointInfo2(queryParams).then((res) => {
|
|
|
const data = res.data ? res.data : [];
|
|
|
+ // 通用详情
|
|
|
if (!!detailsData.value.id) {
|
|
|
data.forEach((item) => {
|
|
|
if (item.id === detailsData.value.id) {
|
|
|
item.isHover = true;
|
|
|
+ } else if (showVideoDetail.value && videoDetail.value) {
|
|
|
+ data.forEach((item) => {
|
|
|
+ if (item.id === videoDetail.value.id) {
|
|
|
+ item.isHover = true;
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
});
|
|
|
detailsData.value = {
|
|
@@ -311,6 +324,7 @@ let detailsData = ref({
|
|
|
id: '',
|
|
|
dataType: ''
|
|
|
});
|
|
|
+// 显示打点详情
|
|
|
const showDetail = (data, dataType) => {
|
|
|
const domRef = mapStore.isAMap ? mapRef.value : map2Ref.value;
|
|
|
if (!!domRef) {
|
|
@@ -376,6 +390,17 @@ const handleShowVideo = (data) => {
|
|
|
location.value = [data.longitude, data.latitude];
|
|
|
showNearbyVideos.value = true;
|
|
|
};
|
|
|
+const showVideoDetail = ref(false);
|
|
|
+const videoDetail = ref({});
|
|
|
+const handleShowVideo2 = (data, flag) => {
|
|
|
+ const newMap = mapStore.isAMap ? map : map.getView();
|
|
|
+ if (!flag) {
|
|
|
+ newMap.setCenter([data.longitude, data.latitude]);
|
|
|
+ newMap.setZoom(18);
|
|
|
+ }
|
|
|
+ videoDetail.value = data;
|
|
|
+ showVideoDetail.value = true;
|
|
|
+};
|
|
|
const handleClickMap = (e) => {
|
|
|
if (mapStore.isAMap) {
|
|
|
location.value = [e.lnglat.lng, e.lnglat.lat];
|
|
@@ -488,7 +513,7 @@ watch(
|
|
|
(lnglat) => {
|
|
|
if (lnglat && lnglat.length == 2) {
|
|
|
const newMap = mapStore.isAMap ? map : map.getView();
|
|
|
- debugger
|
|
|
+ newMap.setCenter(lnglat);
|
|
|
mapUtils.setAddress({
|
|
|
longitude: lnglat[0],
|
|
|
latitude: lnglat[1],
|
|
@@ -554,6 +579,7 @@ provide('showDetail', showDetail);
|
|
|
provide('getDrawTool', getDrawTool);
|
|
|
provide('getPlaceSearch', getPlaceSearch);
|
|
|
provide('initDataToPlay', initDataToPlay);
|
|
|
+provide('handleShowVideo2', handleShowVideo2);
|
|
|
</script>
|
|
|
|
|
|
<style lang="scss" scoped>
|