Compare commits

..

No commits in common. "0645598eb3305fdf97d103360d6b1c4203f6bae8" and "ca538842ddd812e96ebb026c93d88bd1a955177c" have entirely different histories.

2 changed files with 169 additions and 179 deletions

View File

@ -11,11 +11,11 @@
<script setup lang="ts"> <script setup lang="ts">
import fullScreenContainer from '@/components/fullScreenContainer.vue' import fullScreenContainer from '@/components/fullScreenContainer.vue'
import zhCN from 'ant-design-vue/es/locale/zh_CN' import zhCN from 'ant-design-vue/es/locale/zh_CN'
import {useLoadingStore} from '@/stores/modules/loadingStore' import { useLoadingStore } from '@/stores/modules/loadingStore'
import {storeToRefs} from 'pinia' import { storeToRefs } from 'pinia'
const loadingStore = useLoadingStore() const loadingStore = useLoadingStore()
const {loading, loadingMessage} = storeToRefs(loadingStore) const { loading, loadingMessage } = storeToRefs(loadingStore)
</script> </script>
<style lang="scss"> <style lang="scss">
@ -126,8 +126,6 @@ body {
bottom: 0; bottom: 0;
width: 40px; width: 40px;
height: 40px; height: 40px;
// width: 50px;
// height: 50px;
} }
.markerClass > div { .markerClass > div {

View File

@ -137,7 +137,7 @@
</div> </div>
<ul class="dataList" v-show="isActive1 == '1'"> <ul class="dataList" v-show="isActive1 == '1'">
<div v-if="jinbao.length > 0"> <div v-if="jinbao.length > 0">
<li style="cursor: pointer" v-for="(item, index) in jinbao" :key="index" @click="toinfo(item, index)"> <li v-for="(item, index) in jinbao" :key="index" @click="toinfo(item, index)">
<p> <p>
<el-icon> <LocationFilled /> </el-icon>{{ item.address }} <el-icon> <LocationFilled /> </el-icon>{{ item.address }}
</p> </p>
@ -156,7 +156,7 @@
</ul> </ul>
<ul class="dataList" v-show="isActive1 == '2'"> <ul class="dataList" v-show="isActive1 == '2'">
<div v-if="jinqing.length > 0"> <div v-if="jinqing.length > 0">
<li style="cursor: pointer" v-for="(item, index) in jinqing" :key="index" @click="toinfo(item, index)"> <li v-for="(item, index) in jinqing" :key="index" @click="toinfo(item, index)">
<p> <p>
<el-icon> <LocationFilled /> </el-icon>{{ item.address }} <el-icon> <LocationFilled /> </el-icon>{{ item.address }}
</p> </p>
@ -175,7 +175,7 @@
</ul> </ul>
<ul class="dataList" v-show="isActive1 == '3'"> <ul class="dataList" v-show="isActive1 == '3'">
<div v-if="AIyujing.length > 0"> <div v-if="AIyujing.length > 0">
<li style="cursor: pointer" v-for="(item, index) in AIyujing" :key="index" @click="toinfo(item, index)"> <li v-for="(item, index) in AIyujing" :key="index" @click="toinfo(item, index)">
<p> <p>
<el-icon> <LocationFilled /> </el-icon>{{ item.address }} <el-icon> <LocationFilled /> </el-icon>{{ item.address }}
</p> </p>
@ -195,9 +195,8 @@
</div> </div>
</div> </div>
</a-layout-sider> </a-layout-sider>
<!-- 固定弹窗 --> <!-- 浮窗模块 -->
<div v-show="dialogTableVisible" class="dialogTableVisibleClass"> <div v-show="dialogTableVisible" class="dialogTableVisibleClass">
<!-- 浮窗模块 -->
<el-popover :visible="visible" :show-arrow="false" placement="left" :width="400" :popper-style="{background: '#06325F', border: '1px solid #60626654'}"> <el-popover :visible="visible" :show-arrow="false" placement="left" :width="400" :popper-style="{background: '#06325F', border: '1px solid #60626654'}">
<template #reference> <template #reference>
<el-icon @click="clickKz(infoData)" style="top: -6px" size="16px" color="#409EFC"> <el-icon @click="clickKz(infoData)" style="top: -6px" size="16px" color="#409EFC">
@ -242,8 +241,7 @@
</ul> </ul>
</div> </div>
</el-popover> </el-popover>
<!-- 关闭固定弹窗按钮 --> <el-icon @click="closee" style="position: absolute; left: 327px; top: 4px" size="23">
<el-icon color="#fff" @click="closee" style="position: absolute; left: 327px; top: 4px" size="23">
<close-bold /> <close-bold />
</el-icon> </el-icon>
@ -411,9 +409,7 @@ const filter: ShowSearchType['filter'] = (inputValue, path) => {
return path.some((option) => option.title.toLowerCase().indexOf(inputValue.toLowerCase()) > -1) return path.some((option) => option.title.toLowerCase().indexOf(inputValue.toLowerCase()) > -1)
} }
const cascaderChange = (value: any, selectedOptions: any): void => { const cascaderChange = (value: any, selectedOptions: any): void => {
let title = selectedOptions.slice(-1)[0]?.title
expandedKeys.value = value expandedKeys.value = value
scrollToMatchedNode(title)
} }
interface anyType { interface anyType {
[key: string]: any [key: string]: any
@ -425,8 +421,6 @@ const day = proxy.day
const expandedKeys = ref([]) const expandedKeys = ref([])
const selectedKeys = ref([]) const selectedKeys = ref([])
const checkedKeys = ref([]) const checkedKeys = ref([])
// const dialogTableVisible = ref(true)
// const visible = ref(true)
const dialogTableVisible = ref(false) const dialogTableVisible = ref(false)
const visible = ref(false) const visible = ref(false)
const router = useRouter() const router = useRouter()
@ -854,13 +848,11 @@ const getdayline = () => {
// marker // marker
marker.addTo(state.map) marker.addTo(state.map)
} else { } else {
// <img style="width:30px;height:60px;left:9px;top:7px" src="${no}">
// <img style="width:35px;height:35px;left:9px;top:7px" src="${no}">
const marker = L.marker([lat, lng], { const marker = L.marker([lat, lng], {
icon: L.divIcon({ icon: L.divIcon({
className: 'indexMarkerImg', className: 'indexMarkerImg',
html: `<div class="indexMarkerImg"> html: `<div class="indexMarkerImg">
<img style="width:30px;height:60px;left:9px;top:7px" src="${no}">
<div class="markerClass"> <div class="markerClass">
<div></div> <div></div>
<div></div> <div></div>
@ -971,121 +963,7 @@ const selectA = (selectedKeys: any, e: any) => {
console.log('🚀 ~ selectA ~ error:', error) console.log('🚀 ~ selectA ~ error:', error)
} }
} }
const getSubstanceInfoWindowContent = (obj: any, type: any) => {
// console.log('obj', obj, type)
if (type == '1' || type == '3') {
return `
<p>
<span>设备号</span>
<span>${obj['alarmSource'] == undefined || null ? '--' : obj['alarmSource']}</span>
<span>名称</span>
<span>${obj['alarmTarget'] == undefined || null ? '--' : obj['alarmTarget']}</span>
</p>
<p>
<span>联系人</span>
<span>${obj['user1Name'] == undefined || null ? '--' : obj['user1Name']}</span>
<span>电话</span>
<span>${obj['user1Phone'] == undefined || null ? '--' : obj['user1Phone']}</span>
</p>
<p>
<span>地址:</span>
<span>${obj['address'] == undefined || null ? '--' : obj['address']}</span>
</p>
<p>
<span>时间:</span>
<span>${obj['timestamp'] == undefined || null ? '--' : obj['timestamp']}</span>
</p>
<p>
<button onclick='cz2(${JSON.stringify(obj)},${JSON.stringify(upstatuslist)})' style="color='#fff'" type="button">处置</button>
</p>
`
} else {
return `
<div style="display:flex">
<div style="width:50%;">
<span>第一联系人</span>
<span>${obj['userName'] == undefined || obj['userName'] == null || obj['userName'] == ' ' ? '--' : obj['userName']}</span>
</div>
<div style="width:50%;">
<span>电话</span>
<span>${obj['userPhone'] == undefined || obj['userPhone'] == null || obj['userPhone'] == ' ' ? '--' : obj['userPhone']}</span>
</div>
</div>
<div style="display:flex;margin-top:10px">
<div style="width:50%;">
<span>第二联系人</span>
<span>${obj['user2Name'] == undefined || obj['user2Name'] == null || obj['user2Name'] == ' ' ? '--' : obj['user2Name']}</span>
</div>
<div style="width:50%;">
<span>电话</span>
<span>${obj['user2Phone'] == undefined || obj['user2Phone'] == null || obj['user2Phone'] == ' ' ? '--' : obj['user2Phone']}</span>
</div>
</div>
<div style="display:flex;margin-top:10px">
<div style="width:50%;">
<span>第三联系人</span>
<span>${obj['user3Name'] == undefined || obj['user3Name'] == null || obj['user3Name'] == ' ' ? '--' : obj['user3Name']}</span>
</div>
<div style="width:50%;">
<span>电话</span>
<span>${obj['user3Phone'] == undefined || obj['user3Phone'] == null || obj['user3Phone'] == ' ' ? '--' : obj['user3Phone']}</span>
</div>
</div>
<div style="display:flex;margin-top:10px">
<div style="width:50%;">
<span>区域码:</span>
<span>${obj['subCode'] == undefined || obj['subCode'] == null || obj['subCode'] == ' ' ? '--' : obj['subCode']}</span>
</div>
</div>
`
}
}
const getSubstanceInfoWindowContent2 = (obj: any, type: any) => {
console.log('🚀 ~ getSubstanceInfoWindowContent2 ~ obj, type:', obj, type)
if (obj.deviceType == '04' || obj.deviceType == '00') {
return `
<p>
<span>归属单位</span>
<span>${obj['dwmc'] == undefined || null ? '--' : obj['dwmc']}</span>
<span>名称</span>
<span>${obj['title'] == undefined || null ? '--' : obj['title']}</span>
</p>
<p>
<span>联系人</span>
<span>${obj['user2Name'] == undefined || null ? '--' : obj['user2Name']}</span>
<span>电话</span>
<span>${obj['user2Phone'] == undefined || null ? '--' : obj['user2Phone']}</span>
</p>
<p>
<span>地址:</span>
<span>${obj['pointAddress'] == undefined || null ? '--' : obj['pointAddress']}</span>
</p>
<p>
<button onclick='addrt(${JSON.stringify(obj)})' style="color='#fff'" type="button">播放视频</button>
</p>
`
} else {
return `
<p>
<span>归属单位</span>
<span>${obj['dwmc'] == undefined || null ? '--' : obj['dwmc']}</span>
<span>名称</span>
<span>${obj['title'] == undefined || null ? '--' : obj['title']}</span>
</p>
<p>
<span>联系人</span>
<span>${obj['user2Name'] == undefined || null ? '--' : obj['user2Name']}</span>
<span>电话</span>
<span>${obj['user2Phone'] == undefined || null ? '--' : obj['user2Phone']}</span>
</p>
<p>
<span>地址:</span>
<span>${obj['pointAddress'] == undefined || null ? '--' : obj['pointAddress']}</span>
</p>
`
}
}
const createSubstanceInfowindow = (obj: any, type: any) => { const createSubstanceInfowindow = (obj: any, type: any) => {
// //
var mdinfoTop = document.createElement('div') var mdinfoTop = document.createElement('div')
@ -1198,6 +1076,52 @@ const createSubstanceInfowindow2 = (obj: any, type: any) => {
return mdinfoTop return mdinfoTop
} }
const getSubstanceInfoWindowContent2 = (obj: any, type: any) => {
console.log('🚀 ~ getSubstanceInfoWindowContent2 ~ obj, type:', obj, type)
if (obj.deviceType == '04' || obj.deviceType == '00') {
return `
<p>
<span>归属单位</span>
<span>${obj['dwmc'] == undefined || null ? '--' : obj['dwmc']}</span>
<span>名称</span>
<span>${obj['title'] == undefined || null ? '--' : obj['title']}</span>
</p>
<p>
<span>联系人</span>
<span>${obj['user2Name'] == undefined || null ? '--' : obj['user2Name']}</span>
<span>电话</span>
<span>${obj['user2Phone'] == undefined || null ? '--' : obj['user2Phone']}</span>
</p>
<p>
<span>地址:</span>
<span>${obj['pointAddress'] == undefined || null ? '--' : obj['pointAddress']}</span>
</p>
<p>
<button onclick='addrt(${JSON.stringify(obj)})' style="color='#fff'" type="button">播放视频</button>
</p>
`
} else {
return `
<p>
<span>归属单位</span>
<span>${obj['dwmc'] == undefined || null ? '--' : obj['dwmc']}</span>
<span>名称</span>
<span>${obj['title'] == undefined || null ? '--' : obj['title']}</span>
</p>
<p>
<span>联系人</span>
<span>${obj['user2Name'] == undefined || null ? '--' : obj['user2Name']}</span>
<span>电话</span>
<span>${obj['user2Phone'] == undefined || null ? '--' : obj['user2Phone']}</span>
</p>
<p>
<span>地址:</span>
<span>${obj['pointAddress'] == undefined || null ? '--' : obj['pointAddress']}</span>
</p>
`
}
}
;(window as any).addrt = (a: any) => { ;(window as any).addrt = (a: any) => {
console.log('播放_______________', a) console.log('播放_______________', a)
if (a.deviceType == '00') { if (a.deviceType == '00') {
@ -1262,6 +1186,77 @@ const createSubstanceInfowindow2 = (obj: any, type: any) => {
} }
} }
const getSubstanceInfoWindowContent = (obj: any, type: any) => {
// console.log('obj', obj, type)
if (type == '1' || type == '3') {
return `
<p>
<span>设备号</span>
<span>${obj['alarmSource'] == undefined || null ? '--' : obj['alarmSource']}</span>
<span>名称</span>
<span>${obj['alarmTarget'] == undefined || null ? '--' : obj['alarmTarget']}</span>
</p>
<p>
<span>联系人</span>
<span>${obj['user1Name'] == undefined || null ? '--' : obj['user1Name']}</span>
<span>电话</span>
<span>${obj['user1Phone'] == undefined || null ? '--' : obj['user1Phone']}</span>
</p>
<p>
<span>地址:</span>
<span>${obj['address'] == undefined || null ? '--' : obj['address']}</span>
</p>
<p>
<span>时间:</span>
<span>${obj['timestamp'] == undefined || null ? '--' : obj['timestamp']}</span>
</p>
<p>
<button onclick='cz2(${JSON.stringify(obj)},${JSON.stringify(upstatuslist)})' style="color='#fff'" type="button">处置</button>
</p>
`
} else {
return `
<div style="display:flex">
<div style="width:50%;">
<span>第一联系人</span>
<span>${obj['userName'] == undefined || obj['userName'] == null || obj['userName'] == ' ' ? '--' : obj['userName']}</span>
</div>
<div style="width:50%;">
<span>电话</span>
<span>${obj['userPhone'] == undefined || obj['userPhone'] == null || obj['userPhone'] == ' ' ? '--' : obj['userPhone']}</span>
</div>
</div>
<div style="display:flex;margin-top:10px">
<div style="width:50%;">
<span>第二联系人</span>
<span>${obj['user2Name'] == undefined || obj['user2Name'] == null || obj['user2Name'] == ' ' ? '--' : obj['user2Name']}</span>
</div>
<div style="width:50%;">
<span>电话</span>
<span>${obj['user2Phone'] == undefined || obj['user2Phone'] == null || obj['user2Phone'] == ' ' ? '--' : obj['user2Phone']}</span>
</div>
</div>
<div style="display:flex;margin-top:10px">
<div style="width:50%;">
<span>第三联系人</span>
<span>${obj['user3Name'] == undefined || obj['user3Name'] == null || obj['user3Name'] == ' ' ? '--' : obj['user3Name']}</span>
</div>
<div style="width:50%;">
<span>电话</span>
<span>${obj['user3Phone'] == undefined || obj['user3Phone'] == null || obj['user3Phone'] == ' ' ? '--' : obj['user3Phone']}</span>
</div>
</div>
<div style="display:flex;margin-top:10px">
<div style="width:50%;">
<span>区域码:</span>
<span>${obj['subCode'] == undefined || obj['subCode'] == null || obj['subCode'] == ' ' ? '--' : obj['subCode']}</span>
</div>
</div>
`
}
}
// //
const listData = ref([]) const listData = ref([])
const getRealTimeAlarmSituation = () => { const getRealTimeAlarmSituation = () => {
@ -1286,7 +1281,7 @@ const getRealTimeAlarmSituation = () => {
icon: L.divIcon({ icon: L.divIcon({
className: 'indexMarkerImg', className: 'indexMarkerImg',
html: `<div class="indexMarkerImg"> html: `<div class="indexMarkerImg">
<img style="width:35px;height:35px;left:9px;top:7px" src="${image4}"> <img style="width:30px;height:60px;left:9px;top:7px" src="${image4}">
<div class="markerClass"> <div class="markerClass">
<div></div> <div></div>
<div></div> <div></div>
@ -1325,51 +1320,48 @@ const toinfo = (item: any, index: number) => {
listindex.value = index listindex.value = index
// dialogTableVisible.value = false; // dialogTableVisible.value = false;
nextTick(() => { nextTick(() => {
try { infoData.value = item
infoData.value = item if (item.state == 'new') {
if (item.state == 'new') { ///firectrl/client/sensor/alarm_event/changestate
///firectrl/client/sensor/alarm_event/changestate api
api .post('/multialarm/client/alarm_event/changestate', {
.post('/multialarm/client/alarm_event/changestate', { eventId: item.multiAlarmId,
eventId: item.multiAlarmId, newState: 'processing',
newState: 'processing', device: 'web',
device: 'web', devictype: 'platform',
devictype: 'platform', operator: localStorage.getItem('loginname'),
operator: localStorage.getItem('loginname'), operatortype: '指挥中心'
operatortype: '指挥中心' })
}) .then((res) => {
.then((res) => { getRealTimeAlarmSituation() //
getRealTimeAlarmSituation() // api
api .post('/multialarm/client/alarm_event/getlog', {
.post('/multialarm/client/alarm_event/getlog', { eventId: item.multiAlarmId
eventId: item.multiAlarmId })
}) .then((res) => {
.then((res) => { if (res.code == 0) {
if (res.code == 0) { upstatuslist.value = res.data as any[]
upstatuslist.value = res.data as any[] }
} })
}) })
}) } else {
} else { api
api .post('/multialarm/client/alarm_event/getlog', {
.post('/multialarm/client/alarm_event/getlog', { eventId: item.multiAlarmId
eventId: item.multiAlarmId })
}) .then((res) => {
.then((res) => { // console.log('PPres1', res)
// console.log('PPres1', res) if (res.code == 0) {
if (res.code == 0) { upstatuslist.value = res.data as any[]
upstatuslist.value = res.data as any[] }
} })
})
}
//marke
let targetLatLngt = [item.latitude, item.longitude]
state.map.setView(targetLatLngt, 15)
dialogTableVisible.value = true
} catch (error) {
console.log('🚀 ~ toinfo ~ error:', error)
} }
//marke
let targetLangLat = [item.longitude, item.latitude]
state.map.panTo(targetLangLat)
state.map.setZoomAndCenter(15, targetLangLat)
dialogTableVisible.value = true
}) })
} }
// //
@ -2024,7 +2016,7 @@ iframe {
top: 115px; top: 115px;
right: 448px; right: 448px;
background: rgb(21, 42, 95); background: rgb(21, 42, 95);
z-index: 999; z-index: 99;
width: 349px; width: 349px;
padding: 10px; padding: 10px;
border-radius: 5px; border-radius: 5px;