@ -1,7 +1,6 @@
< template >
< template >
< div class = "homeBox" style = "background-color: #07274d;" >
< div class = "homeBox" style = "background-color: #07274d;" >
<!-- 头部 -- >
<!-- 头部 -- >
< Head > < / Head >
< Head > < / Head >
<!-- 左边 -- >
<!-- 左边 -- >
< div class = "home-aside asideL" >
< div class = "home-aside asideL" >
@ -59,15 +58,13 @@
< / div >
< / div >
<!-- 中间 -- >
<!-- 中间 -- >
< div class = "home-center" >
< div class = "home-center" >
< div class = "middle-top" >
< div class = "middle-top" > < Yszs / > < / div >
< Yszs / >
< / div >
< div class = "flex middle-bottom mt10" >
< div class = "flex middle-bottom mt10" >
< div style = "width: 30px;position: absolute;z-index: 100;left: 0;background-color: #07274d;height: 30px;text-align: center;line-height:30px;" >
< div style = "width: 30px;position: absolute;z-index: 100;left: 0;background-color: #07274d;height: 30px;text-align: center;line-height:30px;" >
< el-icon :size = "20" v-if = "ispLayBack" @click="closeLayBack" >
< el-icon :size = "20" v-if = "ispLayBack" @click="closeLayBack" >
< Bell / >
< Bell / >
< / el-icon >
< / el-icon >
< el-icon :size = "20" v-else @click ="open LayBack" >
< el-icon :size = "20" v-else @click ="isp LayBack=true " >
< MuteNotification / >
< MuteNotification / >
< / el-icon >
< / el-icon >
< / div >
< / div >
@ -124,7 +121,6 @@
< Bkcz > < / Bkcz >
< Bkcz > < / Bkcz >
< / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< TestDiv / >
< TestDiv / >
<!-- 左边弹窗 -- >
<!-- 左边弹窗 -- >
@ -160,7 +156,7 @@ import WarningDistrict from './model/WarningDistrict.vue'
import WarningPoints from './model/warningPoints.vue'
import WarningPoints from './model/warningPoints.vue'
import { getItem , setItem } from "@/utils/storage" ;
import { getItem , setItem } from "@/utils/storage" ;
import emitter from "@/utils/eventBus.js" ;
import emitter from "@/utils/eventBus.js" ;
import { bm , centralPoint } from '@/views/backOfficeSystem/IntelligentControl/DeploymentArea/xzqh.js'
import { bm } from '@/views/backOfficeSystem/IntelligentControl/DeploymentArea/xzqh.js'
import Judgment from './model/judgment.vue'
import Judgment from './model/judgment.vue'
import { tbYjxxGetList } from '@/api/zdr.js'
import { tbYjxxGetList } from '@/api/zdr.js'
import GeneralWindow from './model/generalWindow.vue'
import GeneralWindow from './model/generalWindow.vue'
@ -171,12 +167,21 @@ import MyCase from './model/myCase.vue'
import audioPlayer from '@/utils/audioPlayer'
import audioPlayer from '@/utils/audioPlayer'
import TestDiv from "@/components/common/TestDiv.vue" ;
import TestDiv from "@/components/common/TestDiv.vue" ;
const { proxy } = getCurrentInstance ( ) ;
const { proxy } = getCurrentInstance ( ) ;
const { D _BZ _JQDJ } = proxy . $dict ( 'D_BZ_JQDJ' )
const modelWarning = ref ( true )
const modelWarning = ref ( true )
const modelQbsb = ref ( true )
const modelQbsb = ref ( true )
const searchText = ref ( '' )
const searchText = ref ( '' )
const peoDialogRef = ref ( )
const peoDialogRef = ref ( )
const showSeatch = ref ( false )
const showSeatch = ref ( false )
const ispLayBack = ref ( true ) //播放音频
const indexNum = ref ( 0 ) //当前展示的气泡框
const showNotification = ref ( false ) //是否自动展开提示
const allDep = ref ( [ ] ) //所有部门
const bnTimer = ref ( null )
const popupTimer = ref ( null )
const timing = ref ( true )
const reversalPushShow = ref ( true ) // 情报翻转
const reversalShow = ref ( true ) // 论坛翻转
const changeXzqh = ( val , trg ) => {
const changeXzqh = ( val , trg ) => {
setTimeout ( ( ) => {
setTimeout ( ( ) => {
// 先移除已有的边界
// 先移除已有的边界
@ -264,10 +269,6 @@ const getDepId = () => {
}
}
}
}
const indexNum = ref ( 0 ) //当前展示的气泡框
const showNotification = ref ( false ) //是否自动展开提示
const allDep = ref ( [ ] ) //所有部门
const handleOpenNotification = ( ) => {
const handleOpenNotification = ( ) => {
clearInterval ( popupTimer . value )
clearInterval ( popupTimer . value )
showNotification . value = ! showNotification . value ;
showNotification . value = ! showNotification . value ;
@ -282,6 +283,7 @@ const handleOpenNotification = () => {
startPopupLoop ( )
startPopupLoop ( )
}
}
}
}
const makerCenter = ( ) => {
const makerCenter = ( ) => {
const dw = require ( "@/assets/point/dingwei.png" )
const dw = require ( "@/assets/point/dingwei.png" )
qcckGet ( { } , '/mosty-gsxt/lzJcjPjdb/selectCountNew' ) . then ( res => {
qcckGet ( { } , '/mosty-gsxt/lzJcjPjdb/selectCountNew' ) . then ( res => {
@ -291,20 +293,12 @@ const makerCenter = () => {
} )
} )
}
}
//播放音频
const ispLayBack = ref ( true )
// 打开播放
const openLayBack = ( ) => {
ispLayBack . value = true
}
// 关闭播放
// 关闭播放
const closeLayBack = ( ) => {
const closeLayBack = ( ) => {
ispLayBack . value = false
ispLayBack . value = false
audioPlayer . pause ( )
audioPlayer . pause ( )
}
}
// 初始化音频播放器
// 初始化音频播放器
const initAudioPlayer = ( ) => {
const initAudioPlayer = ( ) => {
// 使用工具类初始化音频播放器
// 使用工具类初始化音频播放器
@ -320,8 +314,6 @@ const initAudioPlayer = () => {
console . error ( '初始化音频播放器失败:' , error ) ;
console . error ( '初始化音频播放器失败:' , error ) ;
} )
} )
}
}
const bnTimer = ref ( null )
const popupTimer = ref ( null )
const startPopupLoop = ( ) => {
const startPopupLoop = ( ) => {
clearInterval ( popupTimer . value )
clearInterval ( popupTimer . value )
@ -333,6 +325,62 @@ const startPopupLoop = () => {
}
}
} , 10000 )
} , 10000 )
}
}
// 搜索
const handleSearch = ( ) => {
if ( ! searchText . value ) return proxy . $message . warning ( '请输入身份证号' ) ;
qcckPost ( { rysfzh : searchText . value } , '/mosty-gsxt/tbYjxx/getPageAllList' ) . then ( res => {
peoDialogRef . value . init ( res . records || [ ] )
} )
}
// 布控预警上图
const getTbYjxxGetList = ( ) => {
// 设置为当天时间范围: 00:00:00 到 23:59:59
const today = new Date ( ) ;
const startTime = new Date ( today . getFullYear ( ) , today . getMonth ( ) , today . getDate ( ) , 0 , 0 , 0 ) . getTime ( ) ;
const endTime = new Date ( today . getFullYear ( ) , today . getMonth ( ) , today . getDate ( ) , 23 , 59 , 59 ) . getTime ( ) ;
const promes = { startTime : timeValidate ( startTime ) , endTime : timeValidate ( endTime ) , }
tbYjxxGetList ( promes ) . then ( res => {
const coords = res . map ( item => {
return { id : item . id , jd : item . jd , wd : item . wd , yjtp : item . yjTp , yjnr : item . yjNr , yjLx : item . yjlx , yjlx : '01' , yjsj : item . yjSj , rysfzh : item . yjRysfzh , ryxm : item . yjRyxm }
} )
const icon = require ( "@/assets/point/yj.png" )
emitter . emit ( 'addPoint' , { coords : coords , icon : icon , flag : 'yj' , fontColor : '#FF0000' } )
} )
}
const reversalPush = ( ) => {
reversalPushShow . value = ! reversalPushShow . value
// 移除clearInterval调用, 避免定时器被清除
}
const reversal = ( ) => {
reversalShow . value = ! reversalShow . value
// 移除clearInterval调用, 避免定时器被清除
}
// 鼠标移入
const mouseEnter = ( ) => {
clearInterval ( timing . value )
}
// 鼠标移出
const mouseLeave = ( ) => {
// 清除可能存在的旧定时器,避免多个定时器同时运行
clearInterval ( timing . value )
// 设置为5秒自动切换, 更容易测试效果
timing . value = setInterval ( ( ) => {
reversalPush ( )
reversal ( )
changeModel ( )
} , 30000 )
}
function changeModel ( ) {
modelWarning . value = ! modelWarning . value
}
// 组件挂载时初始化音频播放器
// 组件挂载时初始化音频播放器
onMounted ( ( ) => {
onMounted ( ( ) => {
getDepId ( )
getDepId ( )
@ -378,96 +426,17 @@ onMounted(() => {
} )
} )
} )
} )
// 搜索
const handleSearch = ( ) => {
if ( ! searchText . value ) {
proxy . $message . warning ( '请输入身份证号' )
} else {
qcckPost ( { rysfzh : searchText . value } , '/mosty-gsxt/tbYjxx/getPageAllList' ) . then ( res => {
peoDialogRef . value . init ( res . records || [ ] )
} )
}
}
// 布控预警上图
const getTbYjxxGetList = ( ) => {
// 设置为当天时间范围: 00:00:00 到 23:59:59
const today = new Date ( ) ;
const startTime = new Date ( today . getFullYear ( ) , today . getMonth ( ) , today . getDate ( ) , 0 , 0 , 0 ) . getTime ( ) ;
const endTime = new Date ( today . getFullYear ( ) , today . getMonth ( ) , today . getDate ( ) , 23 , 59 , 59 ) . getTime ( ) ;
const promes = {
startTime : timeValidate ( startTime ) ,
endTime : timeValidate ( endTime ) ,
}
tbYjxxGetList ( promes ) . then ( res => {
const coords = res . map ( item => {
return {
id : item . id ,
jd : item . jd ,
wd : item . wd ,
yjtp : item . yjTp ,
yjnr : item . yjNr ,
yjLx : item . yjlx ,
yjlx : '01' ,
yjsj : item . yjSj ,
rysfzh : item . yjRysfzh ,
ryxm : item . yjRyxm ,
}
} )
const icon = require ( "@/assets/point/yj.png" )
emitter . emit ( 'addPoint' , { coords : coords , icon : icon , flag : 'yj' , fontColor : '#FF0000' } )
} )
}
let timing = ref ( true )
// 情报翻转
const reversalPushShow = ref ( true )
const reversalPush = ( ) => {
reversalPushShow . value = ! reversalPushShow . value
// 移除clearInterval调用, 避免定时器被清除
}
// 论坛翻转
const reversalShow = ref ( true )
const reversal = ( ) => {
reversalShow . value = ! reversalShow . value
// 移除clearInterval调用, 避免定时器被清除
}
// 鼠标移入
const mouseEnter = ( ) => {
clearInterval ( timing . value )
}
// 鼠标移出
const mouseLeave = ( ) => {
// 清除可能存在的旧定时器,避免多个定时器同时运行
clearInterval ( timing . value )
// 设置为5秒自动切换, 更容易测试效果
timing . value = setInterval ( ( ) => {
reversalPush ( )
reversal ( )
changeModel ( )
} , 30000 )
}
function changeModel ( ) {
modelWarning . value = ! modelWarning . value
}
onUnmounted ( ( ) => {
onUnmounted ( ( ) => {
clearInterval ( timing . value )
clearInterval ( timing . value )
clearInterval ( bnTimer . value )
clearInterval ( bnTimer . value )
clearInterval ( popupTimer . value )
clearInterval ( popupTimer . value )
// 组件卸载时停止音频播放并释放资源
// 组件卸载时停止音频播放并释放资源
if ( audioPlayer ) {
if ( audioPlayer ) audioPlayer . destroy ( ) ;
audioPlayer . destroy ( )
}
} )
} )
< / script >
< / script >
< style lang = "scss" scoped >
< style lang = "scss" scoped >
@ import "@/assets/css/homeScreen.scss" ;
@ import "@/assets/css/homeScreen.scss" ;
. fxq {
. fxq {
border - radius : 35 px ;
border - radius : 35 px ;
width : 35 px ;
width : 35 px ;
@ -476,7 +445,6 @@ onUnmounted(() => {
transform - origin : left center ;
transform - origin : left center ;
overflow : hidden ;
overflow : hidden ;
margin - bottom : 10 px ;
margin - bottom : 10 px ;
. icon {
. icon {
display : flex ;
display : flex ;
align - items : center ;
align - items : center ;
@ -501,32 +469,24 @@ onUnmounted(() => {
}
}
}
}
}
}
. fxq2 {
. fxq2 {
background - color : # 9 d88f9 ;
background - color : # 9 d88f9 ;
}
}
. fxq1 : hover {
. fxq1 : hover {
width : 120 px ;
width : 120 px ;
}
}
. fxq2 : hover {
. fxq2 : hover {
width : 120 px ;
width : 120 px ;
// background-color: red;
}
}
. fxq3 : hover {
. fxq3 : hover {
width : 120 px ;
width : 120 px ;
}
}
: : v - deep . badge - top - left . el - badge _ _content {
: : v - deep . badge - top - left . el - badge _ _content {
top : 0 ;
top : 0 ;
right : auto ;
right : auto ;
left : - 10 px ;
left : - 10 px ;
transform : translateY ( - 50 % ) translateX ( - 50 % ) ;
transform : translateY ( - 50 % ) translateX ( - 50 % ) ;
}
}
. badge - content {
. badge - content {
display : flex ;
display : flex ;
flex - direction : column ;
flex - direction : column ;
@ -537,11 +497,9 @@ onUnmounted(() => {
min - height : 45 px ;
min - height : 45 px ;
/* 确保收缩时有足够空间显示第一个图标 */
/* 确保收缩时有足够空间显示第一个图标 */
}
}
. badge - content : not ( . expanded ) {
. badge - content : not ( . expanded ) {
max - height : 45 px ;
max - height : 45 px ;
}
}
/* 收缩时只显示第一个图标,隐藏其他内容 */
/* 收缩时只显示第一个图标,隐藏其他内容 */
. badge - content : not ( . expanded ) > : not ( : first - child ) {
. badge - content : not ( . expanded ) > : not ( : first - child ) {
opacity : 0 ;
opacity : 0 ;
@ -588,7 +546,6 @@ onUnmounted(() => {
. flip - wrapper {
. flip - wrapper {
position : relative ;
position : relative ;
width : 100 % ;
width : 100 % ;
// height: calc(100%/3 - 8px);
height : 100 % ;
height : 100 % ;
backface - visibility : hidden ;
backface - visibility : hidden ;
perspective : 1000 px ;
perspective : 1000 px ;