let form, layer, table, tableIns, laydate, formSelects, orgList, proStatusList; let pageNum = 1, limitSize = 50; // 默认第一页,分页数量为10 let dataParamType="1"; let user = getUser(),riskLevelList; let thisParam; // 创建一个循环定时任务,每2秒执行一次 let intervalId; layui.config({ base: "../../js/layui/", //此处路径请自行处理, 可以使用绝对路径 }).extend({ formSelects: 'formSelects-v4' }).use(['form', 'layer', 'table', 'laydate', 'formSelects'], function () { form = layui.form; layer = layui.layer; table = layui.table; laydate = layui.laydate; formSelects = layui.formSelects; laydate.render({ elem: '#workDay', //指定元素 元素选择器 type: 'date', //选择时间类型 可选值:year(年) month(年月) date(年月日) time(时分秒) datetime(年月日时分秒) trigger: 'click', range: true, format: 'yyyy-MM-dd', //时间格式 常用时间格式:yyyy-MM-dd HH:mm:ss max: Date.parse(new Date()), btns: ['now', 'confirm'], //选择框右下角显示的按钮 清除-现在-确定 }); checkedDate = getNowTime(); $('#workDay').val(getNowTime() + " - " + getNowTime()); orgList = getOrgNumAndRate(1); riskLevelList = getRiskLevelSelect('risk_level'); proStatusList = getRiskLevelSelect('work_status'); setProStatus(); setRiskLevel(); setOrg(); getBallError(); getDutyTaskData(); getDisData(); let timeOpen; let setTimeNum=5; let setTimes=getRiskLevelSelect('set_times'); if(setTimes && setTimes.length>0){ for (var i = 0; i < setTimes.length; i++) { if(setTimes[i].id=='time_open'){ timeOpen=setTimes[i].name; }else if(setTimes[i].id=='times_num'){ setTimeNum=setTimes[i].name; } } if(timeOpen=='true'){ setTimeNum=parseInt(setTimeNum); intervalId = setInterval(function() { console.log("定时任务开始执行-->") getBallError(); }, 1000*60*setTimeNum); } } if(user.isSup==3){ dataParamType=2; getTodayWarnInfo(2); }else{ getTodayWarnInfo(1); } pages(1, 50, 1); }) // 查询/重置 function query(type) { if (type == '1') { pages(1, limitSize, false) } else { $('#keyWord').val(""); formSelects.value('riskLevel', []); $('#workDay').val(getNowTime() + " - " + getNowTime()); setProStatus(); setOrg(); pages(1, limitSize, true) } } function pages(pageNum, pageSize, typeNum) { let params = getReqParams(pageNum, pageSize, typeNum); $.ajax({ /* headers: { "encrypt": sm3(JSON.stringify(params)) }, */ url: dataUrl + "proteam/pot/newduty/getPageList?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 menuAction(type){ $.ajax({ headers: { "Authorization":token }, url: dataUrl + 'proteam/pot/todayTask/addClassTopOne', data: { "type":type, "classId":thisParam }, type: 'POST', async: true, success: function (result) { $('#contextMenu').hide(); $('#contextMenu1').hide(); $('#contextMenu2').hide(); //query(1) }, error: function (e) { } }); } 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: [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 initTable(dataList, limit, page) { let loadingMsg = layer.msg("数据加载中,请稍候...", { icon: 16, scrollbar: false, time: 0, }); tableIns = table.render({ elem: "#todayTaskTable", height: "full-195", data: dataList, cols: [ [ //表头 { title: "序号", width: 70, unresize: true, align: "center", templet: function (d) { return (page - 1) * limit + d.LAY_NUM; } }, { field: "warnInfo", title: "预警信息", width: 175, sort: true, unresize: false, align: "center", templet: function (d) { return setWarnInfo(d.warnInfo); } }, { field: "orgName", title: "建管单位", width: 155, sort: true, unresize: false, align: "center", templet: function (d) { let html = '
'; if(d.collectiveUnit === 1){ // 是集体企业 html += ''; html += '

'+d.orgName+'

'; }else{ html += '

'+d.orgName+'

'; } html +='
' return html; } }, { field: "riskLevel", title: "风险等级", width: 115, sort: true, unresize: false, align: "center", templet: function (d) { return setRiskLevelColor(d.riskLevel); } }, { field: "bidName", title: "标段工程名称", width: 160, unresize: false, sort: true, align: "center", }, { field: "sgStatus", title: "施工状态", width: 115, unresize: false, sort: true, align: "center", templet: function (d) { let html = '
'; if(d.proType === '1' || d.proType === '3'){ // 变电 html += ''; html += '

'+d.sgStatus+'

'; }else if(d.proType === '2'){ // 线路 html += ''; html += '

'+d.sgStatus+'

'; }else{ html += '

'+d.sgStatus+'

'; } html += '
'; return html; } }, { title: "班组长", field: "bzzName", width: 130, unresize: false, sort: true, align: "center", templet: function (d) { return '

' + setValue2(d.bzzName) + '

' + setValue2(d.bzzPhone) + '

' } }, { title: "球机状态", field: "ballStatus", width: 115, unresize: false, sort: true, align: "center", templet: function (d) { let html = ''; if (d.ballStatus != null) { if (d.ballStatus === '1') { html += '' } else { html += '' } }else if(d.tcode!=null && d.tcode!=''){ html += '' } return html; } }, { field: "isPj", title: "评价状态", width: 115, unresize: false, sort: true, align: "center", templet: function (d) { if (d.isPj === '0') { return '' } else if (d.isPj === '1') { return '' } return ''; } }, { field: "isXs", title: "巡视状态", width: 115, unresize: false, sort: true, align: "center", templet: function (d) { if (d.isXs === '0') { return '未巡视' } else if (d.isXs === '1') { return '已巡视' } return ''; } }, ], ], limit: limit, done: function (res, curr, count) { layer.close(loadingMsg); /* var that = this.elem.next(); //循环遍历返回数据中的data res.data.forEach(function (item, index) { //在获取到的DOM元素中找到data-index属性等于当前index的行 var tr = that.find(".layui-table-box tbody tr[data-index='" + index + "']"); //设置该行颜色 // tr.css("background-color", setTrBackgroundColor(item.riskLevel)); }); */ }, }); table.on("rowDouble(todayTask)", function (res) { let obj = res.data; console.log(res.data) openRemotePatrol(obj.classId, obj.puid, obj.tcode, obj.bidNo,obj.riskLevel); }); // 为表格的每一行添加鼠标右击事件 $(document).on('contextmenu', '.layui-table-view .layui-table-body table tr', function(e) { e.preventDefault(); // 阻止默认的右键菜单显示 var index = $(this).data('index'); // 获取当前行的索引(如果需要) var data = table.cache['todayTaskTable'][index]; // 获取当前行的数据(如果需要) console.log(data); thisParam=data.classId; sortNum=data.sortNum; let dataId='contextMenu'; if(sortNum==='100'){ dataId='contextMenu1'; }else if(sortNum==='0'){ dataId='contextMenu'; }else if(sortNum==='-100'){ dataId='contextMenu2'; } $('#contextMenu').hide(); $('#contextMenu1').hide(); $('#contextMenu2').hide(); $('#'+dataId).css({ display: 'block', left: e.pageX, top: e.pageY }); return false; // 例如,显示一个自定义的右键菜单等操作 }); // 点击文档其他地方隐藏菜单 $(document).on('click', function(){ $('#contextMenu').hide(); $('#contextMenu1').hide(); $('#contextMenu2').hide(); }); } // 获取参数 function getReqParams(page, limit, type) { let obj = {}; if (!type) { obj = { page: page + "", limit: limit + "", times: setValue2($('#workDay').val()), orgId: setValue2(formSelects.value('buildCode', 'val').toString()), sgStatus: setValue2(formSelects.value('proStatus', 'val').toString()), riskLevel: setValue2(formSelects.value('riskLevel', 'val').toString()), keyWord: setValue2($("#keyWord").val()), currentUserId: user.userId + '', isSup: user.isSup, currentUserOrgId: user.orgId }; } else { obj = { page: '1', limit: '50', times: getNowTime() + " - " + getNowTime(), orgId: '', sgStatus: '', keyWord: '', riskLevel: '', currentUserId: user.userId + '', isSup: user.isSup, currentUserOrgId: user.orgId }; } return obj; } /*打开远程巡视页面*/ function openRemotePatrol(id, puid, tCode, bidNo,riskLevel) { if (user.isSup !== '3' && !isFourRisk(riskLevel)) { addSuper(id, "1"); }else if(user.isSup !== '3' && isFourRisk(riskLevel)){ addSuper(id, "3"); } let layerIndex = layer.open({ id: "remotePatrol", title: false, type: 2, maxmin: false, content: 'remotePatrol/remotePatrol.html', area: ['100%', '100%'], closeBtn: 0, success: function (layero, index) { let iframeWin = window["layui-layer-iframe" + layerIndex]; iframeWin.setParams(id, puid, tCode, user.isSup, 1, bidNo); }, end: function () { if (user.isSup !== '3' && !isFourRisk(riskLevel)) { addSuper(id, "2"); } reloadData(); getDutyTaskData(); getDisData(); getTodayWarnInfo(dataParamType); } }); } /*添加督查时间*/ function addSuper(classId, type) { let params = { classId: classId, type: type } $.ajax({ headers: { "encrypt": sm3(JSON.stringify(params)) }, url: dataUrl + 'proteam/pot/supervision/insertSupervision?token=' + token, data: params, type: 'POST', async: true, success: function (result) { }, error: function () { } }); } // 获取分配任务数量 function getDutyTaskData() { let params = { currentUserId: user.userId + '', isSup: user.isSup, currentUserOrgId: user.orgId } $.ajax({ headers: { "encrypt": sm3(JSON.stringify(params)) }, url: dataUrl + 'proteam/pot/newduty/getAllTask?token=' + token, data: params, type: 'POST', async: true, success: function (result) { setDutyTaskAndDisData(1, result); }, error: function () { } }); } let zygx=[]; // 获取违章数量 function getDisData() { let params = { currentUserId: user.userId + '', isSup: user.isSup, currentUserOrgId: user.orgId } $.ajax({ headers: { "encrypt": sm3(JSON.stringify(params)) }, url: dataUrl + 'proteam/pot/newduty/getDutyWz?token=' + token, data: params, type: 'POST', async: true, success: function (result) { setDutyTaskAndDisData(2, result); }, error: function () { } }); } // 获取预警信息 function getTodayWarnInfo(dataTypeParam) { let params = { currentUserId: user.userId + '', isSup: user.isSup, currentUserOrgId: user.orgId, dataType: dataTypeParam } $.ajax({ headers: { "encrypt": sm3(JSON.stringify(params)) }, url: dataUrl + 'proteam/pot/early/getTodayWarnInfo?token=' + token, data: params, type: 'POST', async: true, success: function (result) { myChart12.dispose(); myChart12 = echarts.init(document.getElementById('echarts-one1')); initEchartsOne1(percentage(result.data.clNum, result.data.allNum)); setEarlyWarnInfo(result.data.data); } }); } function getBallError(){ $.ajax({ url: dataUrl + 'proteam/pot/early/getBallErrNum?token=' + token, type: 'POST', async: true, success: function (result) { console.log(result.data); $("#bzx").text(result.data.bzx); $("#wbd").text(result.data.wbd); } }); } // 值班进度赋值 function setDutyTaskAndDisData(type, data) { if (type === 1) { myChart.dispose(); myChart = echarts.init(document.getElementById('echarts-one')); // 分配任务数量赋值 $('#taskNum').html(data.taskNum); $('#xsNum').html(data.xsNum); $('#hsNum').html(data.heNum); $('#wsgNum').html(data.wsgNum); $('#wxsNum').html(data.wxsNum); $('#hisNum').html(data.hisNum); initEchartsOne(percentage(data.xsNum, data.taskNum)); } else if (type === 2) { myChart2.dispose(); myChart2 = echarts.init(document.getElementById('echarts-two')); // 违章数量赋值 $('.wzNum').html(data.wzNum); $('#yzgNum').html(data.yzgNum); $('#wzgNum').html(data.wzgNum); initEchartsTwo(percentage(data.wzNum, data.taskNum)); } } // 两数相除取百分比%并保留两位小数 function percentage(number1, number2) { if (number2 == 0) { return 0; } // 小数点后两位百分比 return (Math.round(number1 / number2 * 10000) / 100.00); } // 预警信息赋值 function setWarnInfo(val) { let html = ''; if (val) { let valArr = val.split(','); $.each(valArr, function (index, item) { if (item) { var itemss = item.split("@"); if (itemss.length > 1) { html += setWarnInfoIcon(itemss[0]); } else { html += setWarnInfoIcon(item); } } }) } else { html = setWarnInfoIcon(null); } return html; } // 预警信息图标设置 function setWarnInfoIcon(value) { if (value === '高风险') { return ''; } else if (value === '工序变化') { return '' } else if (value === '关键点措施照片不足') { return '' } else if (value === '作业类型变化') { return '' } else if (value === '作业人数变化大') { return '' } else if (value === '球机信号弱') { return '' }else if (value === '早收工') { return '' } else if (value === '晚开工') { return '' } else if (value === '球机时长不足') { return '' } return '' } // 左侧预警信息赋值 function setEarlyWarnInfo(result) { let html = ''; let html2 = ''; let zygx=[]; if (result && result.length > 0) { let jj=1; $.each(result, function (index, item) { var handleId = item.handleId; var cl= ''; if(handleId){ cl= 'style="background-color:#c0c4cc"'; }else{ cl= ''; } html2 += '
  • ' + '
    '+(jj)+'.
    ' + '
    ' + '

    工程名称:' + item.proName + '

    ' + '

    风险等级:' + setRiskLevelColor(item.riskLevel) + '

    ' + '

    班组长:' + item.fzrName +"-"+NulltoStr(item.teamPhone)+ '

    ' + '

    预警类型:' + item.warnType + '

    ' + '
    ' + '
    ' + setHandleStatus(item) + '
    ' + '
  • '; jj++; }) } else { html = '
  • 无数据
  • '; } $('.myscroll ul').empty().append(html2+html); } function setHandleStatus(obj) { let warnType=obj.type; let warnId=obj.id; let isOrg =NulltoStr(obj.isOrg); let handleId =NulltoStr(obj.handleId); let auditStatus=NulltoStr(obj.auditStatus); return getBiutton(warnId,handleId,warnType,auditStatus,isOrg); } function getBiutton(warnId,handleId,warnType,auditStatus,isOrg){ if(handleId){ if(auditStatus=='1'){ return '已审核' }else if(auditStatus=='2'){ return '已驳回' }else{ return '已处理' } }else{ return '未处理' } } function NulltoStr(data){ if(data==null || data=='null' || data=='NULL'){ return ''; } return data; } function getOrgNumAndRate(type) { let dataList = []; $.ajax({ headers: { "encrypt": sm3(JSON.stringify('')) }, url: dataUrl + 'proteam/pot/todayTask/getOrgNumAndRate?token=' + token, data: { workDay: getNowTime() + " - " + getNowTime(), currentUserId: user.userId + '', isSup: user.isSup, currentUserOrgId: user.orgId }, type: 'POST', async: false, success: function (result) { let data = result.data; if (result.code === 500) { return layer.alert(data.msg, { icon: 2 }) } else if (result.code === 401) { logout(1); } else if (result.code === 200) { if (data && data.length > 0) { $.each(data, function (index, item) { dataList.push(item) }) } } }, error: function () { } }); return dataList; } function setOrg() { let keys = []; $.each(orgList, function (index, item) { let temp = { "name": item.name + "(" + item.num + "," + item.rate + ")", "value": item.code, "titleName": item.name }; keys.push(temp); }) formSelects.data('buildCode', 'local', { arr: keys }); layui.form.render(); } /* 施工状态赋值 */ function setProStatus() { let keys = []; $.each(proStatusList, function (index, item) { let temp = { "name": item.name, "value": item.id }; keys.push(temp); }) formSelects.data('proStatus', 'local', { arr: keys }); layui.form.render(); } // 打开评价状态页面 function openEvalStatus(classId, idNumber, teamName, teamId,type) { console.log(teamId); if (type === 1) { // 新增评价页面 let width = '1075px', height = '725px'; layer.open({ title: ['
    班组评价
    ', 'font-size:16px;background-color:#f0f0f0;display: flex;align-items: center;'], type: 2, content: '../../html/teamInformation/child/teamEvaluateAdd.html', area: [width, height], maxmin: false, move: false, success: function (layero, index) { let body = layer.getChildFrame('body', index); let iframeWin = window[layero.find('iframe')[0]['name']];//获得iframe页的窗口对象,执行iframe页的方法: iframeWin.setForm(classId, idNumber, teamName,teamId);//调用子页面的方法,页面锁定 }, end: function () { reloadData(); getDutyTaskData(); getDisData(); getTodayWarnInfo(dataParamType); } }); } else if (type === 2) { // 评价记录页面 let layerIndex = layer.open({ id: "teamEvaluateByClass", title: false, type: 2, maxmin: false, content: '../teamInformation/child/teamEvaluate.html', area: ['100%', '100%'], closeBtn: 0, success: function (layero, index) { let iframeWin = window["layui-layer-iframe" + layerIndex]; iframeWin.setForm(classId, idNumber, teamName,teamId, 2); } }); } } function reloadData() { pages(pageNum, limitSize, false); } function opendata(warnId,handelId,warnType,isOrg) { let height='40%' //已处理的 if(handelId){ //是否是地市处理的 if(isOrg==1 || isOrg=='1'){ if(warnType===3 || warnType==='3'){ height='70%' }else{ height='65%' } }else{ if(warnType===3 || warnType==='3'){ height='55%' }else{ height='45%' } } }else{ //未处理的 if(warnType===3 || warnType==='3'){ height='45%' } } layer.open({ title: '告警处置', type: 2, area: ['30%', '80%'], content: '../../html/earlyWarning/warnSure.html', cancel: function () { }, btn: ['确定', '取消'],//只是为了演示 success: function (layero, index) { var body = layer.getChildFrame('body', index); var iframeWin = window[layero.find('iframe')[0]['name']];//获得iframe页的窗口对象,执行iframe页的方法: iframeWin.setForm(warnId,user.isSup);//调用子页面的方法,页面锁定 } , yes: function (index, leyuo) { var body = layer.getChildFrame('body', index); body.find('#add-data').click(); } , btn2: function () { layer.closeAll(); } }); } function reloadTable() { getTodayWarnInfo(dataParamType); getDutyTaskData(); getDisData(); } // 根据风险等级颜色-来设置每一行的颜色 function setTrBackgroundColor(value) { if (value === '2') { return '#dd690b80' } else if (value === '3') { return '#ffe91f80' } else if (value === '4') { return '#2aa99880' } else if (value === '5') { return '#70e18080' } } // 违章信息 function openNewDetail2() { parent.openNewTab('../dutyTask/violationStatistics.html', '19', '违章统计') } function setRiskLevel() { let keys = []; $.each(riskLevelList, function (index, item) { let temp = { "name": item.name, "value": item.code }; keys.push(temp); }) formSelects.data('riskLevel', 'local', { arr: keys }); layui.form.render(); } // 地市预警和值班预警选中 1.值班预警 2.地市预警 $(".switch-type").click(function (e) { $('.switch-type').each(function () { if ($(this).hasClass('check-p')) { $(this).removeClass('check-p') } }) $(this).addClass('check-p'); let value = $(this).attr("value"); dataParamType=value; getTodayWarnInfo(value); }); /** * 查看球机异常 */ function openBallInfo(){ let width = '90%', height = '80%'; layer.open({ title: ['球机详情', 'font-size:24px;'], type: 2, skin: 'shadows', content: '../../html/allocation/child/ballerr.html', area: [width, height], maxmin: false, success: function (layero, index) { let body = layer.getChildFrame('body', index); let iframeWin = window[layero.find('iframe')[0]['name']];//获得iframe页的窗口对象,执行iframe页的方法: iframeWin.setForm();//调用子页面的方法,页面锁定 }, end: function () { pages(pageNum, limitSize); } }); } // 下拉选 function getRiskLevelSelect(param) { let dataList = []; $.ajax({ headers: { "encrypt": sm3(JSON.stringify({ params: param })) }, url: dataUrl + 'system/sys/selected/getDictSelected?token=' + token, type: 'post', data: { params: param }, async: false, success: function (data) { if (data.code === 500) { return layer.alert(data.msg, {icon: 2}) } else if (data.code === 401) { logout(1); } if (data && data.length > 0) { $.each(data, function (index, item) { dataList.push(item) }) } } }); return dataList; } // 二级风险计划 function distributionData(){ let params = { checkUser:user.userId, type:2 } openIframeByParamObj("viewDistributionData", "二级风险计划分配详情", "../../html/allocation/viewDistributionData.html", "72%", "85%", params); }