rescue-driver/components/tabBar/tabBar.vue
2024-08-28 22:02:00 +08:00

239 lines
4.7 KiB
Vue
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<template>
<view class="bottoms">
<view class="box" @click="getgogo(1)">
<view class="imgs">
<image src="../../static/detection/sy.png" v-show="aindex == 1"></image>
<image src="../../static/detection/syw.png" v-show="aindex != 1"></image>
</view>
<view class="xzz" v-show="aindex == 1">首页</view>
<view class="wxz" v-show="aindex != 1">首页</view>
</view>
<view class="box" @click="getgogo(2)">
<view class="imgs" style="position: relative;">
<view class="hongdian" v-if=" msgNum != 0">
{{msgNum}}
</view>
<image src="../../static/detection/dd.png" v-show="aindex == 2"></image>
<image src="../../static/detection/ddw.png" v-show="aindex != 2"></image>
</view>
<view class="xzz" v-show="aindex == 2">通知</view>
<view class="wxz" v-show="aindex != 2">通知</view>
</view>
<view class="box" @click="getgogo(3)">
<view class="imgs">
<image src="../../static/detection/wd.png" v-show="aindex == 3"></image>
<image src="../../static/detection/wdw.png" v-show="aindex != 3"></image>
</view>
<view class="xzz" v-show="aindex == 3">我的</view>
<view class="wxz" v-show="aindex != 3">我的</view>
</view>
</view>
</template>
<script>
const innerAudioContext = uni.createInnerAudioContext();
const jyJPush = uni.requireNativePlugin('JY-JPush');
import request from '../../utils/request';
export default {
data() {
return {
msgSocket: this.$msgSocket,
aindex: 1,
chuan: 0,
msgNum: 0,
nowPageInterval: null,
arr: [{
text: '首页'
},
{
text: '个人中心'
},
],
}
},
props: {
msg: String
},
onLoad() {
},
onUnload() {
if (this.nowPageInterval) {
clearTimeout(this.nowPageInterval);
}
},
mounted() {
if (!this.nowPageInterval) {
this.nowPageInterval = setInterval(() => {
this.msgSocket = this.$msgSocket
}, 3000);
}
console.log("msgSocket赋值");
this.aindex = this.msg
setTimeout(() => {
this.msgInfo()
}, 2000);
this.getbottom()
},
watch: {
msgSocket(newVal, oldVal) {
console.log('msgSocket值发生变化', newVal, oldVal)
this.msgInfo()
},
deep: true,
},
methods: {
dianyidain() {
console.log('执行了dianyidain');
innerAudioContext.src = 'https://www.nuoyunr.com/lananRsc/rescue/msgV.mp3';
// 设置播放次数和计数器
const playCount = 5;
let currentCount = 0;
// 监听音频播放结束事件
innerAudioContext.onEnded(() => {
// 播放计数加一
currentCount++;
// 判断是否达到播放次数上限
if (currentCount < playCount) {
// 继续播放
innerAudioContext.play();
} else {
// 播放完成,可以在这里添加额外的逻辑
console.log('播放完成');
}
});
// 初次播放
innerAudioContext.play();
},
msgInfo() {
console.log(this.msgSocket, 'msgSocket')
if (this.msgSocket) {
console.log('消息回调启动成功')
this.msgSocket.onMessage(res => {
console.log("发出提示音");
this.getbottom();
this.dianyidain()
})
}
},
async getbottom() {
let res = await request({
url: '/announcement/announcement/getOwnNoRead',
method: 'get',
})
if (res.code == 200) {
this.msgNum = res.data
// #ifdef APP
plus.runtime.setBadgeNumber(0)
// #endif
console.log("清除角标");
}
},
async getlooklook() {
let res = await request({
url: '/announcement/announcement/setAllRead',
method: 'get',
})
},
getgogo(index) {
if (index == 1) {
this.aindex = index
uni.reLaunch({
url: '/pages/index/index'
});
}
if (index == 2) {
this.aindex = index
uni.reLaunch({
url: '/pages/message/message'
});
// this.getlooklook()
}
if (index == 3) {
this.aindex = index
uni.reLaunch({
url: '/pages/my/my'
});
}
},
},
}
</script>
<style scoped lang="scss">
.bottoms {
width: 100%;
height: 50px;
position: fixed;
bottom: 0px;
background: white;
display: flex;
justify-content: space-between;
font-size: 14px;
font-weight: 400;
}
.box {
width: 50%;
text-align: center;
font-size: 12px;
}
.hongdian {
width: 12px;
height: 12px;
background-color: crimson;
border-radius: 50%;
overflow: hidden;
position: absolute;
top: -5px;
right: -8px;
z-index: 9999;
display: flex;
align-items: center;
justify-content: center;
color: white;
font-size: 2px;
}
.imgs {
margin: 0 auto;
margin-top: 10px;
width: 18px;
height: 16px;
image {
width: 100%;
height: 100%;
}
}
.xzz {
color: #0D2E8D;
}
.wxz {
color: #AAAAAA;
}
</style>