gs-jjsp-web/bns/js/dutyTask/dutySituationStatistics2.js

698 lines
20 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.

/*
let table,orgList,formSelects;
let deviceTable;
let form;
let per;
let laypage,laydate;
let user = getUser(), checkedDate = getNowTime();
let pageNum = 1, limitSize = 30; // 默认第一页分页数量为10
layui.config({
base: "../../js/layui/", //此处路径请自行处理, 可以使用绝对路径
}).extend({
formSelects: 'formSelects-v4'
}).use(['layer', 'form', 'element','formSelects','laypage','laydate'], function(){
formSelects = layui.formSelects;
var layer = layui.layer; //弹层
laypage = layui.laypage; //分页
table = layui.table; //表格
laydate = layui.laydate;
form=layui.form;
orgList = getOrgSelect();
/!* laydate.render({
elem: '#warnDay', //指定元素 元素选择器
type: 'date', //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
trigger: 'click',
format: 'yyyy-MM-dd', //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
btns: ['clear', 'now', 'confirm'], //选择框右下角显示的按钮 清除-现在-确定
done: function (value, date) { //时间回调
}
});*!/
//日期范围
laydate.render({
elem: '#warnDay',
type: 'date',
range: '~',
format: 'yyyy-MM-dd',
value: getCurrentWeekRange()
});
/!* $("#warnDay").val(checkedDate)*!/
if(user.nickName!='zhangyn' && user.nickName!='!jysp' && user.nickName!='wb_zhux4635'){
$("#delbtn").css("display","none");
}
//注册权限
pages(1, 30, 1);
$(".layui-refresh").click(function(){
refresh("");
})
$(".layui-cz").click(function(){
refreshDevice("");
})
$("#query").off().click(function(){
pages(1, limitSize,false);
return ;
})
$("#export").off().click(function(){
exportEarlyWarn();
return ;
})
//重置
$("#reset").off().click(function(){
$("#warnDay").val(checkedDate)
pages(1, limitSize,true);
})
$(".layui-del").click(function(){
//删除
var checkStatus = table.checkStatus('deviceTable'); // yourTableId 是表格容器的id
var data = checkStatus.data; // 获取选中行的数据
let delId=[];
for (var i = 0; i < data.length; i++) {
delId.push(data[i].id)
}
layer.msg('确定删除该预警?', {
time: 10000, //10s后自动关闭
btn: ['确定', '取消']
,yes: function(index,leyuo){
layer.closeAll();
delData(delId.join("@"));
}
});
})
//查询按钮
})
function pages(pageNum, pageSize, typeNum) {
let params = getReqParams(pageNum, pageSize, typeNum);
$.ajax({
headers: {
"encrypt": sm3(JSON.stringify(params))
},
url: dataUrl+'proteam/pot/todayTask/getWarnPageList?token='+token,
data: params,
type: 'POST',
async: false,
success: function (result) {
if (result.code === 200) {
if (result.data) {
initTable(result.data, result.limit, result.curr)
laypages(result.count, result.curr, result.limit)
}
} else if (result.code === 500) {
layer.alert(result.msg, {icon: 2})
} else if (result.code === 401) {
logout(1);
}
}, error: function () {
}
});
}
function laypages(total, page, limit) {
laypage.render({
elem: 'voi-page',
count: total,
curr: page,
limit: limit,
limits: [30,50,100],
layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'],
groups: 5,
jump: function (obj, first) {
if (!first) {
pageNum = obj.curr, limitSize = obj.limit;
pages(obj.curr, obj.limit, null);
}
}
});
}
// 获取参数
function getReqParams(page, limit, type) {
let obj = {};
if (!type) {
obj = {
page: page + "",
limit: limit + "",
keyWord:$("#keyWord").val(),
warnDay:$("#warnDay").val(),
handle:$("#handle").val(),
org:formSelects.value('buildCode', 'val').toString()
};
} else {
obj = {
page: '1',
limit: '30',
keyWord:"",
warnDay:$("#warnDay").val(),
handle:"",
gbCode:"",
org:''
};
}
return obj;
}
function exportEarlyWarn(){
let loadingMsg = layer.msg("数据导出中,请稍候...", {icon: 16, scrollbar: false, time: 0,});
let url = dataUrl + "proteam/pot/early/exportEarlyWarn?" + getParam()+'&token='+token;
let xhr = new XMLHttpRequest();
let a = document.createElement("a");
xhr.open("get", url, true);
xhr.responseType = "blob"; // 转换流
xhr.setRequestHeader("encrypt",sm3(JSON.stringify(getParames())));
xhr.setRequestHeader("encryption","encryption");
xhr.onload = function () {
layer.close(loadingMsg);
if (this.status === 200) {
let url = window.URL.createObjectURL(new Blob([this.response]))
let link = document.createElement('a')
link.style.display = 'none'
link.href = url
link.setAttribute('download', "预警任务.xlsx")
document.body.appendChild(link)
link.click()
// 释放URL对象所占资源
window.URL.revokeObjectURL(url)
// 用完即删
document.body.removeChild(link)
} else {
layer.msg("数据发生异常,请稍后重试", {icon: 16, scrollbar: false, time: 2000});
}
};
xhr.send();
}
function getParam(){
var params="keyWord="+$("#keyWord").val()+"&warnDay="+$("#warnDay").val()+"&handle="+$("#handle").val()
+"&org="+formSelects.value('buildCode', 'val').toString()
return params;
}
//初始化表格
function initTable(dataList, limit, page) {
// 执行一个 table 实例
deviceTable=table.render({
id:'deviceTable',
elem: '#device-table',
height: "full-250",
data: dataList,
limit: limit,
title: '设备表',
cols: [[ //表头
{type: 'checkbox', fixed: 'left'},
{title: "序号", width: 80, align: "center", templet: function (d) {
return (page - 1) * limit + d.LAY_INDEX;
}
}
,{field: 'warnType', title: '告警内容', width:200,align:'center'}
,{field: 'cityName', title: '组织机构', width: 200,align:'center'}
,{field: 'proName', title: '工程名称', width: 200,align:'center'}
,{field: 'riskLevel', title: '风险等级', width: 200,align:'center',templet:function(d){
return setRiskLevelColor(d.riskLevel);
}}
,{field: 'userName', title: '督查人', width: 200,align:'center'}
,{field: 'userName', title: '值班人', width: 200,align:'center'}
,{field: 'handle', title: '是否核实', width:210,align:'center', templet:function(d){
if(d.handle==1){
return '已核实';
}else{
return '未核实';
}
} }
,{field: 'isHl', title: '是否符合', width:210,align:'center', templet:function(d){
if(d.isHl){
if(d.isHl==1){
return '符合';
}else if(d.isHl==2){
return '不符合';
}else{
return '--';
}
}else{
return '--';
}
} }
,{field: 'handleUser', title: '核实人', width: 200,align:'center'}
,{field: 'openTime', title: '开始处理时间', width:250,align:'center'}
,{field: 'handleTime', title: '核实时间', width:250,align:'center'}
,{field: 'handelRemark', title: '备注', width:250,align:'center'}
// ,{fixed: 'right', title: '操作', width: 200,align:'center', toolbar: '#device-bar'}
]],
done:function (res,curr,count){
}
});
}
//删除数据
function delData(keyId){
$.ajax({
type:'post',
url: dataUrl + 'proteam/pot/early/delWarnInfo',
headers: {
"encrypt": sm3(JSON.stringify({'keyId':keyId}))
},
data: {
keyId:keyId
},
async : true,
success : function(data) {
pages(1, limitSize,false);
if(data.code=='200') {
layer.msg(data.msg, {
icon: 1,
time: 2000 //2秒关闭如果不配置默认是3秒
});
}else{
layer.msg(data.msg, {
icon: 2,
time: 2000 //2秒关闭如果不配置默认是3秒
});
}
}
});
}
function query() {
const startTime = $("#warnDay").val().split(' ~ ')[0],
endTime = $("#warnDay").val().split(' ~ ')[1];
let flag = isOver31Days(startTime,endTime);
if(flag){
return layer.msg('查询的时间间隔不能超过31天', { icon: 2, time: 2000 });
}
pages(1, limitSize,false);
}
function isOver31Days(dateStr1, dateStr2) {
// 将字符串日期转换为Date对象
const date1 = new Date(dateStr1);
const date2 = new Date(dateStr2);
// 计算两个日期的时间差(毫秒)
const timeDiff = Math.abs(date2.getTime() - date1.getTime());
// 将毫秒转换为天数1天 = 24 * 60 * 60 * 1000毫秒
const dayDiff = timeDiff / (1000 * 60 * 60 * 24);
// 判断是否超过1天
return dayDiff > 31;
}
function reloadTable(pageNum,limitSize){
pages(pageNum, limitSize,false);
// var curr = deviceTable.config.page.curr;
// var limit = deviceTable.config.limit
// table.reload('deviceTable', {
// page: {
// curr: curr //重新从第 1 页开始
// ,limit:limit
// }
//
// })
}
function getOrgSelect() {
let keys = [];
$.ajax({
headers: {
"encrypt": sm3(JSON.stringify({}))
},
url: dataUrl + 'proteam/pot/team/getOrgSelected' + '?token=' + token,
type: 'post',
success: function (data) {
$.each(data.data, function (index, item) {
let temp = {
"name": item.name,
"value": item.code
};
keys.push(temp);
})
formSelects.data('buildCode', 'local', {
arr: keys
});
layui.form.render();
}
});
}
function getParames(){
var params={
deviceName:$("#deviceName").val(),
macId:$("#macId").val(),
gbCode:$("#gbCode").val(),
typeCode:$("#typeCode").val(),
ssdw:$("#ssdw").val(),
ist:$("#ist").val(),
tName:$("#tName").val(),
tCode:$("#tCode").val(),
keyWord:$("#keyWord").val(),
}
return params;
}
// 弹出模态框
function centerModals() {
$('#myModal_edit').each(function (i) {
var $clone = $(this).clone().css('display', 'block').appendTo('body');
var top = Math.round(($clone.height() - $clone.find('.modal-content').height()) / 3);
top = top > 0 ? top : 0;
$clone.remove();
$(this).find('.modal-content').css("margin-top", top);
});
};
function setOrg() {
let keys = [];
$.each(orgList, function (index, item) {
let temp = {
"name": item.name,
"value": item.code,
"titleName": item.name
};
keys.push(temp);
})
formSelects.data('buildCode', 'local', {
arr: keys
});
layui.form.render();
}
*/
let form, layer, table, tableIns, laydate, formSelects;
let pageNum = 1, limitSize = 10; // 默认第一页分页数量为20
let user = getUser();
let dataObj = {}, orgList = [];
function setParams(params) {
console.error(params)
dataObj = JSON.parse(params);
layui.config({
base: "../../js/layui/", //此处路径请自行处理, 可以使用绝对路径
}).extend({
formSelects: 'formSelects-v4'
}).use(['form', 'layer', 'table', 'laydate', 'formSelects'], function () {
form = layui.form;
formSelects = layui.formSelects;
laydate = layui.laydate;
layer = layui.layer;
table = layui.table;
//日期范围
laydate.render({
elem: '#warnDay',
type: 'date',
range: '~',
format: 'yyyy-MM-dd',
value: dataObj.startTime
});
orgList = getOrgSelect();
setOrg();
pages(1, 10, 1);
})
}
function pages(pageNum, pageSize, typeNum) {
let params = getReqParams(pageNum, pageSize, typeNum);
$.ajax({
url: dataUrl + 'proteam/pot/todayTask/getWarnPageList?token=' + token,
data: params,
type: 'POST',
async: false,
success: function (result) {
if (result.code === 200) {
if (result.data) {
initTable(result.data, result.limit, result.curr)
laypages(result.count, result.curr, result.limit)
}
} else if (result.code === 500) {
layer.alert(result.msg, {icon: 2})
} else if (result.code === 401) {
logout(1);
}
}, error: function () {
}
});
}
function laypages(total, page, limit) {
layui.use(['laypage'], function () {
let laypage = layui.laypage;
laypage.render({
elem: 'voi-page',
count: total,
curr: page,
limit: limit,
limits: [10, 20, 50, 100],
layout: ['prev', 'page', 'next', 'skip', 'count', 'limit'],
groups: 5,
jump: function (obj, first) {
if (!first) {
pageNum = obj.curr, limitSize = obj.limit;
pages(obj.curr, obj.limit, null);
}
}
});
})
}
/*初始化表格*/
function initTable(dataList, limit, page) {
let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: false, time: 0,});
tableIns = table.render({
id: 'todayTaskTable',
elem: "#todayTaskTable",
height: "full-150",
data: dataList,
cols: [
[
{
title: "序号",
width: '5%',
unresize: true,
align: "center",
templet: function (d) {
return (page - 1) * limit + d.LAY_NUM;
}
},
{
field: "warnType",
title: "告警内容",
width: '15%',
unresize: false,
align: "center",
},
{
field: 'cityName',
title: '组织机构',
width: '15%',
unresize: false,
align: "center",
},
{
field: "proName",
title: "工程名称",
width: '10%',
unresize: false,
align: "center",
},
{
title: "风险等级",
width: '10%',
unresize: false,
align: "center",
templet: function (d) {
return setRiskLevelColor(d.riskLevel);
}
},
{
field: 'userName',
title: '督查人',
width: '10%',
unresize: false,
align: "center",
},
{
field: 'schedulingName',
title: '值班人',
width: '10%',
unresize: false,
align: "center",
},
{
title: '是否核实',
width: '10%',
unresize: false,
align: "center",
templet: function (d) {
if (d.handle == 1) {
return '已核实';
} else {
return '未核实';
}
}
},
{
title: '是否符合',
width: '10%',
unresize: false,
align: "center",
templet:function(d){
if(d.isHl){
if(d.isHl==1){
return '符合';
}else if(d.isHl==2){
return '不符合';
}else{
return '--';
}
}else{
return '--';
}
}
},
{
field: 'handleUser', title: '核实人',
width: '10%',
unresize: false,
align: "center",
},
{
field: 'openTime', title: '开始处理时间',
width: '10%',
unresize: false,
align: "center",
},
{
field: 'handleTime', title: '核实时间',
width: '10%',
unresize: false,
align: "center",
},
{
field: 'handelRemark', title: '备注',
width: '10%',
unresize: false,
align: "center",
},
]
],
limit: limit,
done: function (res, curr, count) {
layer.close(loadingMsg);
},
});
}
// 获取参数
function getReqParams(page, limit, type) {
let obj = {};
if (!type) {
obj = {
page: page + "",
limit: limit + "",
org: formSelects.value('buildCode', 'val').toString(),
keyWord: $('#keyWord').val(),
warnDay: $('#warnDay').val(),
handle: $('#handle').val(),
schedulingName: dataObj.userName,
userId: user.userId,
};
} else {
obj = {
page: 1,
limit: limit,
org: '',
keyWord: '',
warnDay: $('#warnDay').val(),
handle: '',
schedulingName: dataObj.userName,
roleType: user.isSup,
userId: user.userId,
};
}
return obj;
}
// 查询
function query() {
const startTime = $("#warnDay").val().split(' ~ ')[0],
endTime = $("#warnDay").val().split(' ~ ')[1];
let flag = isOver31Days(startTime, endTime);
if (flag) {
return layer.msg('查询的时间间隔不能超过31天', {icon: 2, time: 2000});
}
pages(1, limitSize);
}
function isOver31Days(dateStr1, dateStr2) {
// 将字符串日期转换为Date对象
const date1 = new Date(dateStr1);
const date2 = new Date(dateStr2);
// 计算两个日期的时间差(毫秒)
const timeDiff = Math.abs(date2.getTime() - date1.getTime());
// 将毫秒转换为天数1天 = 24 * 60 * 60 * 1000毫秒
const dayDiff = timeDiff / (1000 * 60 * 60 * 24);
// 判断是否超过1天
return dayDiff > 31;
}
// 审核
function auditData(obj, type) {
layer.confirm('确定' + (type === 0 ? '通过' : '驳回') + '吗?', function () {
let loadingMsg = layer.msg('数据保存中,请稍等...', {icon: 16, shade: 0.01, time: '0'});
let url = dataUrl + "proteam/pot/reportBackups/updateDailyStatus";
let params = {id: obj.id, storeStatus: type};
ajaxRequest2(url, "POST", params, true, function (result) {
layer.close(loadingMsg); // 关闭提示层
if (result.code === 200) {
parent.layer.msg(result.msg, {icon: 1})
query(1);
parent.getApplyBackDataNum();
} else {
layer.msg(result.msg, {icon: 2})
}
}, function (xhr) {
layer.close(loadingMsg); // 关闭提示层
error(xhr)
}, null, token);
})
}
function setOrg() {
let keys = [];
$.each(orgList, function (index, item) {
let temp = {
"name": item.name,
"value": item.code,
"titleName": item.name
};
keys.push(temp);
})
formSelects.data('buildCode', 'local', {
arr: keys
});
layui.form.render();
}