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);
}