lanan-repair-app/pages/index/index.vue
2024-11-13 10:34:57 +08:00

152 lines
4.1 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="content">
</view>
</template>
<script>
import {getToken,getUserInfo} from "@/utils/auth";
import request from '@/utils/request';
let innerAudioContext ='';
const keepAlivePlugin = uni.requireNativePlugin('Ba-KeepAlive')
export default {
data() {
return {
// 是否正在播放
ifPlay:false,
keepLive: {
channelId: 'Ba-KeepAlive',
channelName: "Ba-KeepAlive",
title: "汽修小助手正在运行",
content: "汽修小助手正在运行",
dataResult: "",
type: undefined
}
}
},
onLoad() {
// #ifdef APP
//保活技术
this.register()
// #endif
if(getToken()){
this.getNoReadNum()
//跳转首页
//判断是否是仓管,仓管需要跳单独的首页
let userInfo = getUserInfo()
if(userInfo.roleCodes.includes('repair_warehouse')){
//仓管
uni.navigateTo({
url: '/pages-warehouse/home/home'
})
}else{
uni.navigateTo({
url: '/pages-home/home/home'
})
}
}else{
uni.navigateTo({
url: '/pages/login/login'
})
}
},
methods: {
register() { //注册
console.log(keepAlivePlugin, 'keepAlive');
keepAlivePlugin.register({
channelId: this.keepLive.channelId,
channelName: this.keepLive.channelName,
title: this.keepLive.title,
content: this.keepLive.content,
},
(res) => {
console.log('保活注册', res);
});
},
/**
* 获取未读消息数量
* @returns {Promise<void>}
*/
async getNoReadNum(){
await request({
url: "/admin-api/system/notify-message/get-unread-count",
method: "GET"
}).then((res) => {
if(res.code==200 && res.data>0){
this.dianyidain()
}
})
},
dianyidain() {
if(!this.ifPlay){
console.log('执行了dianyidain');
if(innerAudioContext!=""){
try {
console.log('调用前先销毁');
innerAudioContext.stop();
innerAudioContext.destroy();
innerAudioContext="";
}catch (e){
console.log('销毁出错');
}
}
innerAudioContext = uni.createInnerAudioContext();
this.ifPlay=true
// #ifdef APP-PLUS
innerAudioContext.src = '../../static/msgV.mp3';
// #endif
// #ifndef APP-PLUS
innerAudioContext.src = 'https://www.nuoyunr.com/lananRsc/rescue/msgV.mp3';
// #endif
// 设置播放次数和计数器
const playCount = 4;
let currentCount = 0;
// 初次播放
innerAudioContext.play();
// 震动
uni.vibrateLong({
success: function () {
console.log('success');
}
});
innerAudioContext.onError((err) => {
console.error('播放错误', err);
this.ifPlay=false
innerAudioContext.stop();
innerAudioContext.destroy(); // 播放错误后释放实例
});
// 监听音频播放结束事件
innerAudioContext.onEnded(() => {
// 播放计数加一
currentCount++;
// 判断是否达到播放次数上限
if (currentCount < playCount) {
// 继续播放
innerAudioContext.play();
// 震动
uni.vibrateLong({
success: function () {
console.log('success');
}
});
} else {
// 播放完成,可以在这里添加额外的逻辑
console.log('播放完成');
this.ifPlay=false
//及时释放资源
innerAudioContext.stop();
innerAudioContext.destroy();
}
});
}else{
console.log('正在播放音频,拒绝播放请求');
}
},
}
}
</script>
<style>
</style>