cc-jjsp-web/bns/js/compreDisplay/dutyHome/child/dayList.js

314 lines
13 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 form, laypage, layer, table, formSelects,laydate, orgList;
let pageNum = 1, limitSize = 50; // 默认第一页分页数量为50
let riskLevelList = getRiskLevelSelect('risk_level');
let dataObj = {};
function setParams(params) {
dataObj = JSON.parse(params);
layui.config({
base: "../../../js/layui/", //此处路径请自行处理, 可以使用绝对路径
}).extend({
formSelects: 'formSelects-v4'
}).use(['form', 'layer', 'table', 'formSelects', 'laypage','laydate'], function () {
form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
table = layui.table;
layer = layui.layer;
formSelects = layui.formSelects;
laypage = layui.laypage; //分页
laydate = layui.laydate;
//日期范围
laydate.render({
elem: '#startTime',
type: 'date',
range: '~',
format: 'yyyy-MM-dd',
value: getNowTime() + ' ~ ' + getNowTime(),
max: Date.parse(new Date()),
btns:['confirm']
});
orgList = getBuildCodeSelect();
setOrg();
setRiskLevel();
$('#status').val(dataObj.status);
layui.form.render();
pages(1, 50, 1);
})
}
function pages(pageNum, pageSize, typeNum) {
let params = getReqParams(pageNum, pageSize, typeNum);
$.ajax({
headers: {
"encrypt": sm3(JSON.stringify(params))
},
url: dataUrl + "proteam/duty/child/getNewDayList?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: [50, 100, 500],
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, });
table.render({
elem: "#proTable",
id: "proTable",
height: "full-220",
data: dataList,
limit: limit,
cols: [
[
{
title: "序号", width: 80, unresize: true, align: "center", templet: function (d) {
return (page - 1) * limit + d.LAY_INDEX;
}
},
{ field: "jhbh", title: "作业计划编号", width: 250, unresize: true, align: "center"},
{ field: "gcxmmc", title: "工程项目名称", width: 200, unresize: true, align: "center"},
{ field: "bzmc", title: "班组名称", width: 180, unresize: true, align: "center"},
{ field: "fzr_mc", title: "工作负责人姓名", width: 180, unresize: true, align: "center"},
{ field: "fzr_dh", title: "工作负责人电话", width: 180, unresize: true, align: "center"},
{ field: "fzr_sfzh", title: "工作负责人身份证号", width: 230, unresize: true, align: "center"},
{ field: "jh_cyrs", title: "计划参与人数", width: 160, unresize: true, align: "center"},
{ field: "status", title: "状态", width: 120, unresize: true, align: "center",
templet: function (d) {
return '<span style="color:'+(d.status === '已执行'?'green':'red')+'">'+d.status+'</span>';
}
},
{ field: "dwfx", title: "风险等级", width: 120, unresize: true, align: "center",
templet: function (d) {
return setRiskLevelColor(d.dwfx);
}
},
{ field: "bzdwmc", title: "编制单位名称", width: 180, unresize: true, align: "center"},
{ field: "bzbmmc", title: "编制部门名称", width: 180, unresize: true, align: "center"},
{ field: "bzrmc", title: "编制人名称", width: 130, unresize: true, align: "center"},
{ field: "bzrq", title: "编制日期", width: 220, unresize: true, align: "center"},
{ field: "dydj", title: "电压等级", width: 150, unresize: true, align: "center"},
{ field: "sszy", title: "所属专业", width: 150, unresize: true, align: "center"},
{ field: "zylb", title: "专业类别", width: 150, unresize: true, align: "center"},
{ field: "gzxz", title: "工作性质", width: 150, unresize: true, align: "center"},
{ field: "gzdd", title: "工作地点", width: 250, unresize: true, align: "center"},
{ field: "gznr", title: "工作内容", width: 300, unresize: true, align: "center",
templet: function (d) {
if (d.gznr) {
if (d.gznr.length > 60) {
return '<span title="' + d.gznr + '">' + d.gznr.substring(0, 60) + '...</span>'
} else {
return '<span title="' + d.gznr + '">' + d.gznr + '</span>'
}
} else {
return '';
}
}
},
{ field: "jhkgsj", title: "计划开工时间", width: 220, unresize: true, align: "center"},
{ field: "jhwgsj", title: "计划完工时间", width: 220, unresize: true, align: "center"},
{ field: "sfbcf", title: "显示计划是否被拆分", width: 200, unresize: true, align: "center"},
{ field: "yjhbh", title: "显示主计划编号", width: 220, unresize: true, align: "center"},
{ field: "sfzdqqy", title: "是否在电气区域", width: 180, unresize: true, align: "center"},
{ field: "sftd", title: "是否停电", width: 120, unresize: true, align: "center"},
{ field: "sfxyxckc", title: "是否需要现场勘查", width: 180, unresize: true, align: "center"},
{ field: "sfyxscya", title: "是否需要三措一案", width: 180, unresize: true, align: "center"},
{ field: "bzxz", title: "班组性质", width: 120, unresize: true, align: "center"},
{ field: "sjly", title: "数据来源", width: 120, unresize: true, align: "center"},
],
],
done: function (res, curr, count) {
console.log(res);
layer.close(loadingMsg);
$(".layui-laypage-skip").css("display", "none");
table.resize("proTable");
count || this.elem.next(".layui-table-view").find(".layui-table-header").css("display", "inline-block");
count || this.elem.next(".layui-table-view").find(".layui-table-box").css("overflow", "auto");
let that = this.elem.next();
if (res.data) {
res.data.forEach(function (item, index) {
if (index % 2 === 0) {
let tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']").css('background-color', '#06182E')
} else {
let tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']").css('background-color', '#1F2F43')
}
})
}
},
});
}
// 获取参数
function getReqParams(page, limit, type) {
let obj = {};
if (!type) {
obj = {
page: page + "",
limit: limit + "",
buildCodes: formSelects.value('buildCode','val'),
riskLevels: formSelects.value('riskLevel','val'),
proName: $("#proName").val(),
status: $("#status").val(),
teamName: $("#teamName").val(),
startTime: $("#startTime").val().split(' ~ ')[0],
endTime: $("#startTime").val().split(' ~ ')[1],
};
} else {
obj = {
page: '1',
limit: '50',
buildCodes: formSelects.value('buildCode','val'),
riskLevels: formSelects.value('riskLevel','val'),
proName: $("#proName").val(),
status: $("#status").val(),
teamName: $("#teamName").val(),
startTime: $("#startTime").val().split(' ~ ')[0],
endTime: $("#startTime").val().split(' ~ ')[1],
};
}
return obj;
}
// 查询/重置
function query(type) {
if(type === 1){
const startTime = $("#startTime").val().split(' ~ ')[0],
endTime = $("#startTime").val().split(' ~ ')[1];
let flag = isOver1Days(startTime,endTime);
if(flag){
return layer.msg('查询的时间间隔不能超过1天', { icon: 2, time: 2000 });
}
}else if (type === 2) {
formSelects.value('buildCode', [])
formSelects.value('riskLevel', [])
$('#proName').val('');
$('#teamName').val('');
$('#status').val('');
$('#startTime').val(getNowTime() + ' ~ ' + getNowTime());
}
pages(1, limitSize, false);
}
/*编制单位名称赋值*/
function setOrg() {
let keys = [];
$.each(orgList, function (index, item) {
let temp = {
"name": item.name,
"value": item.code,
};
keys.push(temp);
})
formSelects.data('buildCode', 'local', {
arr: keys
});
layui.form.render();
}
/* 风险等级赋值 */
function setRiskLevel() {
let keys = [];
$.each(riskLevelList, function (index, item) {
let temp = {
"name": item.name,
"value": item.name
};
keys.push(temp);
})
formSelects.data('riskLevel', 'local', {
arr: keys
});
layui.form.render();
}
function downloadExcelDataByDayPlan(){
const startTime = $("#startTime").val().split(' ~ ')[0],
endTime = $("#startTime").val().split(' ~ ')[1];
let flag = isOver1Days(startTime,endTime);
if(flag){
return layer.msg('导出的时间间隔不能超过1天', { icon: 2, time: 2000 });
}
let params = "buildCode="+formSelects.value('buildCode','val') +
"&riskLevels="+formSelects.value('riskLevel','val') +
"&proName=" + $("#proName").val() +
"&status=" + $("#status").val() +
"&teamName=" + $("#teamName").val() +
"&startTime=" + startTime +
"&endTime=" + endTime +
"&token=" + token;
$('.export').addClass("layui-btn-disabled").attr("disabled", true);
let loadingMsg = layer.msg("数据导出中,请稍候...", { icon: 16, scrollbar: false, time: 0, });
let url = dataUrl + "proteam/duty/child/downloadExcelDataByDayPlan?"+params;
let xhr = new XMLHttpRequest();
xhr.open("get", url, true);
xhr.responseType = "blob";
xhr.setRequestHeader("encrypt","");
xhr.setRequestHeader("encryption","encryption");
xhr.onload = function () {
layer.close(loadingMsg);
$('.export').removeClass("layui-btn-disabled").attr("disabled", false);
if (this.status === 200) {
let blob = this.response;
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
a.href = url;
a.download = startTime + '~' + endTime+"日计划"+ ".xlsx"; // 文件名
} else {
layer.msg("数据发生异常,请稍后重试", { icon: 16, scrollbar: false, time: 2000 });
}
a.click();
window.URL.revokeObjectURL(url);
};
xhr.send();
}
// 关闭页面
function closePage(type) {
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
parent.layer.close(index); //再执行关闭
}
function isOver1Days(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 >= 1;
}