|
@@ -11,69 +11,134 @@
|
|
|
<el-row>
|
|
|
<!-- 左侧 -->
|
|
|
<el-col :span="18" class="dia-left">
|
|
|
+ <div class="sj-map-tool-select">
|
|
|
+ <transition-group
|
|
|
+ appear
|
|
|
+ name="animate__animated animate__bounce"
|
|
|
+ enter-active-class="animate__lightSpeedInRight"
|
|
|
+ leave-active-class="animate__backOutRight"
|
|
|
+ >
|
|
|
+ <div
|
|
|
+ class="sj-map-tool-select-list"
|
|
|
+ v-show="mapToolShow"
|
|
|
+ id="eventMapToolOnly"
|
|
|
+ key="1"
|
|
|
+ >
|
|
|
+ <el-checkbox
|
|
|
+ v-model="mapToolCheckAll"
|
|
|
+ @change="mapToolCheckAllChange"
|
|
|
+ class="sj-map-tool-checkbox-all"
|
|
|
+ >全选</el-checkbox
|
|
|
+ >
|
|
|
+ <el-checkbox-group
|
|
|
+ v-model="mapToolCheckItem"
|
|
|
+ @change="mapToolCheckChange"
|
|
|
+ class="sj-map-tool-checkbox"
|
|
|
+ >
|
|
|
+ <el-checkbox
|
|
|
+ v-for="tools in mapToolCheck"
|
|
|
+ :label="tools"
|
|
|
+ :key="tools"
|
|
|
+ >{{ tools }}</el-checkbox
|
|
|
+ >
|
|
|
+ </el-checkbox-group>
|
|
|
+ </div>
|
|
|
+ </transition-group>
|
|
|
+
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ icon="el-icon-s-grid"
|
|
|
+ id="eventMapToolOnlyButton"
|
|
|
+ @click="mapToolShow = !mapToolShow"
|
|
|
+ >地图功能</el-button
|
|
|
+ >
|
|
|
+ </div>
|
|
|
<div ref="imageTofile" style="height: 75vh;">
|
|
|
- <!-- 应急预案 -->
|
|
|
- <div class="dia-left-top">
|
|
|
- <div class="dia-left-top-tit">应急预案</div>
|
|
|
- <div class="dia-left-top-carousel">
|
|
|
- <el-carousel height="30px" direction="vertical" :interval="2000">
|
|
|
- <el-carousel-item v-if="visuForestCloudYuAnBo!=null">
|
|
|
- <el-tooltip class="item" effect="dark" :content="visuForestCloudYuAnBo.reserveName"
|
|
|
- placement="top-start">
|
|
|
- <a :href="visuForestCloudYuAnBo.fileUrl"><span>
|
|
|
+ <transition-group
|
|
|
+ appear
|
|
|
+ name="animate__animated animate__bounce"
|
|
|
+ enter-active-class="animate__backInDown"
|
|
|
+ leave-active-class="animate__backOutUp"
|
|
|
+ >
|
|
|
+ <!-- 应急预案 -->
|
|
|
+ <div class="dia-left-top" v-show="mapToolCheckItem.includes('应急预案')"
|
|
|
+ key="yingji" >
|
|
|
+ <div class="dia-left-top-tit">应急预案</div>
|
|
|
+ <div class="dia-left-top-carousel">
|
|
|
+
|
|
|
+ <el-carousel height="30px" direction="vertical" :interval="2000">
|
|
|
+ <el-carousel-item v-if="visuForestCloudYuAnBo!=null">
|
|
|
+ <el-tooltip class="item" effect="dark" :content="visuForestCloudYuAnBo.reserveName"
|
|
|
+ placement="top-start">
|
|
|
+ <a :href="visuForestCloudYuAnBo.fileUrl"><span>
|
|
|
<div
|
|
|
style=" width: 50px;overflow: hidden;text-overflow: ellipsis;white-space: nowrap;word-break: keep-all;">
|
|
|
{{ visuForestCloudYuAnBo.reserveName }}
|
|
|
</div>
|
|
|
</span></a>
|
|
|
- </el-tooltip>
|
|
|
- </el-carousel-item>
|
|
|
- <el-carousel-item v-else>
|
|
|
- <a href="#">暂未关联预案</a>
|
|
|
- </el-carousel-item>
|
|
|
- </el-carousel>
|
|
|
+ </el-tooltip>
|
|
|
+ </el-carousel-item>
|
|
|
+ <el-carousel-item v-else>
|
|
|
+ <a href="#">暂未关联预案</a>
|
|
|
+ </el-carousel-item>
|
|
|
+ </el-carousel>
|
|
|
+ </div>
|
|
|
+ <el-button size="mini" type="primary" class="yatz_button" @click="showUpdateYjYuAn">预案调整
|
|
|
+ </el-button>
|
|
|
</div>
|
|
|
- <el-button size="mini" type="primary" class="yatz_button" @click="showUpdateYjYuAn">预案调整
|
|
|
- </el-button>
|
|
|
- </div>
|
|
|
+ </transition-group>
|
|
|
<!-- 左侧资源 -->
|
|
|
- <div class="leftbar" style="width:fit-content !important;bottom:0rem;left: 1rem; top: unset;">
|
|
|
- <div class="forthis" style="width:1320px; display: flex;">
|
|
|
- <dv-border-box-7 backgroundColor="#040b1f" :color="['#25335d', '#5baffd']">
|
|
|
- <div class="i-list-con"
|
|
|
- style="width: 100%;display: flex; align-items: center;justify-content: space-between">
|
|
|
-
|
|
|
- <div class="d-l-con-icon" style="width: fit-content; flex-direction:row;flex-wrap: nowrap;"
|
|
|
- ref="thisWidthWH">
|
|
|
- <leftRightSwiperScroll v-if="isLoading">
|
|
|
- <div class="icon-con" style="width: fit-content !important;"
|
|
|
- v-for="(item,index) in resourcesList1" @click="fireControlViewPoint(item.type)"
|
|
|
- :key="index">
|
|
|
- <div class="iconfont icon icon-normal" :class="item.icon"
|
|
|
- :style="'background:' + item.bg"></div>
|
|
|
- <div class="icon-text">
|
|
|
- <h5 style="white-space: nowrap;">{{ item.resourceName }}</h5>
|
|
|
+ <transition-group
|
|
|
+ appear
|
|
|
+ name="animate__animated animate__bounce"
|
|
|
+ enter-active-class="animate__backInUp"
|
|
|
+ leave-active-class="animate__backOutDown"
|
|
|
+ >
|
|
|
+ <div class="leftbar" style="width:fit-content !important;bottom:0rem;left: 1rem; top: unset;" v-show="mapToolCheckItem.includes('资源与操作')"
|
|
|
+ key="mapToolziyuan">
|
|
|
+ <div class="forthis" style="width:1320px; display: flex;">
|
|
|
+ <dv-border-box-7 backgroundColor="#040b1f" :color="['#25335d', '#5baffd']">
|
|
|
+ <div class="i-list-con"
|
|
|
+ style="width: 100%;display: flex; align-items: center;justify-content: space-between">
|
|
|
+
|
|
|
+ <div class="d-l-con-icon" style="width: fit-content; flex-direction:row;flex-wrap: nowrap;"
|
|
|
+ ref="thisWidthWH">
|
|
|
+ <leftRightSwiperScroll v-if="mapToolCheckItem.includes('资源与操作')">
|
|
|
+ <div class="icon-con" style="width: fit-content !important;"
|
|
|
+ v-for="(item,index) in resourcesList1" @click="fireControlViewPoint(item.type)"
|
|
|
+ :key="index">
|
|
|
+ <div class="iconfont icon icon-normal" :class="item.icon"
|
|
|
+ :style="'background:' + item.bg"></div>
|
|
|
+ <div class="icon-text">
|
|
|
+ <h5 style="white-space: nowrap;">{{ item.resourceName }}</h5>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- </leftRightSwiperScroll>
|
|
|
- </div>
|
|
|
+ </leftRightSwiperScroll>
|
|
|
+ </div>
|
|
|
|
|
|
- <el-input type="number" v-model="radius" class="d-input-bottom" placeholder="请输入搜索半径" />
|
|
|
- </div>
|
|
|
- </dv-border-box-7>
|
|
|
+ <el-input type="number" v-model="radius" class="d-input-bottom" placeholder="请输入搜索半径" />
|
|
|
+ </div>
|
|
|
+ </dv-border-box-7>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
- </div>
|
|
|
- <!-- 左侧资源end -->
|
|
|
- <!-- 应急预案end -->
|
|
|
- <div class="fire-m" style="bottom:5rem">
|
|
|
- <el-button size="small" icon="el-icon-upload" @click="showEventdetailsdialog()">动态标绘</el-button>
|
|
|
- <!-- <el-button size="small" icon="el-icon-upload" @click="showheatPlotting()">火灾蔓延</el-button>-->
|
|
|
- </div>
|
|
|
+ <!-- 左侧资源end -->
|
|
|
+ <!-- 应急预案end -->
|
|
|
+ <div class="fire-m" style="bottom:5rem" v-show="mapToolCheckItem.includes('资源与操作')"
|
|
|
+ key="ziyuan">
|
|
|
+ <el-button
|
|
|
+ size="small"
|
|
|
+ icon="el-icon-s-grid"
|
|
|
+ @click="showTVWallDiaLog()"
|
|
|
+ >视频联动</el-button>
|
|
|
+ <el-button size="small" icon="el-icon-upload" @click="showEventdetailsdialog()">动态标绘</el-button>
|
|
|
+ <!-- <el-button size="small" icon="el-icon-upload" @click="showheatPlotting()">火灾蔓延</el-button>-->
|
|
|
+ </div>
|
|
|
+ </transition-group>
|
|
|
<!-- 地图 -->
|
|
|
<supermapDialog1 ref="supermapDialog1" style="position: absolute; top:0;left: 0;"
|
|
|
:mapDiv="'forestWarmSuperMap'"
|
|
|
- :mapSite="{zoom:16,doubleClickZoom:true,dragging:true,scrollWheelZoom:true}" :codes="['9fa5']"
|
|
|
- :isSideBySide="false" @preview="preview" />
|
|
|
+ :mapSite="{doubleClickZoom:true,dragging:true,scrollWheelZoom:true}" :codes="['9fa5']"
|
|
|
+ :isSideBySide="false" @preview="preview" :mapToolShowBH="mapToolShowBH"/>
|
|
|
<!-- 地图end -->
|
|
|
</div>
|
|
|
</el-col>
|
|
@@ -146,8 +211,8 @@
|
|
|
<div class="z-info-btm-grp-left">
|
|
|
<el-button size="small" icon="el-icon-upload" @click="showEventLogUpload()">上传
|
|
|
</el-button>
|
|
|
- <el-button size="small" icon="el-icon-download" @click="toImage()">截图上传
|
|
|
- </el-button>
|
|
|
+ <!-- <el-button size="small" icon="el-icon-download" @click="toImage()">截图上传-->
|
|
|
+ <!-- </el-button>-->
|
|
|
<el-button size="small" icon="el-icon-download" @click="showResponsibility()"
|
|
|
v-if="eventStatusValue!='forest_event_status_1'&&eventStatusValue!='forest_event_status_7'">责任制
|
|
|
</el-button>
|
|
@@ -938,12 +1003,12 @@
|
|
|
<el-input type="number" v-model="sendHuoZaiBanJing" placeholder="请输入火灾半径" />
|
|
|
</el-form-item>
|
|
|
<el-form-item
|
|
|
- v-if="eventStatusButton=='wb'||eventStatusButton=='qs'||eventStatusButton=='cf'||eventStatusButton=='ld'"
|
|
|
+ v-if="eventStatusButton=='wb'||eventStatusButton=='qs'||eventStatusButton=='cf'"
|
|
|
:label="deptNameitem">
|
|
|
<!-- <treeselect v-model="deptId" :options="deptOptions" multiple :show-count="true"-->
|
|
|
<!-- placeholder="请选择签收部门"/>-->
|
|
|
<el-select v-model="sendDeptName" clearable placeholder="请选择部门" class="m-r-1rem" @change="setValue"
|
|
|
- v-if="eventStatusButton=='wb'||eventStatusButton=='qs'||eventStatusButton=='cf'||eventStatusButton=='ld'">
|
|
|
+ v-if="eventStatusButton=='wb'||eventStatusButton=='qs'||eventStatusButton=='cf'">
|
|
|
<el-option v-for="item in deptOptions" :key="item.deptId" :label="item.deptName"
|
|
|
:value="{value:item.deptId,label:item.deptName}">
|
|
|
</el-option>
|
|
@@ -1733,7 +1798,8 @@ import DHWs from '@/dahua/lib/DHWs'
|
|
|
import {
|
|
|
joinConferences
|
|
|
} from "@/api/meeting";
|
|
|
-import findUserByDept from '@/views/findUserByDept' //责任人选择弹框
|
|
|
+import findUserByDept from '@/views/findUserByDept'
|
|
|
+import Cookies from "js-cookie"; //责任人选择弹框
|
|
|
export default {
|
|
|
dicts: ['task_source'],
|
|
|
watch: {
|
|
@@ -1753,6 +1819,12 @@ export default {
|
|
|
},
|
|
|
data() {
|
|
|
return {
|
|
|
+ //地图tool开关
|
|
|
+ mapToolShow: false,
|
|
|
+ mapToolCheckAll: false,
|
|
|
+ mapToolCheck: ["应急预案", "资源与操作"],
|
|
|
+ mapToolCheckItem: [],
|
|
|
+ mapToolShowBH:false,
|
|
|
isLoading: false,
|
|
|
//海康
|
|
|
cameraTitle: '',
|
|
@@ -2031,6 +2103,91 @@ export default {
|
|
|
this.fireControlViewList();
|
|
|
},
|
|
|
methods: {
|
|
|
+ showTVWallDiaLog() {
|
|
|
+ this.initByCameras();
|
|
|
+ // this.$refs.TVWall.showTVWall();
|
|
|
+ },
|
|
|
+ initByCameras() {
|
|
|
+ // const params = Object.assign({})
|
|
|
+ // params.longitude = this.longitude;
|
|
|
+ // params.latitude = this.latitude;
|
|
|
+ // params.type = '8'
|
|
|
+ // initByCameras(params).then(res => {
|
|
|
+ // this.$refs.TVWall.showTVWall1(this.longitude, this.latitude, res.data);
|
|
|
+ // this.$refs.bottomMenu.showMeasure = false
|
|
|
+ // this.$refs.bottomMenu.showChild = false
|
|
|
+ // this.$refs.bottomMenu.showBanChild = false
|
|
|
+ // this.$refs.bottomMenu.showChangChild = false
|
|
|
+ // })
|
|
|
+ let that = this
|
|
|
+ if(that.centermonitorTCamera == null){
|
|
|
+ this.$message.warning("当前事件无绑定摄像头")
|
|
|
+ return
|
|
|
+ }
|
|
|
+ let tvListJson = [{
|
|
|
+ "switchTab": "2",
|
|
|
+ "treeLabels": [{
|
|
|
+ "id": null,
|
|
|
+ "labelCode": "999",
|
|
|
+ "labelName": "电视墙",
|
|
|
+ "cameraType": null,
|
|
|
+ "parentLabelCode": ""
|
|
|
+ },
|
|
|
+ {
|
|
|
+ "id": "spcamera00010",
|
|
|
+ "labelCode": that.centermonitorTCamera.cameraCode,
|
|
|
+ "labelName": that.centermonitorTCamera.cameraName,
|
|
|
+ "cameraType": that.centermonitorTCamera.cameraType,
|
|
|
+ "parentLabelCode": "999"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ "labelChannels": [{
|
|
|
+ "labelCode": that.centermonitorTCamera.cameraCode,
|
|
|
+ "channelDates": [{
|
|
|
+ "channelCode": that.centermonitorTCamera.cameraCode,
|
|
|
+ "channelName": that.centermonitorTCamera.cameraName,
|
|
|
+ "channelSn": null,
|
|
|
+ "cameraType": that.centermonitorTCamera.cameraType,
|
|
|
+ "online": "1",
|
|
|
+ "cameraCode": null
|
|
|
+ }]
|
|
|
+ }]
|
|
|
+ }]
|
|
|
+ this.$refs.TVWall.showTVWall1(this.longitude, this.latitude, tvListJson);
|
|
|
+ this.$refs.bottomMenu.showMeasure = false
|
|
|
+ this.$refs.bottomMenu.showChild = false
|
|
|
+ this.$refs.bottomMenu.showBanChild = false
|
|
|
+ this.$refs.bottomMenu.showChangChild = false
|
|
|
+ },
|
|
|
+ closedEventDiaTool() {
|
|
|
+ document.addEventListener("click", (e) => {
|
|
|
+ let b = document.getElementById("eventMapToolOnly");
|
|
|
+ let c = document.getElementById("eventMapToolOnlyButton");
|
|
|
+ if (this.mapToolShow && !b.contains(e.target) && !c.contains(e.target)) {
|
|
|
+ this.mapToolShow = false;
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+ },
|
|
|
+ // 地图tool显隐
|
|
|
+ mapToolCheckAllChange(val) {
|
|
|
+ this.mapToolCheckItem = [];
|
|
|
+ this.mapToolCheckItem = val ? this.mapToolCheck : [];
|
|
|
+ // this.isIndeterminate = false;
|
|
|
+ this.mapToolCheckChangeBH()
|
|
|
+ },
|
|
|
+ mapToolCheckChangeBH(){
|
|
|
+ if (this.mapToolCheckItem.includes("地图标绘")) {
|
|
|
+ this.mapToolShowBH= true
|
|
|
+ } else {
|
|
|
+ this.mapToolShowBH= false
|
|
|
+ }
|
|
|
+ },
|
|
|
+ mapToolCheckChange(value) {
|
|
|
+ let checkedCount = value.length;
|
|
|
+ this.mapToolCheckAll = checkedCount === this.mapToolCheck.length;
|
|
|
+ this.mapToolCheckChangeBH()
|
|
|
+ },
|
|
|
/************************************责任制-开始****************************************/
|
|
|
addLine: function() { //添加负责人行数
|
|
|
var newValue = {
|
|
@@ -2060,19 +2217,19 @@ export default {
|
|
|
fireControlViewList() {
|
|
|
this.resourcesList1 = [];
|
|
|
let _this = this;
|
|
|
- // {
|
|
|
- // resourceName: '取水口',
|
|
|
- // type: 'qsk',
|
|
|
- // count: '1',
|
|
|
- // icon: 'sj-icon-waterintake'
|
|
|
- // },
|
|
|
- fireControlViewList().then(function(res) {
|
|
|
+ fireControlViewList("xiaofang").then(function (res) {
|
|
|
// _this.resourcesList = res.data
|
|
|
//截取data.resourceTable字段中“_”分隔符最后一个作为关键字,重新拼接成前端需要的图标:class,格式sj-icon-xxxx,将其set回原数组
|
|
|
- res.data.forEach(function(data, index) {
|
|
|
+ res.data.forEach(function (data, index) {
|
|
|
let obj = {};
|
|
|
- let icon = 'sj' + '-' + 'icon' + '-' + data.type.replaceAll("_", "-").replaceAll("@", "-");
|
|
|
- obj.resourceName = data.name.replaceAll("(个)", "");
|
|
|
+ let icon =
|
|
|
+ "sj" +
|
|
|
+ "-" +
|
|
|
+ "icon" +
|
|
|
+ "-" +
|
|
|
+ data.type.replaceAll("_", "-").replaceAll("@", "-");
|
|
|
+ let resourceName = data.name.replaceAll("(个)", "");
|
|
|
+ obj.resourceName = resourceName;
|
|
|
obj.type = data.type;
|
|
|
obj.count = data.num;
|
|
|
obj.icon = icon;
|
|
@@ -2080,16 +2237,15 @@ export default {
|
|
|
console.log("icon_" + (index + 1) + "=", icon);
|
|
|
//每个图标对应固定颜色
|
|
|
_this.$set(_this.resourcesList1[index], "bg", getIconBg(icon));
|
|
|
-
|
|
|
- })
|
|
|
+ });
|
|
|
_this.resourcesList1.push({
|
|
|
- resourceName: '摄像头',
|
|
|
- type: 'sxt',
|
|
|
- count: '1',
|
|
|
- icon: 'sj-icon-jkzx',
|
|
|
- bg: '#f5ad1b'
|
|
|
- })
|
|
|
- })
|
|
|
+ resourceName: "摄像头",
|
|
|
+ type: "sxt",
|
|
|
+ count: "1",
|
|
|
+ icon: "sj-icon-jkzx",
|
|
|
+ bg: "#f5ad1b",
|
|
|
+ });
|
|
|
+ });
|
|
|
},
|
|
|
fireControlViewPoint(type) {
|
|
|
// alert(type)
|
|
@@ -2115,48 +2271,85 @@ export default {
|
|
|
let markersMap = {
|
|
|
lng: 124.59,
|
|
|
lat: 43.02,
|
|
|
- icon: 'marker',
|
|
|
- bindPopupHtml: '',
|
|
|
- click: '',
|
|
|
- parameter: '',
|
|
|
+ icon: "marker",
|
|
|
+ bindPopupHtml: "",
|
|
|
+ click: "",
|
|
|
+ parameter: "",
|
|
|
keepBindPopup: false,
|
|
|
- isAggregation: true
|
|
|
- }
|
|
|
- markersMap.icon = 'sj-icon-map-' + type.replaceAll("_", "-");
|
|
|
+ isAggregation: true,
|
|
|
+ };
|
|
|
+ markersMap.icon = "sj-icon-map-" + type.replaceAll("_", "-");
|
|
|
markersMap.lng = res.data.pointList[i].longitude;
|
|
|
markersMap.lat = res.data.pointList[i].latitude;
|
|
|
- markersMap.bindPopupHtml = '<div class="map-tip">' +
|
|
|
- '<span>' +
|
|
|
+ markersMap.bindPopupHtml =
|
|
|
+ '<div class="map-tip">' +
|
|
|
+ "<span>" +
|
|
|
+ ' <div class="d-l-con">' +
|
|
|
+ ' <div class="d-l-l-text">' +
|
|
|
+ " <h4>资源名称:" +
|
|
|
+ res.data.pointList[i].name +
|
|
|
+ "</h4>" +
|
|
|
+ " </div>" +
|
|
|
+ " </div>" +
|
|
|
+ " </span>" +
|
|
|
+ "<span>" +
|
|
|
+ ' <div class="d-l-con">' +
|
|
|
+ ' <div class="d-l-l-text">' +
|
|
|
+ " <h4>经纬度:" +
|
|
|
+ res.data.pointList[i].longitude +
|
|
|
+ "," +
|
|
|
+ res.data.pointList[i].latitude +
|
|
|
+ "</h4>" +
|
|
|
+ " </div>" +
|
|
|
+ " </div>" +
|
|
|
+ " </span>" +
|
|
|
+ "<span>" +
|
|
|
+ ' <div class="d-l-con">' +
|
|
|
+ ' <div class="d-l-l-text">' +
|
|
|
+ " <h4>名称:" +
|
|
|
+ (res.data.pointList[i].name?res.data.pointList[i].name:'无') +
|
|
|
+ "</h4>" +
|
|
|
+ " </div>" +
|
|
|
+ " </div>" +
|
|
|
+ " </span>" +
|
|
|
+ "<span>" +
|
|
|
' <div class="d-l-con">' +
|
|
|
' <div class="d-l-l-text">' +
|
|
|
- ' <h4>资源名称:' + res.data.pointList[i].name + '</h4>' +
|
|
|
- ' </div>' +
|
|
|
- ' </div>' +
|
|
|
- ' </span>' +
|
|
|
- '<span>' +
|
|
|
+ " <h4>地址:" +
|
|
|
+ (res.data.pointList[i].address?res.data.pointList[i].address:'无') +
|
|
|
+ "</h4>" +
|
|
|
+ " </div>" +
|
|
|
+ " </div>" +
|
|
|
+ " </span>" +
|
|
|
+ "<span>" +
|
|
|
' <div class="d-l-con">' +
|
|
|
' <div class="d-l-l-text">' +
|
|
|
- ' <h4>经纬度:' + res.data.pointList[i].longitude + ',' + res.data.pointList[i]
|
|
|
- .latitude + '</h4>' +
|
|
|
- ' </div>' +
|
|
|
- ' </div>' +
|
|
|
- ' </span>' +
|
|
|
- '<span>' +
|
|
|
+ " <h4>联系人:" +
|
|
|
+ (res.data.pointList[i].contacts?res.data.pointList[i].contacts:'无') +
|
|
|
+ "</h4>" +
|
|
|
+ " </div>" +
|
|
|
+ " </div>" +
|
|
|
+ " </span>" +
|
|
|
+ "<span>" +
|
|
|
' <div class="d-l-con">' +
|
|
|
' <div class="d-l-l-text">' +
|
|
|
- ' <h4>联系人:' + res.data.pointList[i].contacts + '</h4>' +
|
|
|
- ' </div>' +
|
|
|
- ' </div>' +
|
|
|
- ' </span>' +
|
|
|
- '<span>' +
|
|
|
+ " <h4>电话:" +
|
|
|
+ (res.data.pointList[i].phone?res.data.pointList[i].phone:'无') +
|
|
|
+ "</h4>" +
|
|
|
+ " </div>" +
|
|
|
+ " </div>" +
|
|
|
+ " </span>" +
|
|
|
+ "<span>" +
|
|
|
' <div class="d-l-con">' +
|
|
|
' <div class="d-l-l-text">' +
|
|
|
- ' <h4>电话:' + res.data.pointList[i].phone + '</h4>' +
|
|
|
- ' </div>' +
|
|
|
- ' </div>' +
|
|
|
- ' </span>' +
|
|
|
- '</div>'
|
|
|
- markersList.push(markersMap)
|
|
|
+ " <h4>距离事件距离:" +
|
|
|
+ (res.data.pointList[i].distance?res.data.pointList[i].distance+'米':'无') +
|
|
|
+ "</h4>" +
|
|
|
+ " </div>" +
|
|
|
+ " </div>" +
|
|
|
+ " </span>" +
|
|
|
+ "</div>";
|
|
|
+ markersList.push(markersMap);
|
|
|
}
|
|
|
setTimeout(() => {
|
|
|
this.$refs.supermapDialog1.setMarkersByType(markersList, type)
|
|
@@ -2307,7 +2500,8 @@ export default {
|
|
|
/************************************责任制-结束****************************************/
|
|
|
showEventdetailsdialog() {
|
|
|
this.eventDialog = false;
|
|
|
- this.$emit('showEventDialog', this.eventCode);
|
|
|
+ this.cancelEventShow()
|
|
|
+ this.$emit('getFirespread', this.eventCode);
|
|
|
},
|
|
|
showheatPlotting() {
|
|
|
this.$refs.supermapDialog1.showheatPlotting(this.latitude, this.longitude, this.windSpeed, this.windDirection)
|
|
@@ -2387,13 +2581,61 @@ export default {
|
|
|
} else if (type == 'sxt') {
|
|
|
if(res.data[i].cameraUse==1)
|
|
|
{
|
|
|
- markersMap.icon='sj-icon-map-centerdata-slmonitor'
|
|
|
- } else {
|
|
|
+ if(res.data[i].workingStatus==0)
|
|
|
+ {
|
|
|
+ markersMap.icon='sj-icon-map-centerdata-slmonitor'
|
|
|
+ markersMap.click='preview'
|
|
|
+ }else if (res.data[i].workingStatus==1)
|
|
|
+ {
|
|
|
+ markersMap.icon='sj-icon-map-not-centerdata-slmonitor'
|
|
|
+ markersMap.click=''
|
|
|
+ }
|
|
|
+
|
|
|
+ } else if (res.data[i].cameraUse == 2){
|
|
|
+ if(res.data[i].workingStatus==0)
|
|
|
+ {
|
|
|
+ markersMap.icon = "camera";
|
|
|
+ markersMap.click='preview'
|
|
|
+ }else if (res.data[i].workingStatus==1)
|
|
|
+ {
|
|
|
+ markersMap.icon = "camera-not";
|
|
|
+ markersMap.click=''
|
|
|
+ }
|
|
|
+ } else if (res.data[i].cameraUse == 3) {
|
|
|
+ if(res.data[i].workingStatus==0)
|
|
|
+ {
|
|
|
+ markersMap.icon = 'sj-icon-map-centerdata-slmonitor-traffic'
|
|
|
+ markersMap.click='preview'
|
|
|
+ }else if (res.data[i].workingStatus==1)
|
|
|
+ {
|
|
|
+ markersMap.icon = 'sj-icon-map-not-centerdata-slmonitor-traffic'
|
|
|
+ markersMap.click=''
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ else if (res.data[i].cameraUse == 4) {
|
|
|
+ if(res.data[i].workingStatus==0)
|
|
|
+ {
|
|
|
+ markersMap.icon = 'sj-icon-map-centerdata-sand-quarry-camera'
|
|
|
+ markersMap.click='preview'
|
|
|
+ }else if (res.data[i].workingStatus==1)
|
|
|
+ {
|
|
|
+ markersMap.icon = 'sj-icon-map-not-centerdata-sand-quarry-camera'
|
|
|
+ markersMap.click=''
|
|
|
+ }
|
|
|
|
|
|
- markersMap.icon='camera'
|
|
|
+ }
|
|
|
+ else if (res.data[i].cameraUse == 5) {
|
|
|
+ if (res.data[i].workingStatus == 0) {
|
|
|
+ markersMap.icon = 'sj-icon-map-centerdata-t-hydraulic-reservoir-camera'
|
|
|
+ markersMap.click = 'preview'
|
|
|
+ } else if (res.data[i].workingStatus == 1) {
|
|
|
+ markersMap.icon = 'sj-icon-map-not-centerdata-t-hydraulic-reservoir-camera'
|
|
|
+ markersMap.click = ''
|
|
|
+ }
|
|
|
}
|
|
|
if (res.data[i].cameraCode != null) {
|
|
|
- markersMap.click = 'preview'
|
|
|
+ // markersMap.click = 'preview'
|
|
|
// markersMap.parameter = res.data[i].cameraCode
|
|
|
markersMap.parameter = {code:res.data[i].cameraCode,
|
|
|
type:res.data[i].cameraFactory?res.data[i].cameraFactory:1,name:res.data[i].cameraName}
|
|
@@ -2606,6 +2848,19 @@ export default {
|
|
|
this.attachExamine.push(attachPath)
|
|
|
});
|
|
|
},
|
|
|
+
|
|
|
+//设置联动部门不可选择本部门
|
|
|
+ recursiveChildren(arrayList,deptId) {
|
|
|
+ arrayList.forEach((item, index) => {
|
|
|
+ if(item.id==deptId){
|
|
|
+ item.disabled="true";
|
|
|
+ return
|
|
|
+ }
|
|
|
+ if(item.children){
|
|
|
+ this.recursiveChildren(item.children,deptId)
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
/**
|
|
|
* eventStatusValue 事件状态
|
|
|
* isSend 是否办理
|
|
@@ -2672,6 +2927,8 @@ export default {
|
|
|
that.eventConfirmTitle = '事件联动'
|
|
|
/** 查询部门树结构 */
|
|
|
await deptTreeselect().then(response => {
|
|
|
+ let deptId=Cookies.get("deptId")
|
|
|
+ that.recursiveChildren(response.data,deptId)
|
|
|
that.deptOptionsLiandong = response.data
|
|
|
})
|
|
|
that.showEventConfirm = true
|
|
@@ -2709,11 +2966,11 @@ export default {
|
|
|
that.$message.error(`请选择任务联动部门!`)
|
|
|
return
|
|
|
}
|
|
|
- if (that.sendDeptId == '' || that.sendDeptId == null || that.sendDeptName == '' || that.sendDeptName ==
|
|
|
- null) {
|
|
|
- that.$message.error(`请选择任务发起部门!`)
|
|
|
- return
|
|
|
- }
|
|
|
+ // if (that.sendDeptId == '' || that.sendDeptId == null || that.sendDeptName == '' || that.sendDeptName ==
|
|
|
+ // null) {
|
|
|
+ // that.$message.error(`请选择任务发起部门!`)
|
|
|
+ // return
|
|
|
+ // }
|
|
|
let eventState = "";
|
|
|
listSJfl({
|
|
|
parentId: that.eventType
|
|
@@ -2725,8 +2982,8 @@ export default {
|
|
|
}
|
|
|
}
|
|
|
let param = {
|
|
|
- sendDeptId: that.sendDeptId,
|
|
|
- sendDept: that.sendDeptName,
|
|
|
+ sendDeptId: Cookies.get("deptId"),
|
|
|
+ sendDept: Cookies.get("deptName"),
|
|
|
eventCode: that.eventCode,
|
|
|
longitude: that.longitude,
|
|
|
latitude: that.latitude,
|
|
@@ -2738,6 +2995,7 @@ export default {
|
|
|
eventState: eventState,
|
|
|
eventName: that.eventName
|
|
|
}
|
|
|
+ debugger
|
|
|
sendTask(param).then(res => {
|
|
|
if (res.code == 200) {
|
|
|
that.$message.success(`联动发起成功!`)
|
|
@@ -2958,6 +3216,7 @@ export default {
|
|
|
|
|
|
sendEventLog() {
|
|
|
if (this.eventLog == '' || this.eventLog == null) {
|
|
|
+
|
|
|
return;
|
|
|
}
|
|
|
//日志发送
|
|
@@ -2979,13 +3238,21 @@ export default {
|
|
|
this.$refs.eventLogUpload.eventLogUpload(this.eventCode)
|
|
|
},
|
|
|
cancelEventShow() {
|
|
|
- this.dataStatus = null
|
|
|
+ this.mapToolShow=false
|
|
|
+ this.mapToolCheckItem = [];
|
|
|
+ this.mapToolCheckAll=false
|
|
|
+ this.mapToolShowBH=false,
|
|
|
+ this.dataStatus = null
|
|
|
this.deptId = null
|
|
|
console.log('关闭事件弹窗')
|
|
|
this.eventLogList = []
|
|
|
},
|
|
|
showEventDialog(eventCode) {
|
|
|
- this.getNewDataByDate(this.calendarDay)
|
|
|
+ this.mapToolShow=false
|
|
|
+ this.mapToolCheckItem = [];
|
|
|
+ this.mapToolCheckAll=false
|
|
|
+ this.mapToolShowBH=false,
|
|
|
+ this.getNewDataByDate(this.calendarDay)
|
|
|
this.eventCode = eventCode
|
|
|
let that = this
|
|
|
//获取事件详情
|
|
@@ -3081,11 +3348,14 @@ export default {
|
|
|
markersMapList.push(markersMap)
|
|
|
}
|
|
|
setTimeout(() => {
|
|
|
- that.$refs.supermapDialog1.dropLocation10(res.data.catalogue.latitude, res.data.catalogue.longitude)
|
|
|
- that.$refs.supermapDialog1.clearM(false)
|
|
|
- that.$refs.supermapDialog1.clearM(true)
|
|
|
- that.$refs.supermapDialog1.setMarkersRadius(markersMapList)
|
|
|
- }, 2000)
|
|
|
+ that.$refs.supermapDialog1.dropLocation10(
|
|
|
+ res.data.catalogue.latitude,
|
|
|
+ res.data.catalogue.longitude
|
|
|
+ );
|
|
|
+ that.$refs.supermapDialog1.clearM(false);
|
|
|
+ that.$refs.supermapDialog1.clearM(true);
|
|
|
+ that.$refs.supermapDialog1.setMarkersRadius(markersMapList);
|
|
|
+ }, 2000);
|
|
|
})
|
|
|
},
|
|
|
refreshEvent(eventCode) {
|
|
@@ -3178,11 +3448,14 @@ export default {
|
|
|
markersMapList.push(markersMap)
|
|
|
}
|
|
|
setTimeout(() => {
|
|
|
- that.$refs.supermapDialog1.clearM(false)
|
|
|
- that.$refs.supermapDialog1.clearM(true)
|
|
|
- that.$refs.supermapDialog1.setMarkersRadius(markersMapList)
|
|
|
- that.$refs.supermapDialog1.dropLocation10(res.data.catalogue.latitude, res.data.catalogue.longitude)
|
|
|
- }, 2000)
|
|
|
+ that.$refs.supermapDialog1.dropLocation10(
|
|
|
+ res.data.catalogue.latitude,
|
|
|
+ res.data.catalogue.longitude
|
|
|
+ );
|
|
|
+ that.$refs.supermapDialog1.clearM(false);
|
|
|
+ that.$refs.supermapDialog1.clearM(true);
|
|
|
+ that.$refs.supermapDialog1.setMarkersRadius(markersMapList);
|
|
|
+ }, 2000);
|
|
|
})
|
|
|
},
|
|
|
refreshEventDialog(eventCode) {
|
|
@@ -3203,10 +3476,10 @@ export default {
|
|
|
// imageTofile是给截图范围内的父级元素自定义的ref名称
|
|
|
// let canvasBox = this.$refs.imageTofile
|
|
|
let canvasBox = document.getElementById('forestWarmSuperMap')
|
|
|
- let toolbar = document.getElementById('toolbar')
|
|
|
- if (toolbar != null) {
|
|
|
- canvasBox.removeChild(toolbar)
|
|
|
- }
|
|
|
+ // let toolbar = document.getElementById('toolbar')
|
|
|
+ // if (toolbar != null) {
|
|
|
+ // canvasBox.removeChild(toolbar)
|
|
|
+ // }
|
|
|
// 获取父级的宽高
|
|
|
const width = parseInt(window.getComputedStyle(canvasBox).width)
|
|
|
const height = parseInt(window.getComputedStyle(canvasBox).height)
|
|
@@ -3228,7 +3501,7 @@ export default {
|
|
|
let dataBase64 = canvas.toDataURL('image/png')
|
|
|
this.uploadBase64(dataBase64)
|
|
|
})
|
|
|
- canvasBox.appendChild(toolbar)
|
|
|
+ // canvasBox.appendChild(toolbar)
|
|
|
},
|
|
|
uploadBase64(dataBase64) {
|
|
|
//事件详情截图直接上传日志
|
|
@@ -3541,9 +3814,47 @@ function cbIntegrationCallBack(oData) {
|
|
|
}
|
|
|
</script>
|
|
|
|
|
|
+<style lang="scss">
|
|
|
+.sj-map-tool-checkbox-all {
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ margin-right: 1rem !important;
|
|
|
|
|
|
+ .el-checkbox__input {
|
|
|
+ line-height: 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ .el-checkbox__label {
|
|
|
+ font-size: 14px;
|
|
|
+ color: white;
|
|
|
+ padding-left: 5px;
|
|
|
+ }
|
|
|
+ .el-checkbox__input.is-checked + .el-checkbox__label {
|
|
|
+ color: #01d1eb;
|
|
|
+ }
|
|
|
+}
|
|
|
+.sj-map-tool-checkbox {
|
|
|
+ display: flex;
|
|
|
+ .el-checkbox {
|
|
|
+ margin-right: 1rem;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+ .el-checkbox__input {
|
|
|
+ line-height: 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ .el-checkbox__label {
|
|
|
+ font-size: 14px;
|
|
|
+ color: white;
|
|
|
+ padding-left: 5px;
|
|
|
+ }
|
|
|
+ .el-checkbox__input.is-checked + .el-checkbox__label {
|
|
|
+ color: #01d1eb;
|
|
|
+ }
|
|
|
+}
|
|
|
+</style>
|
|
|
<style lang="scss" scoped>
|
|
|
-@import '@/assets/styles/base.scss';
|
|
|
+@import "@/assets/styles/base.scss";
|
|
|
|
|
|
//弹层样式
|
|
|
//.customWidthMp4 {
|
|
@@ -3553,11 +3864,10 @@ function cbIntegrationCallBack(oData) {
|
|
|
|
|
|
.tree-border {
|
|
|
border: 1px $barBorder;
|
|
|
-
|
|
|
}
|
|
|
|
|
|
button {
|
|
|
- padding: .5rem;
|
|
|
+ padding: 0.5rem;
|
|
|
}
|
|
|
|
|
|
/** 火灾报告**/
|
|
@@ -3601,14 +3911,12 @@ table input {
|
|
|
font-family: "微软雅黑";
|
|
|
background: none;
|
|
|
color: $inBlue;
|
|
|
-
|
|
|
}
|
|
|
|
|
|
table th input:hover {
|
|
|
background: $eventBG;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
table thead th {
|
|
|
font-size: 1rem;
|
|
|
font-family: "宋体";
|
|
@@ -3625,7 +3933,6 @@ table tr td {
|
|
|
height: 2rem;
|
|
|
border: 1px $searchBorder;
|
|
|
text-align: center;
|
|
|
-
|
|
|
}
|
|
|
|
|
|
.font1 {
|
|
@@ -3650,22 +3957,21 @@ table tr td input {
|
|
|
color: $inBlue;
|
|
|
background: none;
|
|
|
float: left;
|
|
|
- padding: 0 .5rem;
|
|
|
+ padding: 0 0.5rem;
|
|
|
}
|
|
|
|
|
|
table tr td input:hover {
|
|
|
background: $eventBG;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
.int_tr td input {
|
|
|
text-align: center !important;
|
|
|
}
|
|
|
|
|
|
.table2 tr th {
|
|
|
font-size: 1.7rem;
|
|
|
- padding: .5rem 0;
|
|
|
- font-family: 'fontnameRegular';
|
|
|
+ padding: 0.5rem 0;
|
|
|
+ font-family: "fontnameRegular";
|
|
|
}
|
|
|
|
|
|
.table2 tr td {
|
|
@@ -3700,12 +4006,11 @@ table tr td input:hover {
|
|
|
border: 0px !important;
|
|
|
outline: 0px;
|
|
|
width: 98%;
|
|
|
- padding: .5rem;
|
|
|
+ padding: 0.5rem;
|
|
|
font-size: 1rem;
|
|
|
resize: none;
|
|
|
background: none;
|
|
|
color: $inBlue;
|
|
|
-
|
|
|
}
|
|
|
|
|
|
.table2 tr td textarea:hover {
|
|
@@ -3725,23 +4030,47 @@ table tr td input:hover {
|
|
|
display: flex;
|
|
|
|
|
|
button {
|
|
|
- padding: .5rem 2rem;
|
|
|
+ padding: 0.5rem 2rem;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+.sj-map-tool-select {
|
|
|
+ position: absolute;
|
|
|
+ right: 1rem;
|
|
|
+ top: 1rem;
|
|
|
+ z-index: 1000;
|
|
|
+ display: flex;
|
|
|
+ height: 30px;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
+.sj-map-tool-select-list {
|
|
|
+ position: relative;
|
|
|
+ padding: 0.3rem 1rem;
|
|
|
+ border-radius: 1rem;
|
|
|
+ background-color: #fff;
|
|
|
+ z-index: 1000;
|
|
|
+ background-image: linear-gradient(
|
|
|
+ 180deg,
|
|
|
+ rgba(18, 71, 153, 1),
|
|
|
+ rgba(4, 21, 30, 1)
|
|
|
+ );
|
|
|
+ box-shadow: 0 -0.2rem 0.5rem 0.3rem rgba(13, 192, 219, 0.09) inset;
|
|
|
+ display: flex;
|
|
|
+ align-items: center;
|
|
|
+}
|
|
|
|
|
|
// 20220928
|
|
|
.yatz_button {
|
|
|
padding: 0.5rem 0.5rem;
|
|
|
- color: #409EFF;
|
|
|
+ color: #409eff;
|
|
|
background: none;
|
|
|
- border-color: #409EFF;
|
|
|
+ border-color: #409eff;
|
|
|
}
|
|
|
|
|
|
.yatz_button:hover {
|
|
|
color: #fff;
|
|
|
- background: #409EFF;
|
|
|
- border-color: #409EFF;
|
|
|
+ background: #409eff;
|
|
|
+ border-color: #409eff;
|
|
|
}
|
|
|
|
|
|
.fr_button {
|
|
@@ -3838,4 +4167,6 @@ table tr td input:hover {
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+
|
|
|
</style>
|