function btn_opt_handle(id){
switch(id){
case 'opt-pager':
optionRealPaging();
break;
case 'opt-text-pager':
textPager();
break;
case 'opt-monitor':
let ids = selectDeviceID();
if(ids.length > 1){
msgShow('select-device-only');
break;
}else if(ids.length === 0){
msgShow('not-select-devices');
break;
}
let dev = getDevice(ids[0]);
if(dev !== undefined) playCamera(dev.vid);
break;
case 'opt-listen':
if($('#top-opt-listen .top-button-icon').hasClass('text-color-warning')){
httpPOST('device/monitor/stop', {}, function(r){
msgShow('operation-success');
$('#top-opt-listen .top-button-icon').removeClass('text-color-warning');
}, function(r){
$('#top-opt-listen .top-button-icon').removeClass('text-color-warning');
return 0
});
}else{
let ids = selectDeviceID();
if(ids.length > 1){
msgShow('select-device-only');
break;
}else if(ids.length === 0){
msgShow('not-select-devices');
break;
}
httpPOST('device/monitor/start', {deviceID: ids[0]}, function(r){
$('#top-opt-listen .top-button-icon').addClass('text-color-warning')
msgShow('operation-success');
});
}
break;
case 'opt-SPC':
selectDeviceCtrlSPC();
break;
case 'opt-search':
searchDeviceRender();
break;
case 'opt-intercom':
break;
case 'opt-alarm':
weatherAlarmConfig()
break;
case 'opt-map':
electronicMapConfig();
break;
case 'opt-offlinemap':
offlineMapConfig();
break;
case 'opt-dashboard':
electronicDashboard();
break;
case 'opt-adap':{
let devids = selectDeviceID();
if(devids.length > 1){
msgShow('select-device-only');
break;
}else if(devids.length === 0){
msgShow('not-select-devices');
break;
}
adap_control(devids[0]);
}
break;
case 'opt-factory-debug':
dialog_factory_network();
break;
case 'opt-select-all': selectAll(); break;
}
}
function opt_handle(id, title='unknown'){
let subWinData={
type: 2,
title: title,
area: ['90%', (getDefaultHeight() - 150) + 'px'],
fixed: false, //不固定
maxmin: false,
resize: false,
shadeClose: true,
success: subWinSuccess,
end: ()=>{
ws.iframeCb['system/task/list/refresh'] = undefined;
ws.iframeCb['terminal/upgrade/status'] = undefined;
ws.iframeCb['terminal/timer/sync/status'] = undefined;
ws.iframeCb['sip/event/notice'] = undefined;
ws.iframeCb['system/service/ping'] = undefined;
ws.iframeCb['device/update'] = undefined;
ws.iframeCb['terminal/sip/plan'] = undefined;
ws.iframeCb['system/sync/refresh'] = undefined;
},
};
if(id === 'opt-play'){
playSong($('.audio-list-active .current'));
}else if(id === 'opt-media'){
subWinData.content = 'media.html';
layer.open(subWinData);
}else if(id === 'opt-stop'){
let d={};
d['devices'] = selectDeviceID();
if(d.devices.length > 0) httpPOST('music/song/stop', d);
else msgShow('not-select-devices');
}else if(id === 'opt-tasks'){
subWinData.content = 'tasks.html';
layer.open(subWinData);
}else if(id === 'opt-group'){
subWinData.content = 'groups.html';
layer.open(subWinData);
}else if(id === 'opt-schemes'){
subWinData.area = ['95%', (getDefaultHeight() - 80) + 'px'];
subWinData.content = 'schemes.html';
layer.open(subWinData);
}else if(id === 'opt-devices'){
subWinData.area = ['95%', (getDefaultHeight() - 80) + 'px'];
subWinData.content = 'devices.html';
layer.open(subWinData);
}else if(id === 'opt-intercom'){
subWinData.content = 'intercom.html';
layer.open(subWinData);
}else if(id === 'opt-alert'){
httpGet('system/alarm/start', function(r){
if(r.started === 0){
layer.confirm('确定所有设备进入消防状态?', function(index){
httpPOST('system/alarm/start',{userID: parseInt($('#top-opt-user').attr('user-id'))},function(r){
layer.msg("设置成功", {icon: 1, time: 800}, function(){ });
}, function(r){
if(r.code === 610){
layer.confirm('当前消防状态已启动是否停止?', function(index1){
httpPOST('system/alarm/stop',{userID: parseInt($('#top-opt-user').attr('user-id'))});
layer.close(index1);
})
}else{
httpResponseCheck(r.code)
}
return 0;
});
layer.close(index);
});
return;
}else{
layer.confirm('当前消防状态已启动是否停止?', function(index1){
httpPOST('system/alarm/stop',{userID: parseInt($('#top-opt-user').attr('user-id'))});
layer.close(index1);
})
}
})
}else if(id === 'opt-bullying'){
subWinData.content = 'bullying.html';
subWinData.area = ['95%', (getDefaultHeight() - 80) + 'px'];
layer.open(subWinData);
}else if(id === 'opt-patrol'){
subWinData.content = 'patrol.html';
subWinData.area = ['95%', (getDefaultHeight() - 80) + 'px'];
layer.open(subWinData);
}else if(id === 'opt-logout'){
layer.confirm('确定注销登录?', function(index){
httplogout(parseInt($('#top-opt-user').attr('user-id')));
layer.close(index);
});
}else if(id === 'opt-settings'){
subWinData.content = 'settings.html';
subWinData.area = ['95%', (getDefaultHeight() - 80) + 'px'];
layer.open(subWinData);
}else if(id === 'opt-video'){
subWinData.content = 'video.html';
subWinData.area = ['95%', (getDefaultHeight() - 80) + 'px'];
layer.open(subWinData);
}else{
btn_opt_handle(id);
}
}
function more_func_init(){
let def_cfgs=[{
title: '防欺凌'
,templet: '<i class="mdi mdi-run-fast icon-card-dropdown"></i><span class="card-dropdown-title">{{d.title}}</span>'
,enable: getEnableFuncTable().bully
,click: function(obj){ opt_handle('opt-bullying', obj.title) }
},{
title: '定时巡更'
,templet: '<i class="mdi mdi-clipboard-text-search-outline icon-card-dropdown"></i><span class="card-dropdown-title">{{d.title}}</span>'
,enable: getEnableFuncTable().patrol
,click: function(obj){ opt_handle('opt-patrol', obj.title) }
},{
title: '监控'
,templet: '<i class="fa fa-video-camera icon-card-dropdown"></i><span class="card-dropdown-title">{{d.title}}</span>'
,enable: getEnableFuncTable().mediamtx
,click: function(obj){ opt_handle('opt-monitor', obj.title) }
},{
title: '视频管理'
,templet: '<i class="mdi mdi-webcam icon-card-dropdown"></i><span class="card-dropdown-title">{{d.title}}</span>'
,enable: getEnableFuncTable().mediamtx
,click: function(obj){ opt_handle('opt-video', obj.title) }
},{
title: '气象预警'
,templet: '<i class="fa ion-fireball icon-card-dropdown"></i><span class="card-dropdown-title">{{d.title}}</span>'
,enable: getEnableFuncTable().alarm
,click: function(obj){ opt_handle('opt-alarm', obj.title) }
},{
title: '电子地图'
,templet: '<i class="mdi mdi-map-marker-radius-outline icon-card-dropdown"></i><span class="card-dropdown-title">{{d.title}}</span>'
,enable: getEnableFuncTable().offlineMap
,click: function(obj){ opt_handle('opt-offlinemap', obj.title) }
},{
title: 'AI自适应'
,templet: '<i class="mdi mdi-refresh-auto icon-card-dropdown"></i><span class="card-dropdown-title">{{d.title}}</span>'
,enable: getEnableFuncTable().volAdap
,click: function(obj){ opt_handle('opt-adap', obj.title) }
},{
title: '数据监控'
,templet: '<i class="mdi mdi-monitor-dashboard icon-card-dropdown"></i><span class="card-dropdown-title">{{d.title}}</span>'
,enable: getEnableFuncTable().dashboard
,click: function(obj){ opt_handle('opt-dashboard', obj.title) }
},{
title: '退出'
,templet: '<i class="fa fa-sign-out icon-card-dropdown"></i><span class="card-dropdown-title">{{d.title}}</span>'
,click: function(obj){ opt_handle('opt-logout', obj.title) }
}];
let cfgs = [];
for(var i in def_cfgs){
if(def_cfgs[i].enable === undefined || def_cfgs[i].enable === 1){
cfgs.push(def_cfgs[i]);
}
}
layui.dropdown.render({
elem: '.btn-opt-more-func'
,trigger: 'hover'//'hover'
,className: 'opt-more-func-dropdown'
,id: 'more-func'
,align: 'left'
,data: cfgs
,click: function(obj, othis){
obj.click(obj)
}
,ready: function(elemView, elem, target){
let elemRect = document.getElementById("opt-more-func").getBoundingClientRect();
let elemHeight = parseInt($(elemView).css('height'), 10);
let windowHeight = window.innerHeight;
let topPosition = elemRect.top;
if (topPosition + elemHeight > windowHeight - 120) {
topPosition = windowHeight - 120 - elemHeight;
}
$(elemView).css({
top: topPosition + "px",
left: (elemRect.right + 30) + "px"
});
}
});
}
$(document).ready(function(){
notice_list_show_init()
// $('.zone-box').sortable({
// update: function(event, ui){
// let data = [];
// $('.zone-box').each(function(){
// let id = $(this).attr('id');
// let name = $(this).find('.zone-name').text();
// let devs = [];
// $(this).find('.device-box').each(function(){
// let did = $(this).attr('id');
// devs.push(did);
// })
// console.log(id, name, devs)
// })
// }
// });
request_system_time();
update_user_info();
device_type_list_update();
playListUpdate();
groupListUpdate(devicesListUpdate);
wsConnect();
// timer_list_render();
timer_info_show();
refresh_user_listen_status();
more_func_init();
$('.opt-button').click(function(){
opt_handle($(this).attr('id'), $(this).find("span").text())
});
var Tvol;
slider_theme = getComputedStyle(document.documentElement).getPropertyValue('--master-color');
slider_sta = layui.slider.render({
elem: '#slider-volume-box'
// ,input: true //输入框
,theme: slider_theme //主题色
,value: 50 //初始值
,min: 0 //最小值
,max: 100 //最大值
,tips: false
,change: function (val) {
$('.slider-volume-value').text(val+'%');
slider_cur_val = val;
if(volFakeSet){
volFakeSet=0;
return;
}
clearTimeout(Tvol);
Tvol = setTimeout(function(){
let u='device/update';
let sltIDS;
sltIDS = selectDeviceID();
if(sltIDS.length === 0){
msgShow('not-select-devices');
return;
}
let ids=[];
for(var i in sltIDS){
ids.push({id: sltIDS[i], vol: val});
}
httpPOST(u,{list:ids},function(r){
});
}, 200);
}
});
function newuserClose(index){
$('.user-content').css("display","none");
}
function chpassSubmit(idx){
var oldpass = $('#oldpass').val();
var newpass = $('#newpass').val();
var u={
id: parseInt($('input[type="text"][name="user-text"]').attr('id'))
,oldpass: $.md5(oldpass)
,newpass: $.md5(newpass)
}
var npass = $('#ag-newpass').val();
if(oldpass.length < 4||newpass.length < 4||npass.length < 4){
layer.msg('密码长度小于4个字符');
return;
}
if(oldpass.length > 16||newpass.length > 16||npass.length > 16){
layer.msg('密码长度大于16个字符');
return;
}
if(npass !== newpass){
layer.msg('新密码输入不一致');
return;
}
httpPOST('system/user/password/update', u, function(r){
layer.msg('修改成功!', {icon: 1, time: 800}, function(){
layer.close(idx);
});
}, function(r){
if(r.code===605){
layer.msg('用户不存在'); return 0;
}
if(r.code===602){
layer.msg('原始密码不正确'); return 0;
}
});
}
function chpassDialog(user){
layer.open({
type: 1 //Page层类型
,area: ['400px', '380px']
,title: '修改用户密码'
,shade: 0.6 //遮罩透明度
,anim: 0 //0-6的动画形式,-1不开启
,btn: ['确认', '取消']
,closeBtn: 0
,btnAlign: 'c'
,moveType: 1 //拖拽模式,0或者1
,id: 'chpassDialog'
,content: $('.user-content')
,btn1: chpassSubmit
,btn2: newuserClose
,end: newuserClose
,success: function(layero){
$('.user-content').html($('#ch-pass').html());
$('input[type="text"][name="user-text"]').attr('id', user.id);
$('input[type="text"][name="user-text"]').val(user.name);
layui.form.render();
}
});
}
//自定义事件 - hover
layui.dropdown.render({
elem: '#top-opt-user'
,trigger: 'hover'//'hover'
,className: 'user-dropdown'
,data: [{
title: '基本信息'
,templet: '<i class="fa fa-info icon-card-dropdown"></i><span class="card-dropdown-title">{{d.title}}</span>'
,id: 1001
},{
title: '修改密码'
,templet: '<i class="fa fa-lock icon-card-dropdown"></i><span class="card-dropdown-title">{{d.title}}</span>'
,id: 1002
},{
title: '退出'
,templet: '<i class="fa fa-sign-out icon-card-dropdown"></i><span class="card-dropdown-title">{{d.title}}</span>'
,id: 1004
}]
,click: function(obj){
switch(obj.id){
case 1001:
httpGet('system/user/list?id=' + $('#top-opt-user').attr('user-id'), function (j) {
layer.open({
type: 1,
title: '用户信息',
area: ['420px', '420px'],
fixed: false, //不固定
maxmin: false,
resize: false,
content: $('.user-info-box'),
shadeClose: true,
success: function(layero, index){
$('.user-info-box').html($('#user-info-content').html());
$('.text-user-name').text(cutString(j.name, 18));
$('.text-user-online').text(j.onlineTime);
$('.text-user-playmode').text(playModeName(j.playMode));
if(j.monitor.monitID === 0 || j.monitor.monitID < 0) $('.text-user-monitor-device').text('未设置');
else $('.text-user-monitor-device').text(j.monitor.monitID + '(' + j.monitor.deviceName + ')');
if(j.aorsMax >= 9999){
$('.text-user-connection').text( j.aors.length + '/无限制');
}else{
$('.text-user-connection').text( j.aors.length + '/' + j.aorsMax);
}
$('.text-user-pager-vol').text(j.pagerVol);
$('.text-user-type').text(j.permissions.super==1?'管理员':'普通用户');
$('.text-user-ip').text(j.ip);
}
});
})
break;
case 1002:
chpassDialog({id: $('#top-opt-user').attr('user-id'), name: getLocalLoginName()});
break;
case 1003:
break;
case 1004:
layer.confirm('确定注销登录?', function(index){
httplogout(parseInt($('#top-opt-user').attr('user-id')));
layer.close(index);
});
break;
default:
break;
}
}
,ready: function(elemView, elem, target){
$(elemView).css({
left: "50px"
});
}
});
layui.dropdown.render({
elem: '.play-mode-opt'
,trigger: 'hover'//'hover'
,className: 'play-mode-dropdown'
,data: [{
title: '单曲播放'
,templet: '<i class="mdi mdi-numeric-1-box-multiple-outline icon-card-dropdown"></i><span class="card-dropdown-title">{{d.title}}</span>'
,id: 101
},{
title: '单曲循环'
,templet: '<i class="mdi mdi-repeat-once icon-card-dropdown"></i><span class="card-dropdown-title">{{d.title}}</span>'
,id: 102
},{
title: '顺序播放'
,templet: '<i class="mdi mdi-shuffle-disabled icon-card-dropdown"></i><span class="card-dropdown-title">{{d.title}}</span>'
,id: 103
},{
title: '列表循环'
,templet: '<i class="mdi mdi-repeat icon-card-dropdown"></i><span class="card-dropdown-title">{{d.title}}</span>'
,id: 104
},{
title: '随机播放'
,templet: '<i class="mdi mdi-shuffle-variant icon-card-dropdown"></i><span class="card-dropdown-title">{{d.title}}</span>'
,id: 105
}]
,click: function(obj, othis){
httpPOST('system/play/mode',{mode: obj.id - 100}, function(r){
uiSetPlayMode(r.mode);
});
}
,ready: function(elemView, elem, target){
}
});
httpGet('system/play/mode', function(r){
uiSetPlayMode(r.mode);
});
$(".zone-search-input").keyup(function(){
if(card_list == null){
devicesListUpdate();
}else{
if(!isShowGroup()) devicesBoxReload(card_list);
}
if(group_card_list === null){
groupListUpdate();
}else{
if(isShowGroup()) groupsBoxReload(group_card_list);
}
});
$('.switch-box #show-group').click(function(){
if(isShowGroup()) groupListUpdate();
else devicesListUpdate();
});
$('.switch-box #show-online').click(function(){
if(isShowGroup()) groupListUpdate();
else devicesListUpdate();
});
logoClick_timer = null;
logoClick_cnt=0;
$('.logo-background').click(function(e){
if(logoClick_timer !== null ) clearTimeout(logoClick_timer);
logoClick_cnt++;
if(logoClick_cnt>10){
layer.confirm('上传logo图片?', function(index){
$('#uploadLogoFile').click();
layer.close(index)
})
}
logoClick_timer = setTimeout(function(){
logoClick_cnt=0;
}, 200);
});
layui.upload.render({
elem: '#uploadLogoFile'
,url: httpAddress() + 'system/upload/logo'
,headers: getLayuiHttpReqHeaders()
,auto: true
,accept: 'images'
,exts: 'png|jpg|jpeg'
,size: 100
,before: function(obj){
layer.msg('上传中', {icon: 16, time: 0});
return true;
}
,done: function(res){
if(res.code == 200){
layer.msg('上传成功', {icon: 1});
}else{
layer.msg('上传失败 :'+res.code, {icon: 2});
}
}
,error: function(){
layer.msg('上传失败', {icon: 2, time: 800});
}
});
});全部写注释,每一行
最新发布