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 '' + d.workType.substring(0, 40) + '...' } else { return '' + d.workType + '' } }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 '' + d.workTeam.substring(0, 40) + '...' } else { return '' + d.workTeam + '' } }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 '' + d.workPosition.substring(0, 40) + '...' } else { return '' + d.workPosition + '' } } 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 '' + d.workContent.substring(0, 40) + '...' } else { return '' + d.workContent + '' } }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 += "" 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 += ""; } else { html += ""; } } } $("#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(); }