IntelligentRecognition/ah-jjsp-web/.svn/pristine/27/279778c5608ce9f739a401d3da9...

457 lines
16 KiB
Plaintext
Raw Permalink 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 currentDateParam, riskLevelParam, cityNameParam;
let form, layer, table, laydate, formSelects, orgList;
let pageNum = 1, limitSize = 50; // 默认第一页分页数量为10
let laypage;
function setParams(currentDate, riskLevel, cityName) {
if (!currentDate) {
currentDateParam = getNowTime();
} else {
currentDateParam = currentDate;
}
riskLevelParam = riskLevel;
cityNameParam = cityName;
layui.config({
base: "../../../js/layui/", //此处路径请自行处理, 可以使用绝对路径
}).extend({
formSelects: 'formSelects-v4'
}).use(['form', 'layer', 'table', 'laydate', 'formSelects', 'laypage'], function () {
form = layui.form; //只有执行了这一步,部分表单元素才会自动修饰成功
table = layui.table;
laypage = layui.laypage; //分页
layer = layui.layer;
laydate = layui.laydate;
formSelects = layui.formSelects;
initRiskType(riskLevelParam);
var times= getNowTime();
// $("#riskType option:contains("+riskLevelParam+")").prop("selected",true)
orgList = getOrgNumAndRateByWeekChild(1);
setOrg(cityNameParam);
layui.form.render();
laydate.render({
elem: '#curryDay', //指定元素 元素选择器
type: 'date', //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒)
trigger: 'click',
value: currentDateParam,
format: 'yyyy-MM-dd', //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss
btns: ['clear', 'now', 'confirm'], //选择框右下角显示的按钮 清除-现在-确定
done: function (value, date) { //时间回调
// getWeekRiskNumAjax();
}
});
// laydate.render({
// elem: '#curryDay',
// // range: ['#curryDay'],
// });
$('#planStartTime').val(currentDateParam)
$('#planEndTime').val(currentDateParam);
pages(1, 50, 1, riskLevelParam);
})
}
function pages(pageNum, pageSize, typeNum, riskLevelParam) {
let params = getReqParams(pageNum, pageSize, typeNum, riskLevelParam);
$.ajax({
headers: {
"encrypt": sm3(JSON.stringify(params))
},
url: dataUrl + "proteam/pot/home/getWeekPlanList?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, riskLevelParam)
}
} 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, riskLevelParam) {
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, riskLevelParam);
}
}
});
}
function initTable(dataList, limit, page) {
let loadingMsg = layer.msg("数据加载中,请稍候...", {icon: 16, scrollbar: false, time: 0,});
table.render({
elem: "#weekRiskTable",
id: "weekRiskTable",
height: "full-260",
data: dataList,
limit: limit,
cols: [
[
//表头
{
title: "序号", width: 80, unresize: true, align: "center", templet: function (d) {
return (page - 1) * limit + d.LAY_INDEX;
}
},
{field: "buildUnit", title: "建管单位", width: 200, unresize: true, align: "center",sort:true},
{field: "proName", title: "工程名称", width: 300, unresize: true, align: "center",sort: true},
{field: "riskType", title: "风险等级", width: 150, unresize: true, align: "center",sort: true,templet: function (d) {
return setRiskLevelColor(d.riskType);
}},
{field: "workType", title: "作业类型", width: 150, unresize: true, align: "center",sort: true,
templet: function (d) {
if (d.workType) {
if (d.workType.length > 40) {
return '<span title="' + d.workType + '">' + d.workType.substring(0, 40) + '...</span>'
} else {
return '<span title="' + d.workType + '">' + d.workType + '</span>'
}
}else{
return ''
}
}
},
{field: "workTeam", title: "作业班组", width: 200, unresize: true, align: "center",sort: true,
templet: function (d) {
if (d.workTeam) {
if (d.workTeam.length > 40) {
return '<span title="' + d.workTeam + '">' + d.workTeam.substring(0, 40) + '...</span>'
} else {
return '<span title="' + d.workTeam + '">' + d.workTeam + '</span>'
}
}else{
return ''
}
}
},
{
field: "workPosition", title: "作业部位", width: 200, unresize: true, align: "center",sort: true,
templet: function (d) {
if (d.workPosition) {
if (d.workPosition.length > 40) {
return '<span title="' + d.workPosition + '">' + d.workPosition.substring(0, 40) + '...</span>'
} else {
return '<span title="' + d.workPosition + '">' + d.workPosition + '</span>'
}
} else {
return '';
}
}
},
{
field: "workContent", title: "作业内容", width: 200, unresize: true, align: "center",sort: true,
templet: function (d) {
if (d.workContent) {
if (d.workContent.length > 40) {
return '<span title="' + d.workContent + '">' + d.workContent.substring(0, 40) + '...</span>'
} else {
return '<span title="' + d.workContent + '">' + d.workContent + '</span>'
}
}else{
return ''
}
}
},
{
field: "planStartTime", title: "计划开始时间", width: 200, unresize: true, align: "center",sort: true,
},
{
field: "planEndTime", title: "计划结束时间", width: 200, unresize: true, align: "center",sort: true,
}
],
],
done: function (res, curr, count) {
layer.close(loadingMsg);
$(".layui-laypage-skip").css("display", "none");
table.resize("weekRiskTable");
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();
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, riskLevelParam) {
var riskType = $("#riskType").val();
if (riskLevelParam && !riskType) {
riskType = riskLevelParam;
}
let obj = {};
console.log(!type)
if (!type) {
obj = {
page: page + "",
limit: limit + "",
buildUnitCode: formSelects.value('buildUnitCode', 'val').toString(),
proName: $("#proName").val(),
workType: $("#workType").val(),
workTeam: $("#workTeam").val(),
riskType: riskType,
curryDay:$("#curryDay").val(),
// planStartTime: $("#planStartTime").val(),
// planEndTime: $("#planEndTime").val()
};
} else {
obj = {
page: '1',
limit: '50',
buildUnitCode: formSelects.value('buildUnitCode', 'val').toString(),
proName: '',
workType: '',
workTeam: '',
riskType: riskType,
curryDay:currentDateParam,
// planStartTime: currentDateParam,
// planEndTime: currentDateParam
};
}
return obj;
}
// 查询/重置
function query(type) {
let pattern = new RegExp("[%_<>]");
if (pattern.test($("#proName").val())) {
$("#proName").val('');
return layer.msg('工程名称查询包含特殊字符,请重新输入', {
icon: 2,
time: 2000 //2秒关闭如果不配置默认是3秒
});
}
if (pattern.test($("#workTeam").val())) {
$("#workTeam").val('');
return layer.msg('作业班组查询包含特殊字符,请重新输入', {
icon: 2,
time: 2000 //2秒关闭如果不配置默认是3秒
});
}
let riskType = $("#riskType").val();
let buildCode = formSelects.value('buildUnitCode', 'val');
orgList = getOrgNumAndRateByWeekChild(null);
setOrg();
formSelects.value('buildUnitCode', buildCode)
pages(1, limitSize, null, riskLevelParam);
}
// 地市工程数量和占比
function getOrgNumAndRateByWeekChild(type) {
let dataList = [];
let params = getReqParams(1, 30, type, riskLevelParam);
$.ajax({
url: dataUrl + 'proteam/pot/home/getOrgNumAndRateByWeekChild?token=' + token,
headers: {
"encrypt": sm3(JSON.stringify(params))
},
data: params,
type: 'POST',
async: false,
success: function (result) {
if (result.code === 200) {
let data = result.data;
if (data && data.length > 0) {
$.each(data, function (index, item) {
dataList.push(item)
})
}
} else if (result.code === 500) {
return layer.alert(result.msg, {icon: 2})
} else {
logout(1);
}
}, error: function () {
}
});
return dataList;
}
/*建管单位赋值*/
function setOrg(cityNameParam) {
let keys = [], selBuildCode;
$.each(orgList, function (index, item) {
let temp = {
"name": item.name + "" + item.num + "" + item.rate + "",
"value": item.code,
"titleName": item.name
};
if (item.name === cityNameParam) {
selBuildCode = item.code;
}
keys.push(temp);
})
formSelects.data('buildUnitCode', 'local', {
arr: keys
});
if (selBuildCode) {
formSelects.value('buildUnitCode', [selBuildCode])
}
layui.form.render();
}
// 关闭页面
function closePage(type) {
let index = parent.layer.getFrameIndex(window.name); //先得到当前 iframe层的索引
parent.layer.close(index); //再执行关闭
}
function initRiskType(riskLevel) {
Ajax().post({
url: dataUrl + 'system/sys/selected/getDictSelected',
headers: {
"encrypt": sm3(JSON.stringify({'params': "risk_level"}))
},
data: {
params: "risk_level"
},
async: false,
success: function (data) {
var html = "";
$("#riskType").empty();
html += "<option value=''>全部</option>"
if (data != null && data.length > 0) {
for (var i = 0; i < data.length; i++) { //循环LIST
var code = data[i].id;//获取LIST里面的对象
var name = data[i].name;//获取LIST里面的对象
if (riskLevel == name) {
html += "<option value='" + code + "' selected>" + name + "</option>";
} else {
html += "<option value='" + code + "'>" + name + "</option>";
}
}
}
$("#riskType").append(html);
form.render();
}
});
}
/**
* 获得当前时间 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 exportWeekPlan(){
var time =$("#curryDay").val();
var timeData=getWeekTime(time);
console.log(timeData);
let loadingMsg = layer.msg('周计划下载中,请稍候...', {icon: 16, scrollbar: false, time: 0, offset: ['45%', '57%']});
let url = dataUrl + 'proteam/pot/home/downWeekPlan?time='+time+"&token=" + token;
let xhr = new XMLHttpRequest();
xhr.open("get", url, true);
xhr.responseType = "blob"; // 转换流
xhr.setRequestHeader("encrypt",
sm3(JSON.stringify({
time: time,
})));
xhr.onload = function () {
layer.close(loadingMsg);
if (this.status === 200) {
let blob = this.response;
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
a.href = url;
var name='周风险统计';
if(timeData!='' && timeData.code=='200'){
name=timeData.data.year+"年第"+timeData.data.week+"周周风险周风险统计("+timeData.data.startWeek+"--"+timeData.data.endWeek+")";
}
a.download = name+ ".docx"; // 文件名
} else {
layer.msg('服务异常,请稍后重试', {icon: 16, scrollbar: false, time: 2000, offset: ['45%', '57%']});
}
a.click()
window.URL.revokeObjectURL(url)
};
xhr.send();
}
function getWeekTime(time){
var resultData='';
$.ajax({
headers: {
"encrypt": sm3(JSON.stringify({time:time}))
},
url: dataUrl + "proteam/pot/home/getWeekTime?token=" + token,
data: {time:time},
type: 'POST',
async: false,
success: function (result) {
resultData=result
return resultData;
}, error: function () {
}
});
return resultData;
}
// 下载日计划
function exportDayPlan() {
var time =$("#curryDay").val();
var timeData=getWeekTime(time);
let loadingMsg = layer.msg('日计划下载中,请稍候...', {icon: 16, scrollbar: false, time: 0, offset: ['45%', '57%']});
let url = dataUrl + 'proteam/pot/home/downDayPlan?time='+time+"&token=" + token;
let xhr = new XMLHttpRequest();
xhr.open("get", url, true);
xhr.responseType = "blob"; // 转换流
xhr.setRequestHeader("encrypt",
sm3(JSON.stringify({
time: time,
})));
xhr.onload = function () {
layer.close(loadingMsg);
if (this.status === 200) {
let blob = this.response;
var a = document.createElement("a");
var url = window.URL.createObjectURL(blob);
a.href = url;
var name='日计划';
if(timeData!='' && timeData.code=='200'){
name="日计划("+timeData.data.startWeek+"--"+timeData.data.endWeek+")";
}
a.download = name+ ".docx"; // 文件名
} else {
layer.msg('服务异常,请稍后重试', {icon: 16, scrollbar: false, time: 2000, offset: ['45%', '57%']});
}
a.click()
window.URL.revokeObjectURL(url)
};
xhr.send();
}