diff --git a/src/components/common/TestDiv copy.vue b/src/components/common/TestDiv copy.vue
new file mode 100644
index 0000000..0649e7a
--- /dev/null
+++ b/src/components/common/TestDiv copy.vue
@@ -0,0 +1,240 @@
+
+
+
+
+
+
+
diff --git a/src/components/common/TestDiv.vue b/src/components/common/TestDiv.vue
index 0649e7a..41f00bb 100644
--- a/src/components/common/TestDiv.vue
+++ b/src/components/common/TestDiv.vue
@@ -19,11 +19,11 @@
// 测试div组件,用于在后台和大屏页面都显示
import { ref, onMounted, onUnmounted } from 'vue'
import { Close } from '@element-plus/icons-vue'
-import WebSoketClass from '@/utils/webSocket.js'
import emitter from "@/utils/eventBus.js"; // 导入事件总线
+import { qcckGet } from '@/api/qcckApi'
import Item from './item.vue'
import { AudioPlayerClass } from '@/utils/audioPlayer.js'
-const webSoket = new WebSoketClass()
+import {getItem} from '@/utils/storage.js'
const dataList = ref([])
const timekeeping = ref(null)
const countdown = ref(0) // 倒计时时间(秒)
@@ -90,24 +90,56 @@ const resetCountdown = () => {
}
}, 1000)
}
+
+
+// 做一个定时器15s一次
+const checkNews = ref(null)
+const checkNewsInterval = 15000 // 15秒
+checkNews.value = setInterval(() => {
+ dataModel()
+}, checkNewsInterval)
onMounted(() => {
// 初始化音频播放器
initAudioPlayers()
-
emitter.on('webSocketMessage', (newsDate) => {
if (newsDate) {
- dataList.value.unshift({...newsDate.data,typeMasgeLx:newsDate.type})
- // 根据消息类型播放音频
- playAudioByType(newsDate.type)
+ dataList.value = newsDate
+ // dataList.value.unshift({...newsDate.data,typeMasgeLx:newsDate.type})
+ // 根据消息类型播放音频
+ playAudioByType(newsDate[0].typeMasgeLx)
resetCountdown()
}
})
- // 组件挂载时执行的操作
- webSoket.connect()
- console.log('组件挂载时执行的操作')
})
+const idEntityCard = ref(getItem('idEntityCard'))
+const dataModel = () => {
+ qcckGet({}, '/mosty-gsxt/dsjJbxx/message').then(res => {
+ if (res) {
+ const yjmasg = res.filter(item => item.type === '01')
+ if (yjmasg.length > 0) {
+ emitter.emit('openYp', yjmasg[0].obj); // 触发音频播放
+ } else {
+const data=res.filter(item=>item.sfzList.includes(idEntityCard.value))
+ const infoMasge =data.map(item => {
+ return {
+ ...item.obj,
+ typeMasgeLx: item.type
+ }
+ })
+ console.log(infoMasge);
+ emitter.emit('webSocketMessage', infoMasge)
+ }
+ }
+ })
+
+}
+
+// if (newsDate.type === '01') {
+// // 触发音频播放
+// console.log('触发音频播放');
+// emitter.emit('openYp', newsDate.data); // 传递消息数据
+// } else {
onUnmounted(() => {
- webSoket.closeConnection()
emitter.off('webSocketMessage')
if (timekeeping.value) {
clearInterval(timekeeping.value)
@@ -118,6 +150,11 @@ onUnmounted(() => {
player.destroy()
}
})
+ // 清除定时器
+ if (checkNews.value) {
+ clearInterval(checkNews.value)
+ checkNews.value = null
+ }
// 组件卸载时执行的操作
console.log('组件卸载时执行的操作')
})
@@ -143,6 +180,7 @@ onUnmounted(() => {
transform: translateX(100%);
opacity: 0;
}
+
to {
transform: translateX(0);
opacity: 1;
@@ -180,11 +218,14 @@ onUnmounted(() => {
}
@keyframes pulse {
- 0%, 100% {
+
+ 0%,
+ 100% {
opacity: 1;
transform: scale(1);
box-shadow: 0 0 10px rgba(0, 255, 255, 0.8);
}
+
50% {
opacity: 0.8;
transform: scale(1.2);
@@ -230,11 +271,14 @@ onUnmounted(() => {
max-height: 150px;
overflow-y: auto;
padding: 12px;
- scrollbar-width: none; /* Firefox */
- -ms-overflow-style: none; /* IE and Edge */
+ scrollbar-width: none;
+ /* Firefox */
+ -ms-overflow-style: none;
+ /* IE and Edge */
&::-webkit-scrollbar {
- display: none; /* Chrome, Safari and Opera */
+ display: none;
+ /* Chrome, Safari and Opera */
}
}
diff --git a/src/components/common/item.vue b/src/components/common/item.vue
index f0c6d25..5e94c59 100644
--- a/src/components/common/item.vue
+++ b/src/components/common/item.vue
@@ -49,6 +49,7 @@ const informationMap = {
'04': '研判指令',
'05': '线索下发',
}
+const emit=defineEmits(['goDetail'])
const goDetail = (id, lx) => {
let path = ''
switch (lx) {