jyyhq/witDisplay/js/video/child/eventQueryDeviceList.js

256 lines
9.9 KiB
JavaScript
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.

var example = null;
var pers = null;
var tokens = localStorage.getItem("token");
var ballIndex = localStorage.getItem("ballIndex");
var puid = localStorage.getItem("puid");
$(function () {
layui.use(['layer', 'laydate', 'form'], function () {
var layer = layui.layer;
var laydate = layui.laydate;
var form = layui.form;
var minListDate = $('#hidMinListDate').val();//最小可选时间1990-02-01
var maxListDate = $('#hidMaxListDate').val();//最大可选时间2200-12-31
var begin = "#startTime", end = "#endTime";//开始时间选择框、结束时间选择框:文本框
var endChange = function (val, date) {
if (date && date.year)
begindate.config.max = {
year: date.year,
month: date.month - 1,//必须减1才是正确值
date: date.date,
hours: date.hours,
minutes: date.minutes,
seconds: date.seconds
};
else {
var dateInit = new Date(maxListDate.replace(/-/g, "/"));
begindate.config.max = {
year: dateInit.getFullYear(),
month: dateInit.getMonth(),
date: dateInit.getDate(),
hours: dateInit.getHours(),
minutes: dateInit.getMinutes(),
seconds: dateInit.getSeconds()
};
}
};
var beginChange = function (val, date) {
if (date && date.year)
enddate.config.min = {
year: date.year,
month: date.month - 1,
date: date.date,
hours: date.hours,
minutes: date.minutes,
seconds: date.seconds
};
else {
var dateInit = new Date(minListDate.replace(/-/g, "/"));
enddate.config.min = {
year: dateInit.getFullYear(),
month: dateInit.getMonth(),
date: dateInit.getDate(),
hours: dateInit.getHours(),
minutes: dateInit.getMinutes(),
seconds: dateInit.getSeconds()
};
}
};
var enddate = laydate.render({
elem: end,
format: 'yyyy-MM-dd',
min: minListDate,
max: maxListDate,
done: endChange
});
var begindate = laydate.render({
elem: begin,
format: 'yyyy-MM-dd',
min: minListDate,
max: maxListDate,
done: beginChange
});
$("#searchBt").click(function () {
var startTime = $("#startTime").val();
var endTime = $("#endTime").val();
var dateStart = new Date(startTime);
var dateEnd = new Date(endTime);
var difValue = (dateEnd - dateStart) / (1000 * 60 * 60 * 24);
var startDateTemp = startTime.split("-");
var endDateTemp = endTime.split("-");
var allStartDate = new Date(startDateTemp[0], startDateTemp[1], startDateTemp[2]);
var allEndDate = new Date(endDateTemp[0], endDateTemp[1], endDateTemp[2]);
if (allStartDate.getTime() > allEndDate.getTime()) {
return top.layer.msg('时间选择不合理,请重新选择', {
icon: 2,
time: 2000 //2秒关闭如果不配置默认是3秒
});
}
example.ajax.reload();
});
init();
});
$("#searchBt").click(function () {
example.ajax.reload();
});
//导出
$("#exportBt").click(function () {
exportBtn();
});
})
function init() {
example =
$('#dt-table').DataTable({
"sort": false,
"searching": false,
"processing": true, //加载数据时显示进度状态
"serverSide": true,
'scrollY': 'calc(100vh - 150px)',
'scroller': true,
'scrollCollapse':true,
"language": {
"url": ctxPath + "/js/plugin/datatables/Chinese.lang"
},
"ajax": {
"url": ctxPath + "/eventQueryDevice",
"type": "get",
"data": function (d) {
d.data = $("#data").val();
d.ballIndex = ballIndex;
d.puid = puid;
d.startTime = $("#startTime").val();
d.endTime = $("#endTime").val();
},
"error": function (xhr, textStatus, errorThrown) {
var msg = xhr.responseText;
var response = JSON.parse(msg);
var code = response.code;
var message = response.message;
if (code == 400) {
layer.msg(message);
} else if (code == 401) {
localStorage.removeItem("token");
layer.msg("token过期请先登录", {shift: -1, time: 1000}, function () {
location.href = ctxPath + '/login.html';
});
} else if (code == 403) {
console.log("未授权:" + message);
layer.msg('未授权');
} else if (code == 500) {
console.log('系统错误:' + message);
}
}
},
"dom": "<'dt-toolbar'r>t<'dt-toolbar-footer'<'col-sm-4 col-xs-4 hidden-xs'i><'col-xs-8 col-sm-8' p v>>",
"columns": [
{
"data": null,
"width": "10%",
"bSortable": false,
render: function (data, type, full, meta) {
var node = '';
var checkedStatus = data['checkedStatus'];
node = '<input class="checkall" name="checked" value=\"' + full.id + '\" type="checkbox"/>';
if (checkedStatus == 1) {
node = '<input class="checkall" name="checked" checked="checked" value=\"' + full.id + '\" type="checkbox"/>';
}
return node;
}
},
{"data": "deviceName",width: '15%'},
{"data": "cameraName",width: '15%'},
{"data": "type1",width: '10%'},
{"data": "onlineTime",width: '10%',},
{"data": "type2",width: '15%'},
{"data": "offlineTime",width: '10%',
"render": function (data, type, row ) {
var offlineTime =row.offlineTime;
if(offlineTime==null || offlineTime==''){
return '/';
} else{
return offlineTime;
}
}
},
{"data": "onlineDuration",width: '15%',
"render": function (data, type, row) {
var dat1 =row.onlineTime;
var dat2 =row.offlineTime;
if(dat2==null || dat2==''){
var dat2=getCurrentDate();
return getTime(dat1,dat2);
} else{
return getTime(dat1,dat2);
}
}
},
],
"fnInitComplete":function () {
// 防止页面闪烁
$('.table').css('display','');
//自动调整列宽
let table = $('#dt-table').DataTable();
table.columns.adjust().draw();
},
"order": [[0, "desc"], [1, "asc"]] //在栏目列上显示排序功能
});
}
/**
* 导出数据
*/
function exportBtn() {
var id = null;
var selected = []; // 选中导出的数据
var oTable = $('#dt-table').dataTable();
var rowcollection = oTable.$(".checkall:checked", {"page": "all"});
rowcollection.each(function (index, elem) {
var checkbox_value = $(elem).val();
selected.push(checkbox_value);
});
if (selected.length == 0) {
return layer.msg("请勾选要导出的数据", {icon: 7, time: 2000});
}
id = selected.toString();
window.location.href = ctxPath + "/eventQueryDevice/exportEventQueryDevice?id=" + id + "&token=" + tokens;
}
/**
* 获得当前时间 yyyy-MM-dd
* @returns {string}
*/
function getNowTime() {
var time = new Date();
var year = time.getFullYear();
var month = time.getMonth() + 1 >= 10 ? time.getMonth() + 1 : '0' + (time.getMonth() + 1);
var day = time.getDate() >= 10 ? time.getDate() : '0' + time.getDate();
return year + "-" + month + "-" + day;
}
function getTime(dt1,dt2){
console.log("测试数据");
var regTime = /(\d{4})-(\d{1,2})-(\d{1,2})( \d{1,2}:\d{1,2})/g;
var interval = Math.abs(Date.parse(dt1.replace(regTime, "$2-$3-$1$4")) - Date.parse(dt2.replace(regTime, "$2-$3-$1$4")))/1000;
var h = Math.floor(interval / 3600);
var m = Math.floor(interval % 3600 / 60);
if(h==0){
return m+"分钟";
}
return h+'小时'+m+"分";
}
function getCurrentDate() {
var d = new Date()
var year = d.getFullYear()
var month = d.getMonth()
month = month + 1 > 12 ? 1 : month + 1
month = month > 9 ? month : '0' + month.toString()
var day = d.getDate()
var hour = d.getHours()
hour = hour > 9 ? hour : '0' + hour.toString()
var minute = d.getMinutes()
minute = minute > 9 ? minute : '0' + minute.toString()
var second = d.getSeconds()
return `${year}-${month}-${day} ${hour}:${minute}:${second}`
}