音频报警修改

main
jinna 3 years ago
parent ce602bf56a
commit 7b5efe40b9
  1. 1
      public/js/xyDemoCommon.js
  2. 8
      src/App.vue
  3. 52
      src/api/alarm/alarm.js
  4. BIN
      src/assets/audio/alarm.mp3
  5. 101
      src/page/index/index.vue
  6. 116
      src/views/dispatch/index.vue
  7. 128
      src/views/wirelessintrusion/warn/record.vue

@ -134,7 +134,6 @@ function onForceLoginClick() {
function mylog(msg) { function mylog(msg) {
msg = getNowFormatDate() + " : " + msg + "\r\n"; msg = getNowFormatDate() + " : " + msg + "\r\n";
console.log("msg ====>", msg); console.log("msg ====>", msg);
$("output").value = msg + $("output").value;
} }
function getNowFormatDate() { function getNowFormatDate() {

@ -47,6 +47,8 @@ export default {
window.addEventListener('beforeunload', e => this.closeWebSocket(e)); window.addEventListener('beforeunload', e => this.closeWebSocket(e));
}, },
mounted() { mounted() {
// // socket
// window.addEventListener('onmessageWS', this.getSocketData);
// this.initWebSocket('pc'); // this.initWebSocket('pc');
}, },
beforeDestroy() { beforeDestroy() {
@ -54,8 +56,8 @@ export default {
methods: { methods: {
initWebSocket(supplierId) { initWebSocket(supplierId) {
// WebSocketwshttpwsshttps // WebSocketwshttpwsshttps
// let wsUrl = `ws://192.168.3.32:81/websocket/${supplierId}`; let wsUrl = `ws://192.168.3.32:81/websocket/${supplierId}`;
let wsUrl = `ws://171.16.8.51:81/websocket/${supplierId}`// // let wsUrl = `ws://171.16.8.51:81/websocket/${supplierId}`//
this.websocket = new WebSocket(wsUrl); this.websocket = new WebSocket(wsUrl);
this.websocket.onopen = this.websocketonopen; this.websocket.onopen = this.websocketonopen;
this.websocket.onerror = this.websocketonerror; this.websocket.onerror = this.websocketonerror;
@ -98,7 +100,7 @@ export default {
}, 5000) }, 5000)
}, },
async setOnmessageMessage(event) { async setOnmessageMessage(event) {
// console.log(event.data, ''); console.log(event.data, '获得消息');
this.reset(); this.reset();
// //
window.dispatchEvent(new CustomEvent('onmessageWS', { window.dispatchEvent(new CustomEvent('onmessageWS', {

@ -1,42 +1,50 @@
import request from '@/router/axios'; import request from "@/router/axios";
export const getList = (current, size, params) => { export const getList = (current, size, params) => {
return request({ return request({
url: '/api/alarmInformation/list', url: "/api/alarmInformation/list",
method: 'get', method: "get",
params: { params: {
...params, ...params,
current, current,
size, size,
} },
}) });
} };
export const getDetail = (code) => { export const getDetail = (code) => {
return request({ return request({
url: '/api/blade-system/region/detail', url: "/api/blade-system/region/detail",
method: 'get', method: "get",
params: { params: {
code code,
} },
}) });
} };
export const remove = (id) => { export const remove = (id) => {
return request({ return request({
url: '/api/blade-system/region/remove', url: "/api/blade-system/region/remove",
method: 'post', method: "post",
params: { params: {
id, id,
} },
}) });
} };
export const submit = (row) => { export const submit = (row) => {
return request({ return request({
url: '/api/blade-system/region/submit', url: "/api/blade-system/region/submit",
method: 'post', method: "post",
data: row data: row,
}) });
} };
// 测试接口
export const getAlarm = (query) => {
return request({
url: "/api/appData/test001",
method: "get",
params: query,
});
};

Binary file not shown.

@ -1,5 +1,8 @@
<template> <template>
<div class="avue-contail" :class="{'avue--collapse':isCollapse}"> <div class="avue-contail" :class="{'avue--collapse':isCollapse}">
<audio style="display:none" controls id="play_audio" :muted="isMuted" :playsinline="isPlay">
<source src="~@/assets/audio/alarm.mp3" />
</audio>
<div class="avue-header"> <div class="avue-header">
<!-- 顶部导航栏 --> <!-- 顶部导航栏 -->
<top ref="top"/> <top ref="top"/>
@ -38,6 +41,8 @@
import {validatenull} from "@/util/validate"; import {validatenull} from "@/util/validate";
import {calcDate} from "@/util/date.js"; import {calcDate} from "@/util/date.js";
import {getStore} from "@/util/store.js"; import {getStore} from "@/util/store.js";
import {getAlarm} from "@/api/alarm/alarm"
export default { export default {
components: { components: {
@ -59,7 +64,9 @@
//token //token
refreshLock: false, refreshLock: false,
//token //token
refreshTime: "" refreshTime: "",
times:0,
start:0
}; };
}, },
created() { created() {
@ -68,10 +75,102 @@
}, },
mounted() { mounted() {
this.init(); this.init();
this.getAlarmInfo()
if(!window.sessionStorage.getItem("click")){
this.$alert('请允许系统提示报警声音', '提示', {
confirmButtonText: '确定',
callback: action => {
window.sessionStorage.setItem("click", 1)
// socket
// window.addEventListener('onmessageWS', this.getSocketData);
this.timer = setInterval(() =>{
this.getSocketData('222')
},3000)
setTimeout(() =>{
clearInterval(this.timer)
},6200)
}
});
}else{
window.sessionStorage.removeItem('click')
if(!window.sessionStorage.getItem("click")){
this.$alert('请允许系统提示报警声音', '提示', {
confirmButtonText: '确定',
callback: action => {
window.sessionStorage.setItem("click", 1)
// socket
// window.addEventListener('onmessageWS', this.getSocketData);
this.timer = setInterval(() =>{
this.getSocketData('222')
},3000)
setTimeout(() =>{
clearInterval(this.timer)
},9200)
}
});
}
}
}, },
computed: mapGetters(["isMenu", "isLock", "isCollapse", "website", "menu"]), computed: mapGetters(["isMenu", "isLock", "isCollapse", "website", "menu"]),
props: [], props: [],
beforeDestroy() {
window.removeEventListener('onmessageWS', this.getSocketData);
},
methods: { methods: {
getAlarmInfo(){
getAlarm().then(res =>{
console.log(res)
})
},
getSocketData(res) {
this.times++;
let dom = document.querySelector('#play_audio')
console.log('dom ===>',dom)
dom.pause()
if(this.times > 0){
if(dom.readyState == 4){
for(let i = 0;i<=this.times;i++){
setTimeout(() =>{
this.start++;
this.isMuted = false,
this.isPlay = true
dom.play()
},2500 * i)
}
}
}
this.$notify({
title: '警告',
message: res,
type: 'warning'
})
// if (res.detail.data === 'success' || res.detail.data === '' || res.detail.data === 'heartBath') return
// // ...
// let obj = res.detail.data.indexOf('{') > -1 ? JSON.parse(res.detail.data) : null;
// this.times++;
// let dom = document.querySelector('#play_audio')
// console.log('dom ===>',dom)
// dom.pause()
// if(this.times > 0){
// if(dom.readyState == 4){
// for(let i = 0;i<=this.times;i++){
// setTimeout(() =>{
// this.start++;
// this.isMuted = false,
// this.isPlay = true
// dom.play()
// },2500 * i)
// }
// }
// }
// if (obj) {
// this.$notify({
// title: '',
// message: obj.buildId + '' + obj.floorNo + '' + obj.content,
// type: 'warning'
// });
// }
},
showCollapse() { showCollapse() {
this.$store.commit("SET_COLLAPSE"); this.$store.commit("SET_COLLAPSE");
}, },

@ -113,8 +113,8 @@
<el-col :span="8"><div class="bottom_item"></div></el-col> --> <el-col :span="8"><div class="bottom_item"></div></el-col> -->
</el-row> </el-row>
</div> </div>
<div class="group_cen"> <div class="group_cen" v-show="inviteList.length == 1 || isGroup">
<video id="video1"> <video id="video1" class="group_video">
<p>Your browser doesn't support HTML5 video.</p> <p>Your browser doesn't support HTML5 video.</p>
<!-- <div class="group_tit">{{inviteList.length == 1 ? inviteList[0].name : ''}}</div> <!-- <div class="group_tit">{{inviteList.length == 1 ? inviteList[0].name : ''}}</div>
<div class="group_voice"> <div class="group_voice">
@ -652,6 +652,7 @@ export default {
}, },
// //
inviteUser(row){ inviteUser(row){
console.log('inviteList ===>',this.inviteList)
if(this.inviteList.length == 0){ if(this.inviteList.length == 0){
this.dialogCall = true; // this.dialogCall = true; //
this.callItem = row; // this.callItem = row; //
@ -706,65 +707,74 @@ export default {
/** 呼叫 */ /** 呼叫 */
makecall(isVideo,position) { makecall(isVideo,position) {
this.$nextTick(() =>{ // this.$nextTick(() =>{
var targetNumber = this.callItem.name; // var targetNumber = this.callItem.name;
console.log('targetNumber ===>',targetNumber,document.getElementById('video1')) // console.log('targetNumber ===>',targetNumber,document.getElementById('video1'))
var mediaControl; // var mediaControl;
if (position == 1) { // if (position == 1) {
mediaControl = document.getElementById('video1'); // mediaControl = document.getElementById('video1');
} else if (position == 2) { // } else if (position == 2) {
mediaControl = document.getElementById('video1'); // mediaControl = document.getElementById('video1');
} // }
console.log('targetNumber ===>',targetNumber,'mediaControl ===>',mediaControl,'isVideo ===>',isVideo) // console.log('targetNumber ===>',targetNumber,'mediaControl ===>',mediaControl,'isVideo ===>',isVideo)
client.makeCall(targetNumber, mediaControl, isVideo).then((call) => { // client.makeCall(targetNumber, mediaControl, isVideo).then((call) => {
if (position == 1) { // if (position == 1) {
this._call1 = call; // this._call1 = call;
} else if (position == 2) { // } else if (position == 2) {
this._call2 = call; // this._call2 = call;
} // }
call.callStateChange.on(onCallStateChange); // call.callStateChange.on(onCallStateChange);
var state = convertCallstate(call.state); // var state = convertCallstate(call.state);
mylog("call success callState: " + state); // mylog("call success callState: " + state);
} // }
).catch((reason) => { // ).catch((reason) => {
mylog("call fail"); // mylog("call fail");
mylog(JSON.stringify(reason)); // mylog(JSON.stringify(reason));
}); // });
}) // })
// console.log('isRegisted ====>',isRegisted()) console.log('isRegisted ====>',isRegisted())
// let mediaControl = null; // let mediaControl = null;
// console.log(this.callItem) var mediaControl;
// // this.$nextTick(() =>{ if (position == 1) {
// if(this.inviteList.length == 1){ // mediaControl = document.getElementById('video1');
// console.log('') } else if (position == 2) {
// this.isMetting = false; mediaControl = document.getElementById('video1');
// mediaControl = video1; // }
// client.makeCall(this.callItem.name, mediaControl, isVideo).then((call) => { // console.log(this.callItem)
// console.log('call ===>',call) // this.$nextTick(() =>{
// this._call = call if(this.inviteList.length == 1){ //
console.log('进入循环')
this.isMetting = false;
mediaControl = video1; //
client.makeCall(this.callItem.name, mediaControl, isVideo).then((call) => { //
console.log('call ===>',call)
this._call = call
this.deviceData.find(item => item.id == this.callItem.id).isSelect = 1;
this.inviteList.push(this.callItem);
// }).catch((reason) => { }).catch((reason) => {
// console.log("call fail"); console.log("call fail");
// console.log(JSON.stringify(reason)); console.log(JSON.stringify(reason));
// }); this.$message.error('呼叫失败')
// }else if(this.inviteList.length == 2){ // });
// this.isMetting = true; }else if(this.inviteList.length == 2){ //
// // mediaControl = document.getElementById('video' + this.callItem.id); this.isMetting = true;
// mediaControl = document.getElementById('video' + this.callItem.id);
// this._call.addMember(this.callItem.id); // this._call.addMember(this.callItem.id); //
// this.setCallEventListener(call); // this.setCallEventListener(call); //
// var state = this.convertCallstate(call.state); var state = this.convertCallstate(call.state);
// mylog("call success callState: " + state); mylog("call success callState: " + state);
// }else{ //使 }else{ //使
// this._conf.add(this.callItem.id); // this._conf.add(this.callItem.id); //
// } }
// // }) // })
}, },
// //
@ -843,8 +853,6 @@ export default {
audioCall(){ audioCall(){
this.isIntercom = false; this.isIntercom = false;
this.callItem.isSelect = 1; this.callItem.isSelect = 1;
this.deviceData.find(item => item.id == this.callItem.id).isSelect = 1;
this.inviteList.push(this.callItem);
this.dialogCall = false; this.dialogCall = false;
console.log('callItem ===>',this.callItem) console.log('callItem ===>',this.callItem)
this.makecall(false,1) this.makecall(false,1)

@ -1,5 +1,8 @@
<template> <template>
<basic-container> <basic-container>
<!-- <audio style="display:none" controls id="play_audio" :muted="isMuted" :playsinline="isPlay">
<source src="~@/assets/audio/alarm.mp3" />
</audio> -->
<avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel" <avue-crud :option="option" :table-loading="loading" :data="data" :page.sync="page" ref="crud" @row-del="rowDel"
v-model="form" :before-open="beforeOpen" @search-change="searchChange" @search-reset="searchReset" v-model="form" :before-open="beforeOpen" @search-change="searchChange" @search-reset="searchReset"
@current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad"> @current-change="currentChange" @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad">
@ -81,6 +84,8 @@ export default {
total: 0 total: 0
}, },
selectionList: [], selectionList: [],
isMuted:true,
isPlay:false,
option: { option: {
height: 'auto', height: 'auto',
calcHeight: 30, calcHeight: 30,
@ -179,7 +184,10 @@ export default {
dealForm: { dealForm: {
id: '', id: '',
handleResult: '' handleResult: ''
} },
timer:null,
times:0,
start:0,
}; };
}, },
computed: { computed: {
@ -193,13 +201,81 @@ export default {
} }
}, },
mounted() { mounted() {
console.log(window.sessionStorage.getItem("click"))
// this.timer = setInterval(() =>{
// this.getSocketData('222')
// },3000)
// setTimeout(() =>{
// clearInterval(this.timer)
// },6200)
// if(!window.sessionStorage.getItem("click")){
// this.$alert('便', '', {
// confirmButtonText: '',
// callback: action => {
// window.sessionStorage.setItem("click", 1)
// this.timer = setInterval(() =>{
// this.getSocketData('222')
// },3000)
// setTimeout(() =>{
// clearInterval(this.timer)
// },6200)
// }
// });
// }else{
// window.sessionStorage.removeItem('click')
// if(!window.sessionStorage.getItem("click")){
// this.$alert('便', '', {
// confirmButtonText: '',
// callback: action => {
// window.sessionStorage.setItem("click", 1)
// this.timer = setInterval(() =>{
// this.getSocketData('222')
// },3000)
// setTimeout(() =>{
// clearInterval(this.timer)
// },6200)
// }
// });
// // this.$confirm("","").then(res => {
// // console.log('res ===>',res)
// // window.sessionStorage.setItem("click", 1)
// // this.timer = setInterval(() =>{
// // this.getSocketData('222')
// // },3000)
// // setTimeout(() =>{
// // clearInterval(this.timer)
// // },6200)
// // })
// }
// }
// document.getElementById('container').onclick = () =>{
// console.log('1231213')
// }
// console.log( this.$refs.refName.$el)
// this.$refs.refName.click();
// else{
// this.timer = setInterval(() =>{
// this.getSocketData('222')
// },3000)
// }
// socket // socket
window.addEventListener('onmessageWS', this.getSocketData); // window.addEventListener('onmessageWS', this.getSocketData);
},
},
beforeDestroy() { beforeDestroy() {
window.removeEventListener('onmessageWS', this.getSocketData); window.sessionStorage.removeItem('click')
// window.removeEventListener('onmessageWS', this.getSocketData);
clearInterval(this.timer)
}, },
methods: { methods: {
searchData(){
console.log('qwqwq')
// this.timer = setInterval(() =>{
// this.getSocketData('222')
// },5000)
},
// //
cancelWarn(row) { cancelWarn(row) {
if (row.systemNum < 0) { if (row.systemNum < 0) {
@ -232,18 +308,38 @@ export default {
}) })
}, },
// //
getSocketData(res) { // getSocketData(res) {
if (res.detail.data === 'success' || res.detail.data === '连接成功' || res.detail.data === 'heartBath') return // this.times++;
// ... // let dom = document.querySelector('#play_audio')
let obj = res.detail.data.indexOf('{') > -1 ? JSON.parse(res.detail.data) : null; // dom.pause()
if (obj) { // if(this.times > 0){
this.$notify({ // if(dom.readyState == 4){
title: '警告', // for(let i = 0;i<=this.times;i++){
message: obj.buildId + '号楼' + obj.floorNo + '层发生报警:' + obj.content, // setTimeout(() =>{
type: 'warning' // this.start++;
}); // this.isMuted = false,
} // this.isPlay = true
}, // dom.play()
// },2500 * i)
// }
// }
// }
// this.$notify({
// title: '',
// message: res,
// type: 'warning'
// })
// // if (res.detail.data === 'success' || res.detail.data === '' || res.detail.data === 'heartBath') return
// // ...
// // let obj = res.detail.data.indexOf('{') > -1 ? JSON.parse(res.detail.data) : null;
// // if (obj) {
// // this.$notify({
// // title: '',
// // message: obj.buildId + '' + obj.floorNo + '' + obj.content,
// // type: 'warning'
// // });
// // }
// },
searchReset() { searchReset() {
this.query = {}; this.query = {};
this.onLoad(this.page); this.onLoad(this.page);

Loading…
Cancel
Save