应急救援指挥对接
parent
4e93e4083f
commit
a8d7c0dccf
|
@ -1,41 +1,56 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="infomation_area">
|
<div class="infomation_area">
|
||||||
<div class="infomation_title" @click="clickIntoDutyInfoDialog">{{ titleType }}</div>
|
<div class="infomation_title" @click="clickIntoDutyInfoDialog">{{ titleType }}</div>
|
||||||
<table v-if="!isReservePlan" class="infomation_table" cellspacing="0">
|
<table v-if="(!isReservePlan) && useType === 'dutyInfo'" class="infomation_table" cellspacing="0">
|
||||||
<thead class="infomation_table_thead">
|
<thead class="infomation_table_thead">
|
||||||
<tr class="infomation_table_thead_tr">
|
<tr class="infomation_table_thead_tr">
|
||||||
<th class="infomation_table_th">岗位</th>
|
|
||||||
<th class="infomation_table_th">姓名</th>
|
<th class="infomation_table_th">姓名</th>
|
||||||
<th class="infomation_table_th">{{ phoneType }}</th>
|
<th class="infomation_table_th">电话</th>
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="infomation_table_tbody">
|
<tbody class="infomation_table_tbody">
|
||||||
<tr v-for="(item, index) in showInfomationType" :key="index" class="infomation_table_tbody_tr">
|
<tr v-for="(item, index) in showInfomationType" :key="index" class="infomation_table_tbody_tr">
|
||||||
<td>{{ item.job }}</td>
|
<td>{{ item.PEOPLE_NAME }}</td>
|
||||||
<td>{{ item.name }}</td>
|
<td>{{ item.PEOPLE_PHONE }}</td>
|
||||||
<td>{{ item.phone }}</td>
|
</tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<table v-if="(!isReservePlan) && useType === 'addressBook'" class="infomation_table" cellspacing="0">
|
||||||
|
<thead class="infomation_table_thead">
|
||||||
|
<tr class="infomation_table_thead_tr">
|
||||||
|
<th class="infomation_table_th">姓名</th>
|
||||||
|
<th class="infomation_table_th">电话</th>
|
||||||
|
<th class="infomation_table_th">部门</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody class="infomation_table_tbody">
|
||||||
|
<tr v-for="(item, index) in showInfomationType" :key="index" class="infomation_table_tbody_tr">
|
||||||
|
<td>{{ item.NAME }}</td>
|
||||||
|
<td>{{ item.MOVE_PHONE }}</td>
|
||||||
|
<td>{{ item.DEPARTMENT }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div v-if="isReservePlan" class="reserve_plan">
|
<div v-if="isReservePlan" class="reserve_plan">
|
||||||
<div class="reserve_plan_title">应急预案名称: {{ infomations.reservePlan.应急预案名称 }}</div>
|
<div class="reserve_plan_title">应急预案名称: {{ info.reservePlan.PLANNAME }}</div>
|
||||||
<div class="scroll-box">
|
<div class="scroll-box">
|
||||||
<ul class="reserve_plan_ul">
|
<ul class="reserve_plan_ul">
|
||||||
<li>预案编号: {{ infomations.reservePlan.预案编号 }}</li>
|
<li>预案编码: {{ info.reservePlan.PLANCODE }}</li>
|
||||||
<li>适用领域: {{ infomations.reservePlan.适用领域 }}</li>
|
<li>事件类型: {{ info.reservePlan.EVENTTYPE }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="reserve_plan_ul">
|
<ul class="reserve_plan_ul">
|
||||||
<li>预案类别: {{ infomations.reservePlan.预案类别 }}</li>
|
<li>预案类型: {{ info.reservePlan.PLANTYPE_NAME }}</li>
|
||||||
<li>预案级别: {{ infomations.reservePlan.预案级别 }}</li>
|
<li>预案等级: {{ info.reservePlan.PLANGRADE }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="reserve_plan_ul">
|
<ul class="reserve_plan_ul">
|
||||||
<li>编制单位: {{ infomations.reservePlan.编制单位 }}</li>
|
<li>重点场所: {{ info.reservePlan.KEYPLACES_ID }}</li>
|
||||||
<li>编制人: {{ infomations.reservePlan.编制人 }}</li>
|
<li>备注信息: {{ info.reservePlan.BZ }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
<ul class="reserve_plan_ul">
|
<ul class="reserve_plan_ul">
|
||||||
<li>发布日期: {{ formatTime }}</li>
|
<li>经度: {{ info.reservePlan.LON }}</li>
|
||||||
<li>发布文号: {{ infomations.reservePlan.发布文号 }}</li>
|
<li>纬度: {{ info.reservePlan.LAT }}</li>
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -60,10 +75,6 @@ export default {
|
||||||
required: false,
|
required: false,
|
||||||
default: false
|
default: false
|
||||||
},
|
},
|
||||||
infomations: {
|
|
||||||
type: Object,
|
|
||||||
required: true
|
|
||||||
},
|
|
||||||
info: {
|
info: {
|
||||||
type: Object,
|
type: Object,
|
||||||
required: true
|
required: true
|
||||||
|
@ -102,12 +113,12 @@ export default {
|
||||||
},
|
},
|
||||||
showInfomationType: {
|
showInfomationType: {
|
||||||
get: function() {
|
get: function() {
|
||||||
return this.useType === 'dutyInfo' ? this.infomations.dutyInfoData : this.infomations.addressBook
|
return this.useType === 'dutyInfo' ? this.info.dutyInfoData : this.info.addressBook
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
formatTime: {
|
formatTime: {
|
||||||
get: function() {
|
get: function() {
|
||||||
return dayjs(this.infomations.reservePlan.发布日期).format('YYYY-MM-DD')
|
return dayjs(this.info.reservePlan.发布日期).format('YYYY-MM-DD')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
|
@ -2,20 +2,19 @@
|
||||||
<div class="map_assembly_container">
|
<div class="map_assembly_container">
|
||||||
|
|
||||||
<!-- 地图 -->
|
<!-- 地图 -->
|
||||||
<div id="map" />
|
<div id="map"/>
|
||||||
|
|
||||||
<div id="mapAssembly_container" class="body_container">
|
<div id="mapAssembly_container" class="body_container">
|
||||||
<div class="body_flex_box">
|
<div class="body_flex_box">
|
||||||
<!-- 左侧面板 -->
|
<!-- 左侧面板 -->
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<base-table :infomations="infomations" :info="info" use-type="dutyInfo" />
|
<base-table :info="info" use-type="dutyInfo"/>
|
||||||
<base-table :infomations="infomations" use-type="reservePlanInfo" is-reserve-plan />
|
<base-table :info="info" use-type="reservePlanInfo" is-reserve-plan/>
|
||||||
<base-table :infomations="infomations" use-type="addressBook" />
|
<base-table :info="info" use-type="addressBook"/>
|
||||||
</div>
|
</div>
|
||||||
<!-- 右侧面板 -->
|
<!-- 右侧面板 -->
|
||||||
<div class="right">
|
<div class="right">
|
||||||
<!-- <chat /> -->
|
<sysChat :chat-data="chatData" @orderMessage="handlerOrderMessage"/>
|
||||||
<sysChat :chat-data="chatData" @orderMessage="handlerOrderMessage" />
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="top_search">
|
<div class="top_search">
|
||||||
|
@ -35,7 +34,11 @@
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="control_pointer">
|
<div class="control_pointer">
|
||||||
<span v-for="(item, index) in controlPoint" :key="index" style="cursor: pointer;" @click="toggleCheck(item, index)">
|
<span
|
||||||
|
v-for="(item, index) in controlPoint"
|
||||||
|
:key="index"
|
||||||
|
style="cursor: pointer;"
|
||||||
|
@click="toggleCheck(item, index)">
|
||||||
<img :src="!item.check ? item.imgUrl : item.check_img" alt="">
|
<img :src="!item.check ? item.imgUrl : item.check_img" alt="">
|
||||||
<p>{{ item.label }}</p>
|
<p>{{ item.label }}</p>
|
||||||
</span>
|
</span>
|
||||||
|
@ -43,7 +46,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<dialog-index :visible.sync="infoDialog.visible" :value="{ id:infoDialog.id }" title="企业信息" />
|
<dialog-index :visible.sync="infoDialog.visible" :value="{ id:infoDialog.id }" title="企业信息"/>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
|
@ -59,99 +62,12 @@ export default {
|
||||||
components: { baseTable, sysChat, DialogIndex },
|
components: { baseTable, sysChat, DialogIndex },
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
info: {},
|
info: {
|
||||||
infomations: {
|
dutyInfoData: [],
|
||||||
dutyInfoData: [
|
reservePlan: {},
|
||||||
{
|
addressBook: []
|
||||||
job: '值班领导',
|
|
||||||
name: '张三',
|
|
||||||
phone: '12939029382'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
job: '值班员',
|
|
||||||
name: '李四',
|
|
||||||
phone: '14939029382'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
job: '值班司机',
|
|
||||||
name: '玩股份',
|
|
||||||
phone: '10939029382'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
job: '值班领导',
|
|
||||||
name: '张三',
|
|
||||||
phone: '12939029382'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
job: '值班员',
|
|
||||||
name: '李四',
|
|
||||||
phone: '14939029382'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
job: '值班司机',
|
|
||||||
name: '玩股份',
|
|
||||||
phone: '10939029382'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
job: '值班领导',
|
|
||||||
name: '张三',
|
|
||||||
phone: '12939029382'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
job: '值班员',
|
|
||||||
name: '李四',
|
|
||||||
phone: '14939029382'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
job: '值班司机',
|
|
||||||
name: '玩股份',
|
|
||||||
phone: '10939029382'
|
|
||||||
}
|
|
||||||
],
|
|
||||||
reservePlan: {
|
|
||||||
应急预案名称: '项目突发事件处理应急预案',
|
|
||||||
预案编号: '24590823424',
|
|
||||||
适用领域: '医疗行业',
|
|
||||||
预案类别: '自然灾害应急预案',
|
|
||||||
预案级别: '三级预案',
|
|
||||||
编制单位: '秦皇岛卓云科技',
|
|
||||||
编制人: '藏下午',
|
|
||||||
发布日期: '1722576942074',
|
|
||||||
发布文号: '234235423'
|
|
||||||
},
|
|
||||||
addressBook: [
|
|
||||||
{
|
|
||||||
job: '总经理',
|
|
||||||
name: '张三',
|
|
||||||
phone: '12939029382'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
job: '总经理',
|
|
||||||
name: '李四',
|
|
||||||
phone: '14939029382'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
job: '总经理',
|
|
||||||
name: '玩股份',
|
|
||||||
phone: '10939029382'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
job: '总经理',
|
|
||||||
name: '张三',
|
|
||||||
phone: '12939029382'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
job: '总经理',
|
|
||||||
name: '李四',
|
|
||||||
phone: '14939029382'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
job: '总经理',
|
|
||||||
name: '玩股份',
|
|
||||||
phone: '10939029382'
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
},
|
||||||
|
chatData: [],
|
||||||
infoDialog: {
|
infoDialog: {
|
||||||
visible: false,
|
visible: false,
|
||||||
id: ''
|
id: ''
|
||||||
|
@ -159,19 +75,58 @@ export default {
|
||||||
activeIndex: 0,
|
activeIndex: 0,
|
||||||
rangeList: [20, 50, 100, 500, 1000, 5000],
|
rangeList: [20, 50, 100, 500, 1000, 5000],
|
||||||
mapIco: [
|
mapIco: [
|
||||||
{ id: 'e1899a925eb7478653007a9e7d17d588', ico: require('../../../../assets/map/emergency_rescue/point/img1.png') },
|
{
|
||||||
{ id: 'ea3555185c6498b2d3d07023de723806', ico: require('../../../../assets/map/emergency_rescue/point/img2.png') },
|
id: 'e1899a925eb7478653007a9e7d17d588',
|
||||||
{ id: '52ddb251b528987c58c4d84fe0d83952', ico: require('../../../../assets/map/emergency_rescue/point/img3.png') },
|
ico: require('../../../../assets/map/emergency_rescue/point/img1.png')
|
||||||
{ id: '7f3d41464cdf450422ffe385c3aa870e', ico: require('../../../../assets/map/emergency_rescue/point/img4.png') },
|
},
|
||||||
{ id: '2ef8327624adad89b2dbf6b2e03ac6ef', ico: require('../../../../assets/map/emergency_rescue/point/img5.png') },
|
{
|
||||||
{ id: 'e1899a925eb7478653007a9e7d17d588', ico: require('../../../../assets/map/emergency_rescue/point/img6.png') },
|
id: 'ea3555185c6498b2d3d07023de723806',
|
||||||
{ id: '122abe9858feaecae1c80d2d851fcd57', ico: require('../../../../assets/map/emergency_rescue/point/img7.png') },
|
ico: require('../../../../assets/map/emergency_rescue/point/img2.png')
|
||||||
{ id: '637b70684bddcfbee0421db1443a972a', ico: require('../../../../assets/map/emergency_rescue/point/img8.png') },
|
},
|
||||||
{ id: '950700c9cd80c5e1b22a6c6cdf63a61d', ico: require('../../../../assets/map/emergency_rescue/point/img9.png') },
|
{
|
||||||
{ id: '1edb69abc25785c02e2e475162d65b17', ico: require('../../../../assets/map/emergency_rescue/point/img10.png') },
|
id: '52ddb251b528987c58c4d84fe0d83952',
|
||||||
{ id: 'd25f2cae07902e373b72e74757e7a6ea', ico: require('../../../../assets/map/emergency_rescue/point/img11.png') },
|
ico: require('../../../../assets/map/emergency_rescue/point/img3.png')
|
||||||
{ id: 'be31acea122c423a9dbb431cc66a1351', ico: require('../../../../assets/map/emergency_rescue/point/img12.png') },
|
},
|
||||||
{ id: '759d323be34eae4bd83289b36af9ea47', ico: require('../../../../assets/map/emergency_rescue/point/img13.png') }
|
{
|
||||||
|
id: '7f3d41464cdf450422ffe385c3aa870e',
|
||||||
|
ico: require('../../../../assets/map/emergency_rescue/point/img4.png')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '2ef8327624adad89b2dbf6b2e03ac6ef',
|
||||||
|
ico: require('../../../../assets/map/emergency_rescue/point/img5.png')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'e1899a925eb7478653007a9e7d17d588',
|
||||||
|
ico: require('../../../../assets/map/emergency_rescue/point/img6.png')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '122abe9858feaecae1c80d2d851fcd57',
|
||||||
|
ico: require('../../../../assets/map/emergency_rescue/point/img7.png')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '637b70684bddcfbee0421db1443a972a',
|
||||||
|
ico: require('../../../../assets/map/emergency_rescue/point/img8.png')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '950700c9cd80c5e1b22a6c6cdf63a61d',
|
||||||
|
ico: require('../../../../assets/map/emergency_rescue/point/img9.png')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '1edb69abc25785c02e2e475162d65b17',
|
||||||
|
ico: require('../../../../assets/map/emergency_rescue/point/img10.png')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'd25f2cae07902e373b72e74757e7a6ea',
|
||||||
|
ico: require('../../../../assets/map/emergency_rescue/point/img11.png')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'be31acea122c423a9dbb431cc66a1351',
|
||||||
|
ico: require('../../../../assets/map/emergency_rescue/point/img12.png')
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: '759d323be34eae4bd83289b36af9ea47',
|
||||||
|
ico: require('../../../../assets/map/emergency_rescue/point/img13.png')
|
||||||
|
}
|
||||||
],
|
],
|
||||||
controlPoint: [
|
controlPoint: [
|
||||||
{
|
{
|
||||||
|
@ -317,56 +272,8 @@ export default {
|
||||||
// 当前点击后选择的二级坐标点位分类集合
|
// 当前点击后选择的二级坐标点位分类集合
|
||||||
currSubControlPoint: [],
|
currSubControlPoint: [],
|
||||||
subControlPointIndex: 0,
|
subControlPointIndex: 0,
|
||||||
chatData: [
|
webSocket: {},
|
||||||
[
|
REPORT_ID: '1'
|
||||||
{
|
|
||||||
title: '刘大拿0',
|
|
||||||
content: '7月29日晚,清华毕业生马翔宇发出消息称:“感谢大家转发,目前我仍然是安全的。”并披露了部分录音',
|
|
||||||
isRead: true,
|
|
||||||
answers: [
|
|
||||||
{
|
|
||||||
personnal: '王晋升',
|
|
||||||
content: '上班第一天,没有红包怎么开启工作模式?',
|
|
||||||
isReady: false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
personnal: '六大少',
|
|
||||||
content: '新年快乐,龙年大吉',
|
|
||||||
isReady: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
personnal: '王紧生',
|
|
||||||
content: '和张云雷送辅助喝',
|
|
||||||
isReady: false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
[
|
|
||||||
{
|
|
||||||
title: '李彬',
|
|
||||||
content: '7月29日晚,清华毕业生马翔宇发出消息称:“感谢大家转发,目前我仍然是安全的。”并披露了部分录音',
|
|
||||||
isRead: true,
|
|
||||||
answers: [
|
|
||||||
{
|
|
||||||
personnal: '张晓武',
|
|
||||||
content: '上班第一天,没有红包怎么开启工作模式?',
|
|
||||||
isReady: false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
personnal: '里核心',
|
|
||||||
content: '新年快乐,龙年大吉',
|
|
||||||
isReady: true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
personnal: '干呼气',
|
|
||||||
content: '和张云雷送辅助喝',
|
|
||||||
isReady: true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
]
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted() {
|
mounted() {
|
||||||
|
@ -378,7 +285,9 @@ export default {
|
||||||
this.currSubControlPoint = this.subControlPoint['0']
|
this.currSubControlPoint = this.subControlPoint['0']
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
|
this.REPORT_ID = this.$route.query.REPORT_ID
|
||||||
this.initInfo()
|
this.initInfo()
|
||||||
|
this.initWebsocket()
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
/** 地图初始化 */
|
/** 地图初始化 */
|
||||||
|
@ -402,16 +311,6 @@ export default {
|
||||||
const icon = new window.BMapGL.Icon(config.fileUrl + anchor.iconUrl, imageSize, { imageSize })
|
const icon = new window.BMapGL.Icon(config.fileUrl + anchor.iconUrl, imageSize, { imageSize })
|
||||||
const point = new window.BMapGL.Point(anchor.longitude, anchor.latitude)
|
const point = new window.BMapGL.Point(anchor.longitude, anchor.latitude)
|
||||||
const marker = new window.BMapGL.Marker(point, { icon }) // 创建标注
|
const marker = new window.BMapGL.Marker(point, { icon }) // 创建标注
|
||||||
// const anchorOpts = {
|
|
||||||
// width: 90,
|
|
||||||
// height: 70,
|
|
||||||
// title: '资源信息'
|
|
||||||
// }
|
|
||||||
// const infoWindow = new window.BMapGL.InfoWindow(`<p">资源名称: ${anchor.name || '无'}</p>`, anchorOpts)
|
|
||||||
// marker.addEventListener('mouseover', () => {
|
|
||||||
// mapInstance.openInfoWindow(infoWindow, point)
|
|
||||||
// })
|
|
||||||
|
|
||||||
marker.addEventListener('click', async() => {
|
marker.addEventListener('click', async() => {
|
||||||
this.infoDialog.visible = true
|
this.infoDialog.visible = true
|
||||||
})
|
})
|
||||||
|
@ -504,7 +403,8 @@ export default {
|
||||||
requestFN('/major/comprehensive/accidentList')
|
requestFN('/major/comprehensive/accidentList')
|
||||||
.then((data) => {
|
.then((data) => {
|
||||||
resolve(data)
|
resolve(data)
|
||||||
}).catch((e) => { })
|
}).catch((e) => {
|
||||||
|
})
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
// 一级坐标点位点击事件
|
// 一级坐标点位点击事件
|
||||||
|
@ -552,11 +452,36 @@ export default {
|
||||||
}
|
}
|
||||||
).then((data) => {
|
).then((data) => {
|
||||||
console.log(data)
|
console.log(data)
|
||||||
|
if (data.result === 'success') {
|
||||||
|
// 值班列表
|
||||||
|
this.info.dutyInfoData = data.dutyList
|
||||||
|
// 预案信息
|
||||||
|
this.info.reservePlan = data.planInfo
|
||||||
|
this.info.addressBook = data.addressBookList
|
||||||
|
this.chatData = data.instructList
|
||||||
|
console.log(data.instructList)
|
||||||
|
}
|
||||||
loading.close()
|
loading.close()
|
||||||
}).catch((e) => {
|
}).catch((e) => {
|
||||||
console.log(e)
|
console.log(e)
|
||||||
loading.close()
|
loading.close()
|
||||||
})
|
})
|
||||||
|
},
|
||||||
|
initWebsocket() {
|
||||||
|
const wsUrl = config.YjSysUrl + '/yjMessage/' + this.REPORT_ID
|
||||||
|
this.webSocket = new WebSocket(encodeURI(wsUrl))
|
||||||
|
this.webSocket.onopen = () => {
|
||||||
|
console.info('指挥调度的webSocket链接成功')
|
||||||
|
}
|
||||||
|
this.webSocket.onerror = function() {
|
||||||
|
console.info('指挥调度的webSocket连接失败')
|
||||||
|
this.$message.error('消息链接失败!')
|
||||||
|
}
|
||||||
|
var _this = this
|
||||||
|
this.webSocket.onmessage = function(message) {
|
||||||
|
console.log(message)
|
||||||
|
_this.initInfo()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,17 +1,15 @@
|
||||||
<template>
|
<template>
|
||||||
<div class="sys_chat_container">
|
<div class="sys_chat_container">
|
||||||
<div v-for="(item, ind) in chatData" :key="ind">
|
<div v-for="(item, ind) in chatData" :key="ind" class="chat_body">
|
||||||
<div v-for="(itemChild, index) in item" :key="index" class="chat_body">
|
<p class="chat_title">{{ item.info.MESS }}</p>
|
||||||
<p class="chat_title">{{ itemChild.title }}</p>
|
<p v-for="(answer, indx) in item.list" :key="indx" :class="{ 'ready': answer.READ_STATUS === '1'}" class="chat_item">
|
||||||
<p :class="{ 'ready': itemChild.isRead }" class="chat_content">{{ itemChild.content }}</p>
|
<span v-if="answer.IDENT_SIGN === '1'" class="chat_item_head">{{ answer.RECEIVED_MEN_NAME + ' 回复:' }} </span>
|
||||||
|
<span v-if="answer.IDENT_SIGN === '1'" class="chat_item_content">{{ answer.MESS }}</span>
|
||||||
<p v-for="(answer, indx) in itemChild.answers" :key="indx" :class="{ 'ready': answer.isReady}" class="chat_item">
|
<span v-if="answer.IDENT_SIGN === '2'" class="chat_item_head">{{ answer.RECEIVED_MEN_NAME + ' :' }}</span>
|
||||||
<span class="chat_item_head">{{ answer.personnal }}回复: </span>
|
<span v-if="answer.READ_STATUS === '1'" class="chat_ready">已读</span>
|
||||||
<span class="chat_item_content">{{ answer.content }}</span>
|
<span v-if="answer.READ_STATUS === '0'" class="chat_ready">未读</span>
|
||||||
<span v-if="answer.isReady" class="chat_ready">已读</span>
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<div class="order">
|
<div class="order">
|
||||||
<button @click="sendOrderBtn">发送指令</button>
|
<button @click="sendOrderBtn">发送指令</button>
|
||||||
</div>
|
</div>
|
||||||
|
@ -51,9 +49,11 @@ export default {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
overflow-x: hidden;
|
overflow-x: hidden;
|
||||||
overflow-y: auto;
|
overflow-y: auto;
|
||||||
|
|
||||||
&::-webkit-scrollbar {
|
&::-webkit-scrollbar {
|
||||||
display: none;
|
display: none;
|
||||||
}
|
}
|
||||||
|
|
||||||
color: #ffffff;
|
color: #ffffff;
|
||||||
font-size: 15px;
|
font-size: 15px;
|
||||||
position: relative;
|
position: relative;
|
||||||
|
@ -156,7 +156,8 @@ export default {
|
||||||
border: none;
|
border: none;
|
||||||
background-color: #5f78ff47;
|
background-color: #5f78ff47;
|
||||||
color: #fff;
|
color: #fff;
|
||||||
font-weight: 600;backdrop-filter: blur(16px);
|
font-weight: 600;
|
||||||
|
backdrop-filter: blur(16px);
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
background-color: #5f77ff75;
|
background-color: #5f77ff75;
|
||||||
|
|
|
@ -766,7 +766,12 @@ export default {
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
sendSMS(planId, responseId, registrationId) {
|
sendSMS(planId, responseId, registrationId) {
|
||||||
return requestFN('/major/registration/sendSMS', { planId, responseId, registrationId })
|
requestFN('/major/registration/sendSMS', { planId, responseId, registrationId })
|
||||||
|
.then((data) => {
|
||||||
|
this.$router.push({ path: '/emergen_cyrescue/incident_management', query: { a: '' }})
|
||||||
|
}).catch((e) => {
|
||||||
|
console.error('获取树形数据失败', e)
|
||||||
|
})
|
||||||
},
|
},
|
||||||
handleRegionChange(value) {
|
handleRegionChange(value) {
|
||||||
const selectedRegion = this.regionData.find(region => region.DICTIONARIES_ID === value)
|
const selectedRegion = this.regionData.find(region => region.DICTIONARIES_ID === value)
|
||||||
|
|
|
@ -14,15 +14,16 @@
|
||||||
<el-table ref="multipleTable" :data="varList" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row>
|
<el-table ref="multipleTable" :data="varList" :header-cell-style="{'font-weight': 'bold','color': '#000'}" tooltip-effect="dark" border fit highlight-current-row>
|
||||||
<el-table-column type="selection" width="55" align="center" />
|
<el-table-column type="selection" width="55" align="center" />
|
||||||
<el-table-column type="index" label="序号" width="50" align="center" />
|
<el-table-column type="index" label="序号" width="50" align="center" />
|
||||||
<el-table-column prop="EVENT_NAME" label="事件标题" width="180" />
|
<el-table-column v-if="false" prop="EVENT_NAME" label="事件标题" width="180" />
|
||||||
<el-table-column prop="INCOMING_PHONE" label="接入电话" show-overflow-tooltip="true" />
|
<el-table-column prop="INCOMING_PHONE" label="接入电话" show-overflow-tooltip="true" />
|
||||||
<el-table-column prop="OWNER_NAME" label="机主姓名" show-overflow-tooltip="true" />
|
<el-table-column prop="OWNER_NAME" label="机主姓名" show-overflow-tooltip="true" />
|
||||||
<el-table-column prop="ACCESS_MODE" label="接入方式" show-overflow-tooltip="true" />
|
<el-table-column prop="ACCESS_MODE" label="接入方式" show-overflow-tooltip="true" />
|
||||||
<el-table-column prop="EVENT_TYPE" label="事件类型" show-overflow-tooltip="true" />
|
<el-table-column prop="EVENT_TYPE" label="事件类型" show-overflow-tooltip="true" />
|
||||||
<el-table-column prop="CALLER_ADDRESS" label="主叫地址" show-overflow-tooltip="true" />
|
<el-table-column v-if="false" prop="CALLER_ADDRESS" label="主叫地址" show-overflow-tooltip="true" />
|
||||||
<el-table-column label="操作" align="center" width="300">
|
<el-table-column label="操作" align="center" width="300">
|
||||||
<template slot-scope="{ row }">
|
<template slot-scope="{ row }">
|
||||||
<el-button type="primary" icon="el-icon-document" size="mini" @click="goList('detail', row.ID, '1')">查看</el-button>
|
<el-button type="primary" icon="el-icon-document" size="mini" @click="goList('detail', row.ID, '1')">查看</el-button>
|
||||||
|
<el-button v-if="row.RESCUE_SITUATION === '1'" type="primary" icon="el-icon-document" size="mini" @click="command('detail', row.ID, '1')">指挥</el-button>
|
||||||
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDelete(row.ID, row.NAME)">删除</el-button>
|
<el-button type="danger" icon="el-icon-delete" size="mini" @click="handleDelete(row.ID, row.NAME)">删除</el-button>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
@ -67,6 +68,7 @@ export default {
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
this.getList()
|
this.getList()
|
||||||
|
console.log(this.$route.query)
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
getQuery() {
|
getQuery() {
|
||||||
|
@ -82,6 +84,9 @@ export default {
|
||||||
this.$parent.CASE_ID = CASE_ID
|
this.$parent.CASE_ID = CASE_ID
|
||||||
this.$parent.ticketType = ticketType
|
this.$parent.ticketType = ticketType
|
||||||
},
|
},
|
||||||
|
command(row) {
|
||||||
|
this.$router.push({ path: '/emergen_cyrescue/emergency_map', query: { REPORT_ID: row.ID }})
|
||||||
|
},
|
||||||
getDetail(id) {
|
getDetail(id) {
|
||||||
const params = { Id: id }
|
const params = { Id: id }
|
||||||
requestFN('/major/dutylog/detail', params).then((response) => {
|
requestFN('/major/dutylog/detail', params).then((response) => {
|
||||||
|
|
Loading…
Reference in New Issue