lanan-old/rescue-driver/components/tabBar/tabBar.vue

237 lines
4.7 KiB
Vue
Raw Normal View History

2024-07-17 14:16:22 +08:00
<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
plus.runtime.setBadgeNumber(0)
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>