|
@@ -20,13 +20,16 @@
|
|
<div class="dia-left-top-tit">应急预案</div>
|
|
<div class="dia-left-top-tit">应急预案</div>
|
|
<div class="dia-left-top-carousel">
|
|
<div class="dia-left-top-carousel">
|
|
<el-carousel height="30px" direction="vertical" :interval="2000">
|
|
<el-carousel height="30px" direction="vertical" :interval="2000">
|
|
- <el-carousel-item>
|
|
|
|
- <a href="#">{{ visuForestCloudYuAnBo }}</a>
|
|
|
|
|
|
+ <el-carousel-item v-if="visuForestCloudYuAnBo!=null">
|
|
|
|
+ <a :href="visuForestCloudYuAnBo.fileUrl">{{ visuForestCloudYuAnBo.reserveName }}</a>
|
|
|
|
+ </el-carousel-item>
|
|
|
|
+ <el-carousel-item v-else>
|
|
|
|
+ <a href="#">未选预案</a>
|
|
</el-carousel-item>
|
|
</el-carousel-item>
|
|
</el-carousel>
|
|
</el-carousel>
|
|
</div>
|
|
</div>
|
|
- <el-button size="small" @click="">预案调整
|
|
|
|
- </el-button>
|
|
|
|
|
|
+ <el-button size="mini" type="primary" @click="showUpdateYjYuAn">预案调整
|
|
|
|
+ </el-button>
|
|
</div>
|
|
</div>
|
|
<!-- 应急预案end -->
|
|
<!-- 应急预案end -->
|
|
<!-- 左侧资源 -->
|
|
<!-- 左侧资源 -->
|
|
@@ -78,24 +81,26 @@
|
|
placement="top" v-for="(item,index) in eventLogList">
|
|
placement="top" v-for="(item,index) in eventLogList">
|
|
<el-card style="width: 40vh">
|
|
<el-card style="width: 40vh">
|
|
<div class="z-info-list-con">
|
|
<div class="z-info-list-con">
|
|
- <div class="user-and-time flex-d" >
|
|
|
|
|
|
+ <div class="user-and-time flex-d">
|
|
<span>{{ item.createName }}</span>
|
|
<span>{{ item.createName }}</span>
|
|
- <span v-if="eventLogList.length - 1 == index"><i class="el-icon-location"></i> {{ item.address }}</span>
|
|
|
|
|
|
+ <span v-if="eventLogList.length - 1 == index&&address!=null&&address!=''"><i
|
|
|
|
+ class="el-icon-location"></i> {{ address }}</span>
|
|
</div>
|
|
</div>
|
|
<div class="z-info">
|
|
<div class="z-info">
|
|
<div class="this-con-list-info">
|
|
<div class="this-con-list-info">
|
|
{{ item.logContent }}
|
|
{{ item.logContent }}
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<div>
|
|
- <el-image :src="itemfile" v-if="isAssetTypeAnImage(itemfile)"
|
|
|
|
- :preview-src-list="item.attachs"
|
|
|
|
|
|
+ <el-image :src="itemfile.fileUrl" v-if="isAssetTypeAnImage(itemfile.fileUrl)"
|
|
|
|
+ :preview-src-list="assetTypeAnImage(item.attachs)"
|
|
style="width:3rem; height:3rem;margin: 2px;"
|
|
style="width:3rem; height:3rem;margin: 2px;"
|
|
- v-for="(itemfile,index1) in item.attachs">
|
|
|
|
|
|
+ v-for="(itemfile,index1) in item.fileVOs">
|
|
</el-image>
|
|
</el-image>
|
|
- <el-link :href="itemfile" :underline="false" target="_blank"
|
|
|
|
- v-for="(itemfile,index1) in item.attachs"
|
|
|
|
- v-if="!isAssetTypeAnImage(itemfile)">
|
|
|
|
- <span class="el-icon-document"> {{ getFileName(itemfile) }} </span>
|
|
|
|
|
|
+ <br>
|
|
|
|
+ <el-link :href="itemfile.fileUrl" :underline="false" target="_blank"
|
|
|
|
+ v-for="(itemfile,index1) in item.fileVOs"
|
|
|
|
+ v-if="!isAssetTypeAnImage(itemfile.fileUrl)">
|
|
|
|
+ <span class="el-icon-document"> {{ itemfile.fileName }} </span>
|
|
</el-link>
|
|
</el-link>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@@ -209,7 +214,7 @@
|
|
</div>
|
|
</div>
|
|
<vBottomMenu ref="bottomMenu"></vBottomMenu>
|
|
<vBottomMenu ref="bottomMenu"></vBottomMenu>
|
|
<eventLogUpload ref="eventLogUpload"></eventLogUpload>
|
|
<eventLogUpload ref="eventLogUpload"></eventLogUpload>
|
|
- <el-dialog :title="eventConfirmTitle" :visible.sync="showEventConfirm" v-if="showEventConfirm" width="80%"
|
|
|
|
|
|
+ <el-dialog :title="eventConfirmTitle" :visible.sync="showEventConfirm" v-if="showEventConfirm" width="50%"
|
|
class="top-dialog"
|
|
class="top-dialog"
|
|
@close="cancelEventConfirm()">
|
|
@close="cancelEventConfirm()">
|
|
<el-form label-width="80px">
|
|
<el-form label-width="80px">
|
|
@@ -219,7 +224,8 @@
|
|
<el-form-item :label="deptNameitem">
|
|
<el-form-item :label="deptNameitem">
|
|
<!-- <treeselect v-model="deptId" :options="deptOptions" multiple :show-count="true"-->
|
|
<!-- <treeselect v-model="deptId" :options="deptOptions" multiple :show-count="true"-->
|
|
<!-- placeholder="请选择签收部门"/>-->
|
|
<!-- placeholder="请选择签收部门"/>-->
|
|
- <el-select v-model="sendDeptName" clearable placeholder="请选择部门" class="m-r-1rem" @change="setValue" v-if="eventStatusButton=='wb'||eventStatusButton=='qs'||eventStatusButton=='cf'||eventStatusButton=='ld'">
|
|
|
|
|
|
+ <el-select v-model="sendDeptName" clearable placeholder="请选择部门" class="m-r-1rem" @change="setValue"
|
|
|
|
+ v-if="eventStatusButton=='wb'||eventStatusButton=='qs'||eventStatusButton=='cf'||eventStatusButton=='ld'">
|
|
<el-option
|
|
<el-option
|
|
v-for="item in deptOptions"
|
|
v-for="item in deptOptions"
|
|
:key="item.deptId"
|
|
:key="item.deptId"
|
|
@@ -287,8 +293,23 @@
|
|
</el-button>
|
|
</el-button>
|
|
</el-form>
|
|
</el-form>
|
|
</el-dialog>
|
|
</el-dialog>
|
|
-
|
|
|
|
-
|
|
|
|
|
|
+ <el-dialog title="调整预案" :visible.sync="showGuanLianYuAnConfirm" v-if="showGuanLianYuAnConfirm" width="50%"
|
|
|
|
+ class="top-dialog">
|
|
|
|
+ <el-form label-width="80px">
|
|
|
|
+ <el-form-item label="关联预案">
|
|
|
|
+ <el-select v-model="sendGuanLianYuAn" placeholder="请选择关联预案!" clearable>
|
|
|
|
+ <el-option
|
|
|
|
+ v-for="item in guanLianYuAnList"
|
|
|
|
+ :key="item.id"
|
|
|
|
+ :label="item.resTitle"
|
|
|
|
+ :value="item.id"
|
|
|
|
+ />
|
|
|
|
+ </el-select>
|
|
|
|
+ </el-form-item>
|
|
|
|
+ <el-button size="mini" type="primary" @click="updateYjYuAn">确定
|
|
|
|
+ </el-button>
|
|
|
|
+ </el-form>
|
|
|
|
+ </el-dialog>
|
|
<el-dialog title="火险报告" :visible.sync="showEventConfirm_gd" v-if="showEventConfirm_gd" width="100%"
|
|
<el-dialog title="火险报告" :visible.sync="showEventConfirm_gd" v-if="showEventConfirm_gd" width="100%"
|
|
class="top-dialog"
|
|
class="top-dialog"
|
|
@close="cancelEventConfirm_gd()">
|
|
@close="cancelEventConfirm_gd()">
|
|
@@ -797,7 +818,8 @@ import {
|
|
selectByeventCode,
|
|
selectByeventCode,
|
|
updateCentereventTEventcatalogueStatus,
|
|
updateCentereventTEventcatalogueStatus,
|
|
sendTask,
|
|
sendTask,
|
|
- listResourceByWz
|
|
|
|
|
|
+ listResourceByWz,
|
|
|
|
+ updateYjYuAn
|
|
} from '@/api/forest'
|
|
} from '@/api/forest'
|
|
import {
|
|
import {
|
|
treeselectAll as deptTreeselect
|
|
treeselectAll as deptTreeselect
|
|
@@ -925,7 +947,9 @@ export default {
|
|
},
|
|
},
|
|
/** *****************事件流程***************************/
|
|
/** *****************事件流程***************************/
|
|
showEventConfirm: false,//事件签收弹窗
|
|
showEventConfirm: false,//事件签收弹窗
|
|
|
|
+ showGuanLianYuAnConfirm: false,//调整关联预案弹窗
|
|
showEventConfirm_gd: false,//事件火险报告弹窗
|
|
showEventConfirm_gd: false,//事件火险报告弹窗
|
|
|
|
+ address:null,//事件上报地址
|
|
eventStatusValue: null,//事件状态
|
|
eventStatusValue: null,//事件状态
|
|
eventId: null,//事件ID
|
|
eventId: null,//事件ID
|
|
eventType: null,//事件类型-大类
|
|
eventType: null,//事件类型-大类
|
|
@@ -995,9 +1019,30 @@ export default {
|
|
calendarDay: null//首页日历选择
|
|
calendarDay: null//首页日历选择
|
|
},
|
|
},
|
|
methods: {
|
|
methods: {
|
|
|
|
+ showUpdateYjYuAn() {
|
|
|
|
+ listYuAn().then(res => {
|
|
|
|
+ //关联预案列表
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
+ this.guanLianYuAnList = res.data
|
|
|
|
+ this.showGuanLianYuAnConfirm = true
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
|
|
+ updateYjYuAn() {
|
|
|
|
+ let param = {eventCode: this.eventCode, reserve: this.sendGuanLianYuAn}
|
|
|
|
+ updateYjYuAn(param).then(res => {
|
|
|
|
+ //事件调整关联预案
|
|
|
|
+ if (res.code == 200) {
|
|
|
|
+ this.$message.success(`预案调整成功!`)
|
|
|
|
+ this.refreshEventDialog(this.eventCode)
|
|
|
|
+ this.sendGuanLianYuAn=null
|
|
|
|
+ this.showGuanLianYuAnConfirm = false
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
+ },
|
|
listResourceByWz(type) {
|
|
listResourceByWz(type) {
|
|
//搜索物资
|
|
//搜索物资
|
|
- let param = { longitude: this.longitude, latitude: this.latitude, type: type, radius: this.radius }
|
|
|
|
|
|
+ let param = {longitude: this.longitude, latitude: this.latitude, type: type, radius: this.radius}
|
|
listResourceByWz(param).then(res => {
|
|
listResourceByWz(param).then(res => {
|
|
if (res.data != null && res.data.length > 0) {
|
|
if (res.data != null && res.data.length > 0) {
|
|
var markersList = []
|
|
var markersList = []
|
|
@@ -1051,6 +1096,23 @@ export default {
|
|
}
|
|
}
|
|
})
|
|
})
|
|
},
|
|
},
|
|
|
|
+ // 返回图片列表
|
|
|
|
+ assetTypeAnImage(filePath) {
|
|
|
|
+ let imageList=[]
|
|
|
|
+ if(filePath!=null&&filePath.length>0){
|
|
|
|
+ for (let i = 0; i < filePath.length; i++) {
|
|
|
|
+ //获取最后一个.的位置
|
|
|
|
+ var index = filePath[i].lastIndexOf('.')
|
|
|
|
+ //获取后缀
|
|
|
|
+ var ext = filePath[i].substr(index + 1)
|
|
|
|
+ let aa = ['png', 'jpg', 'jpeg', 'bmp', 'gif', 'webp', 'psd', 'svg', 'tiff'].indexOf(ext.toLowerCase()) !== -1
|
|
|
|
+ if(aa){
|
|
|
|
+ imageList.push(filePath[i])
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return imageList
|
|
|
|
+ },
|
|
// 判断是否为图片
|
|
// 判断是否为图片
|
|
isAssetTypeAnImage(filePath) {
|
|
isAssetTypeAnImage(filePath) {
|
|
//获取最后一个.的位置
|
|
//获取最后一个.的位置
|
|
@@ -1199,7 +1261,7 @@ export default {
|
|
if (!isSend) {//事件弹窗
|
|
if (!isSend) {//事件弹窗
|
|
if (eventStatus == 'qs') {//签收
|
|
if (eventStatus == 'qs') {//签收
|
|
this.eventConfirmTitle = '事件签收'
|
|
this.eventConfirmTitle = '事件签收'
|
|
- let param = { parentId: this.eventType }
|
|
|
|
|
|
+ let param = {parentId: this.eventType}
|
|
await listSJfl(param).then(res => {
|
|
await listSJfl(param).then(res => {
|
|
//事件类型
|
|
//事件类型
|
|
if (res.code == 200) {
|
|
if (res.code == 200) {
|
|
@@ -1263,7 +1325,7 @@ export default {
|
|
let array = this.$refs.LiandongDept.getCheckedNodes()
|
|
let array = this.$refs.LiandongDept.getCheckedNodes()
|
|
if (array != null && array.length > 0) {
|
|
if (array != null && array.length > 0) {
|
|
for (let i = 0; i < array.length; i++) {
|
|
for (let i = 0; i < array.length; i++) {
|
|
- this.sendLianDongDept.push({ 'taskDeptId': array[i].id, 'taskDeptName': array[i].label })
|
|
|
|
|
|
+ this.sendLianDongDept.push({'taskDeptId': array[i].id, 'taskDeptName': array[i].label})
|
|
}
|
|
}
|
|
}
|
|
}
|
|
let param = {
|
|
let param = {
|
|
@@ -1380,7 +1442,7 @@ export default {
|
|
},
|
|
},
|
|
sendEventLog() {
|
|
sendEventLog() {
|
|
//日志发送
|
|
//日志发送
|
|
- let param = { eventCode: this.eventCode, conext: this.eventLog }
|
|
|
|
|
|
+ let param = {eventCode: this.eventCode, conext: this.eventLog}
|
|
sendEventLog(param).then(res => {
|
|
sendEventLog(param).then(res => {
|
|
if (res.code == 200) {
|
|
if (res.code == 200) {
|
|
this.$message.success(`发送成功!`)
|
|
this.$message.success(`发送成功!`)
|
|
@@ -1400,11 +1462,12 @@ export default {
|
|
this.eventCode = eventCode
|
|
this.eventCode = eventCode
|
|
let that = this
|
|
let that = this
|
|
//获取事件详情
|
|
//获取事件详情
|
|
- getEventDetail({ eventCode: eventCode }).then(res => {
|
|
|
|
|
|
+ getEventDetail({eventCode: eventCode}).then(res => {
|
|
this.eventDialog = true
|
|
this.eventDialog = true
|
|
this.eventLogList = res.data.eventlog//日志列表
|
|
this.eventLogList = res.data.eventlog//日志列表
|
|
this.visuForestCloudYuAnBo = res.data.visuForestCloudYuAnBo//应急预案
|
|
this.visuForestCloudYuAnBo = res.data.visuForestCloudYuAnBo//应急预案
|
|
if (res.data.catalogue != null && res.data.catalogue.length > 0) {
|
|
if (res.data.catalogue != null && res.data.catalogue.length > 0) {
|
|
|
|
+ this.address = res.data.catalogue[0].address
|
|
this.eventStatusValue = res.data.catalogue[0].eventStatusValue
|
|
this.eventStatusValue = res.data.catalogue[0].eventStatusValue
|
|
this.eventType = res.data.catalogue[0].eventType
|
|
this.eventType = res.data.catalogue[0].eventType
|
|
this.eventId = res.data.catalogue[0].id
|
|
this.eventId = res.data.catalogue[0].id
|
|
@@ -1421,13 +1484,14 @@ export default {
|
|
isAggregation: false,
|
|
isAggregation: false,
|
|
radius: 0
|
|
radius: 0
|
|
}
|
|
}
|
|
- if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_1'&&res.data.catalogue[0].urgeCount==0) {
|
|
|
|
|
|
+ if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_1' && res.data.catalogue[0].urgeCount == 0) {
|
|
markersMap.icon = 'sj-icon-map-xinshangbao'
|
|
markersMap.icon = 'sj-icon-map-xinshangbao'
|
|
- }if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_1'&&res.data.catalogue[0].urgeCount>0) {
|
|
|
|
|
|
+ }
|
|
|
|
+ if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_1' && res.data.catalogue[0].urgeCount > 0) {
|
|
markersMap.icon = 'sj-icon-map-cuiban'
|
|
markersMap.icon = 'sj-icon-map-cuiban'
|
|
} else if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_2') {
|
|
} else if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_2') {
|
|
markersMap.icon = 'sj-icon-map-qianshou'
|
|
markersMap.icon = 'sj-icon-map-qianshou'
|
|
- }else if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_5') {
|
|
|
|
|
|
+ } else if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_5') {
|
|
markersMap.icon = 'sj-icon-map-banjie'
|
|
markersMap.icon = 'sj-icon-map-banjie'
|
|
} else if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_6') {
|
|
} else if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_6') {
|
|
markersMap.icon = 'sj-icon-map-guidnag'
|
|
markersMap.icon = 'sj-icon-map-guidnag'
|
|
@@ -1450,11 +1514,12 @@ export default {
|
|
this.eventCode = eventCode
|
|
this.eventCode = eventCode
|
|
let that = this
|
|
let that = this
|
|
//刷新--事件详情
|
|
//刷新--事件详情
|
|
- getEventDetail({ eventCode: eventCode }).then(res => {
|
|
|
|
|
|
+ getEventDetail({eventCode: eventCode}).then(res => {
|
|
this.eventDialog = true
|
|
this.eventDialog = true
|
|
this.eventLogList = res.data.eventlog
|
|
this.eventLogList = res.data.eventlog
|
|
this.visuForestCloudYuAnBo = res.data.visuForestCloudYuAnBo//应急预案
|
|
this.visuForestCloudYuAnBo = res.data.visuForestCloudYuAnBo//应急预案
|
|
if (res.data.catalogue != null && res.data.catalogue.length > 0) {
|
|
if (res.data.catalogue != null && res.data.catalogue.length > 0) {
|
|
|
|
+ this.address = res.data.catalogue[0].address
|
|
this.eventStatusValue = res.data.catalogue[0].eventStatusValue
|
|
this.eventStatusValue = res.data.catalogue[0].eventStatusValue
|
|
this.eventType = res.data.catalogue[0].eventType
|
|
this.eventType = res.data.catalogue[0].eventType
|
|
this.eventId = res.data.catalogue[0].id
|
|
this.eventId = res.data.catalogue[0].id
|
|
@@ -1469,13 +1534,14 @@ export default {
|
|
isAggregation: false,
|
|
isAggregation: false,
|
|
radius: 0
|
|
radius: 0
|
|
}
|
|
}
|
|
- if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_1'&&res.data.catalogue[0].urgeCount==0) {
|
|
|
|
|
|
+ if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_1' && res.data.catalogue[0].urgeCount == 0) {
|
|
markersMap.icon = 'sj-icon-map-xinshangbao'
|
|
markersMap.icon = 'sj-icon-map-xinshangbao'
|
|
- }if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_1'&&res.data.catalogue[0].urgeCount>0) {
|
|
|
|
|
|
+ }
|
|
|
|
+ if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_1' && res.data.catalogue[0].urgeCount > 0) {
|
|
markersMap.icon = 'sj-icon-map-cuiban'
|
|
markersMap.icon = 'sj-icon-map-cuiban'
|
|
} else if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_2') {
|
|
} else if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_2') {
|
|
markersMap.icon = 'sj-icon-map-qianshou'
|
|
markersMap.icon = 'sj-icon-map-qianshou'
|
|
- }else if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_5') {
|
|
|
|
|
|
+ } else if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_5') {
|
|
markersMap.icon = 'sj-icon-map-banjie'
|
|
markersMap.icon = 'sj-icon-map-banjie'
|
|
} else if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_6') {
|
|
} else if (res.data.catalogue[0].eventStatusValue == 'forest_event_status_6') {
|
|
markersMap.icon = 'sj-icon-map-guidnag'
|
|
markersMap.icon = 'sj-icon-map-guidnag'
|
|
@@ -1499,7 +1565,7 @@ export default {
|
|
},
|
|
},
|
|
refreshEventDialog(eventCode) {
|
|
refreshEventDialog(eventCode) {
|
|
//刷新--事件日志
|
|
//刷新--事件日志
|
|
- getEventDetail({ eventCode: eventCode }).then(res => {
|
|
|
|
|
|
+ getEventDetail({eventCode: eventCode}).then(res => {
|
|
this.eventLogList = res.data.eventlog
|
|
this.eventLogList = res.data.eventlog
|
|
this.visuForestCloudYuAnBo = res.data.visuForestCloudYuAnBo//应急预案
|
|
this.visuForestCloudYuAnBo = res.data.visuForestCloudYuAnBo//应急预案
|
|
})
|
|
})
|