Compare commits

..

No commits in common. "c7c09b5ca939881527855f7233a2c21d21acc4c7" and "0a13e6fda201b7442a05ac9973fee925b4dc2e6d" have entirely different histories.

6 changed files with 42 additions and 221 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

View File

@ -1,86 +0,0 @@
<!--许可证弹窗-->
<template>
<el-dialog
class="pop-up-permit"
:title="title"
append-to-body
:modal="false"
:close-on-click-modal="false"
:visible.sync="dialogVisibleForBigPop"
width="648"
top="5vh"
:before-close="handleClose">
<div slot="title">
<p class="title-style">{{title}}</p>
<el-divider></el-divider>
</div>
<slot></slot>
</el-dialog>
</template>
<script lang="ts">
import {Component, PropSync, Prop, Vue, Emit} from 'vue-property-decorator';
@Component
export default class PermitPopUpComponent extends Vue {
//
@PropSync('dialogVisibleForBigPop', {default: false}) syncDialogVisibleForPermit!: boolean;
@Prop({default: '排污许可证'}) title!: string;
@Emit("onClose")
onCloseCallback(){
//
}
//
handleClose() {
this.syncDialogVisibleForPermit = false
this.onCloseCallback()
}
}
</script>
<style lang="scss">
.pop-up-permit {
.el-dialog {
width: 648px;
height: 410px;
background: url("~@/assets/img/permitBg.png") no-repeat 50% 50%;
.el-dialog__header{
padding-bottom: 0;
padding-left: 36px;
padding-right: 36px;
}
.el-dialog__headerbtn {
top: 25px;
right: 30px;
}
.el-dialog__title,.title-style {
//font-weight: bold;
position: relative;
font-size: 16px;
top: 8px;
left: 0;
color: #FFFFFF;
}
.el-dialog__body {
padding-top: 0 !important;
padding-left: 36px;
padding-right: 36px;
}
}
.el-dialog__headerbtn .el-dialog__close {
color: #FFFFFF;
}
.el-dialog__title, .el-dialog__body, .el-form-item__label {
color: #FFFFFF;
}
}
</style>

View File

@ -54,7 +54,7 @@
</el-table-column> </el-table-column>
</el-table> </el-table>
<!-- <el-button class="pop-btn-style margin-top-30" @click="deal"></el-button>--> <el-button class="pop-btn-style margin-top-30" @click="deal"></el-button>
</div> </div>
</div> </div>

View File

@ -649,12 +649,12 @@ export class MockData{
public static getWaringList(){ public static getWaringList(){
/* { /* {
type:"normal", type:"fire",
id:new Date().getTime()+"", id:new Date().getTime()+"",
typeName:"泄露", typeName:"火灾",
position:[13312990.72, 4098613.12, 0.51], position:[13312990.72, 4098613.12, 0.51],
reporter:"张三", reporter:"张三",
content:"北京汉邦唐化工厂区发生泄露" content:"北京汉邦唐化工厂区发生火灾"
}*/ }*/
const data = [ const data = [
@ -850,12 +850,12 @@ export class MockData{
public static getEventList(){ public static getEventList(){
/* { /* {
type:"normal", type:"fire",
id:new Date().getTime()+"", id:new Date().getTime()+"",
typeName:"泄露", typeName:"火灾",
position:[13312990.72, 4098613.12, 0.51], position:[13312990.72, 4098613.12, 0.51],
reporter:"张三", reporter:"张三",
content:"北京汉邦唐化工厂区发生泄露" content:"北京汉邦唐化工厂区发生火灾"
}*/ }*/
const data = [ const data = [
@ -871,15 +871,15 @@ export class MockData{
content:"物体高空坠落" content:"物体高空坠落"
} }
, { , {
title: '罐体破裂', title: '火灾告警',
info: '北京汉邦唐化工厂区发生泄露', info: '北京汉邦唐化工厂区发生火灾',
time: '2023年1月20日 14:33:33', time: '2023年1月20日 14:33:33',
level: '1', level: '1',
type:"normal", type:"fire",
typeName:"泄露", typeName:"火灾",
reporter:"李四", reporter:"李四",
tel:"13985412541", tel:"13985412541",
content:"北京汉邦唐化工厂区发生泄露" content:"北京汉邦唐化工厂区发生火灾"
}, { }, {
title: '坍塌事故', title: '坍塌事故',
info: '建筑坍塌及时处理', info: '建筑坍塌及时处理',
@ -901,32 +901,34 @@ export class MockData{
tel:"13337542569", tel:"13337542569",
content:"NO气体泄露" content:"NO气体泄露"
}, { }, {
title: '罐体破裂', title: '火灾爆炸',
info: '富土康厂区罐体破裂', info: '富土康厂区火灾爆炸',
time: '2023年1月20日 14:33:33', time: '2023年1月20日 14:33:33',
level: '2', level: '2',
type:"normal", type:"normal",
typeName:"罐体破裂", typeName:"火灾爆炸",
reporter:"张三", reporter:"张三",
tel:"13337542569", tel:"13337542569",
content:"富土康厂区罐体破裂" content:"富土康厂区火灾爆炸"
}, { }, {
title: '罐体破裂', title: '火灾爆炸',
info: '北京汉邦唐化工厂区发生泄露', info: '北京汉邦唐化工厂区发生火灾',
time: '2023年1月20日 14:33:33', time: '2023年1月20日 14:33:33',
level: '1', level: '1',
type:"normal", type:"fire",
typeName:"泄露", typeName:"火灾",
reporter:"李四", reporter:"李四",
tel:"13985412541", tel:"13985412541",
content:"北京汉邦唐化工厂区发生泄露" content:"北京汉邦唐化工厂区发生火灾"
}, },
].map((item:any)=>{ ].map((item:any)=>{
item.id = Mock.mock("@id"); item.id = Mock.mock("@id");
if (item.type === 'normal'){ if (item.type === 'normal'){
item.position=turf.randomPosition([ item.position=turf.randomPosition([
11660757, 3692398.75, 13312995.84,
11661124, 3692643.5 4098177.2800000003,
13313096.96,
4098754.88,
]); ]);
}else if(item.type === 'fire'){ }else if(item.type === 'fire'){
item.position= [13312990.72, 4098613.12, 0.51] item.position= [13312990.72, 4098613.12, 0.51]

View File

@ -1,38 +1,29 @@
<div class="overview-container"> <div class="overview-container">
<MapComponent id="map" @onLoaded="getMap" @onHandleChange="handleChange"></MapComponent> <!--<MapComponent id="map" @onLoaded="getMap" @onHandleChange="handleChange"></MapComponent>-->
<div class="bg-box left animate__animated"> <div class="bg-box left animate__animated">
<div class="panel-container"> <div class="panel-container">
<!-- 首页--> <!-- 首页-->
<HomeLeftComponent @getItem="getItem" v-if="currentNav === 'home'" <HomeLeftComponent @getItem="getItem" v-if="currentNav === 'home'" class="animate__animated animate__fadeInLeft"></HomeLeftComponent>
class="animate__animated animate__fadeInLeft"></HomeLeftComponent> <!-- 导览-->
<!-- 导览--> <ViewLeftComponent @showView="showView" @playView="playView" @showViewRight="showViewRight" v-if="currentNav === 'view'" class="animate__animated animate__fadeInLeft"></ViewLeftComponent>
<ViewLeftComponent @showView="showView" @playView="playView" @showViewRight="showViewRight"
v-if="currentNav === 'view'"
class="animate__animated animate__fadeInLeft"></ViewLeftComponent>
<!-- 运营管理--> <!-- 运营管理-->
<ManageLeftComponent v-if="currentNav === 'manage'" <ManageLeftComponent v-if="currentNav === 'manage'" class="animate__animated animate__fadeInLeft"></ManageLeftComponent>
class="animate__animated animate__fadeInLeft"></ManageLeftComponent>
</div> </div>
</div> </div>
<div class="bg-box right main animate__animated" :class="showBackGround"> <div class="bg-box right main animate__animated" :class="showBackGround">
<div class="panel-container"> <div class="panel-container">
<!-- 首页--> <!-- 首页-->
<HomeRightComponent v-if="currentNav === 'home' && !waringRightShow" <HomeRightComponent v-if="currentNav === 'home' && !waringRightShow"
class="animate__animated animate__fadeInRight"></HomeRightComponent> class="animate__animated animate__fadeInRight"></HomeRightComponent>
<!-- 导览--> <!-- 导览-->
<ViewRightComponent @closeRight="closeRight" :viewRightData="viewRightData" @showDetail="showDetail" <ViewRightComponent @closeRight="closeRight" :viewRightData="viewRightData" @showDetail="showDetail" v-if="currentNav === 'view' && viewRightShow" class="animate__animated animate__fadeInRight"></ViewRightComponent>
v-if="currentNav === 'view' && viewRightShow"
class="animate__animated animate__fadeInRight"></ViewRightComponent>
<!-- 运营管理--> <!-- 运营管理-->
<ManageRightComponent v-if="currentNav === 'manage'" <ManageRightComponent v-if="currentNav === 'manage'" class="animate__animated animate__fadeInRight"></ManageRightComponent>
class="animate__animated animate__fadeInRight"></ManageRightComponent>
<!--告警详情--> <!--告警详情-->
<WarningDetailComponent @changeClose="changeClose" @changePoint="changePoint" :info="info" <WarningDetailComponent @changeClose="changeClose" @changePoint="changePoint" :info="info" v-if="waringRightShow && currentNav === 'home'" class="animate__animated animate__fadeInRight"></WarningDetailComponent>
v-if="waringRightShow && currentNav === 'home'"
class="animate__animated animate__fadeInRight"></WarningDetailComponent>
</div> </div>
</div> </div>
@ -53,51 +44,15 @@
</div> </div>
<div class="top-bg" :style="{top:hideAllPanel?'-90px':0}"> <div class="top-bg" :style="{top:hideAllPanel?'-90px':0}">
<HeaderComponent @onDrawer="drawerChange($event)" @onNavChanged="navChange($event)"></HeaderComponent> <HeaderComponent @onDrawer="drawerChange($event)" @onNavChanged="navChange($event)"></HeaderComponent>
</div> </div>
<div class="exitFullScreen" :style="{top:!hideAllPanel?'-90px':0}"> <div class="exitFullScreen" :style="{top:!hideAllPanel?'-90px':0}" >
<div class="top-btn" @click="toggleAllPanel"> <div class="top-btn" @click="toggleAllPanel">
<i class="el-icon-close">退出自由导览</i> <i class="el-icon-close">退出自由导览</i>
</div> </div>
</div> </div>
<!-- 大号弹窗组件-->
<PermitPopUpComponent :title="bigPopTitle" :dialogVisibleForBigPop.sync="dialogVisibleForBigPop"
@onClose="closeCarPersonPop">
<el-collapse v-if="bigPopTitle === '人员信息卡'" v-model="activeNames" accordion>
<el-collapse-item title="人员信息" name="1">
<div class="d-flex item-content">
<img class="avatar-style" src="~@/assets/img/avatar.jpg" alt="">
<div>
<div class="collapse-top">
<span>贺丽</span>
<span>(访客)</span>
<img class="margin-left-40" src="~@/assets/img/phone.png" alt="">
<span>联系方式18020101697</span>
</div>
<div class="collapse-bottom">
<span>性别:女</span>
<span>所属单位:北京汉邦唐科技有限公司</span>
<span>职务:设备运维</span>
<span>年龄25岁</span>
</div>
</div>
</div>
</el-collapse-item>
</el-collapse>
<el-collapse v-if="bigPopTitle === '车辆信息卡'" v-model="activeNames" accordion>
<el-collapse-item title="车辆信息" name="1">
<div class="info-content">
<span>车辆类型:公司车辆</span>
<span>车牌号苏A45W34</span>
<span>行为分10分</span>
</div>
</el-collapse-item>
</el-collapse>
</PermitPopUpComponent>
</div> </div>

View File

@ -10,7 +10,6 @@ import ViewLeftComponent from "@/components/view/left/viewLeft.component";
import ViewRightComponent from "@/components/view/right/viewRight.component"; import ViewRightComponent from "@/components/view/right/viewRight.component";
import ManageLeftComponent from "@/components/manage/left/manageLeft.component"; import ManageLeftComponent from "@/components/manage/left/manageLeft.component";
import ManageRightComponent from "@/components/manage/right/manageRight.component"; import ManageRightComponent from "@/components/manage/right/manageRight.component";
import PermitPopUpComponent from "@/components/permitPopUp.component.vue";
import WarningDetailComponent from "@/components/warningDetail.component.vue"; import WarningDetailComponent from "@/components/warningDetail.component.vue";
@ -23,7 +22,6 @@ import WarningDetailComponent from "@/components/warningDetail.component.vue";
ViewRightComponent, ViewRightComponent,
ManageLeftComponent, ManageLeftComponent,
ManageRightComponent, ManageRightComponent,
PermitPopUpComponent,
WarningDetailComponent WarningDetailComponent
} }
}) })
@ -39,16 +37,8 @@ export default class OverViewComponent extends BaseComponent {
// 是否展开图层 // 是否展开图层
public openLayerDrawer = false; public openLayerDrawer = false;
public currentCarPeople:any = {};
//展示导览右侧 //展示导览右侧
viewRightShow = false; viewRightShow = false
dialogVisibleForBigPop = false;
bigPopTitle = '人员信息卡'
//默认打开的折叠面板
activeNames = ['1']
//展示告警详情右侧 //展示告警详情右侧
waringRightShow = false waringRightShow = false
@ -99,43 +89,7 @@ export default class OverViewComponent extends BaseComponent {
public handleChange(data) { public handleChange(data) {
if(data.GroupID){ if(data.GroupID){
const currentData = (this.layerData.find(item=>item.value === data.GroupID)as any).data.find(item=>item.id === data.Id)
if(data.GroupID==="peo"){
this.emitPersonPop(currentData)
} }
if(data.GroupID==="car"){
this.emitCarPop(currentData)
}
}
}
//展示人员详情
emitPersonPop(item){
this.resetMap();
setTimeout(()=>{
this.currentCarPeople = item;
this.player.api.marker.focus(item.id,50,2);
setTimeout(()=>{
this.bigPopTitle = '人员信息卡';
this.dialogVisibleForBigPop = true
},2000)
},1000)
}
//展示车辆详情
emitCarPop(item){
this.resetMap();
setTimeout(()=>{
this.currentCarPeople = item;
this.player.api.marker.focus(item.id,50,2);
setTimeout(()=>{
this.bigPopTitle = '车辆信息卡';
this.dialogVisibleForBigPop = true
},2000)
},1000)
}
closeCarPersonPop(){
this.currentCarPeople = null;
} }
public navChange(data: string) { public navChange(data: string) {
@ -147,9 +101,6 @@ export default class OverViewComponent extends BaseComponent {
this.addCustom(this.viewLayer[this.currentEvent.id],true); this.addCustom(this.viewLayer[this.currentEvent.id],true);
this.currentEvent = null; this.currentEvent = null;
} }
if(this.currentWanning){
this.player.api.customObject.delete(this.currentWanning.id)
}
this.resetMap(); this.resetMap();
} }
} }
@ -213,7 +164,7 @@ export default class OverViewComponent extends BaseComponent {
//获取点击的信息 //获取点击的信息
getItem(item) { getItem(item) {
this.addWarnning(item) // this.addWarnning(item)
this.info = item this.info = item
this.waringRightShow = true this.waringRightShow = true
} }
@ -224,7 +175,6 @@ export default class OverViewComponent extends BaseComponent {
//关闭告警详情 //关闭告警详情
changeClose(){ changeClose(){
this.waringRightShow = false this.waringRightShow = false
this.player.api.customObject.delete(this.currentWanning.id)
} }
//进入自由导览 //进入自由导览
async showView (){ async showView (){