$(document).on("dblclick",".row",function(){ var index = $(".row").index(this) // 确定在表格中的第几行 var rowName = $(this).children(".projects").html() // 当前行中类名为projects的类中的文字 var project = data[index] // 把data中的第index个项目 赋值给project if(project.id==rowName){ // 比较时间 var currT = new Date() // 系统当前时间 currentTime currT var staT = new Date(project.startDay.substring(0,10)) // 项目开始时间 startTime staT var endT = new Date(project.endDay.substring(0,10)) // 项目结束时间 endTime endT var node = project.nodes // 检测项目节点时间是否有空值 for(var i=0;i'+''+'' tab = tab +tab2 var tabLeft2 = '' +''+nodeName+'' +''+node[i].startTime.substring(0,10)+'' +''+node[i].endTime$.substring(0,10)+'' tabLeft3 = tabLeft3 + tabLeft2 var overtime = endT-nodeRealEndTime if(overtime<0){ bigDays.push(nodeRealEndTime) } } let max = bigDays[0] for(var i = 0;i' + '' +'' +'' +'' +'' +''+'' var tab3 = tab1+tab+'' /* 节点时间表 */ var tabLeft = '' // 表头 +'' +''+'项目名称'+'' +''+'开始时间'+'' +''+'结束时间'+'' +'' +'' +'' // 表身 (项目节点始末) +'' +''+'项目总时长'+'' +''+project.startDay.substring(0,10)+'' +''+project.endDay.substring(0,10)+'' +'' var tabLeft4 = tabLeft + tabLeft3 +'' $("#details-tab-left").empty() $("#details-tab-left").append(tabLeft4) $("#details-tab").empty() $("#details-tab").append(tab3); // 填充单元格 var nodeId = ["#tot-2"] var nodeId4 = [] for(let k = 0;kendT){ allDay = (max-staT+day)/day endT=max getDateArr(staT,endT) }else{ getDateArr(staT,endT); } let newDataArr = [] var strr ='' // 年份 if(monthDays.length<2){ // 一个月 var gz=monthDays[0]-staT.getDate()+1 // 当前月份剩余天数 stt = ''+newMonthArr[0]+'' // 有多少天就横跨多少个格子 $("#th-gz").append(stt) }else if (monthDays.length<3){ // 两个月 var gz=monthDays[0]-staT.getDate()+1// 当前月份剩余天数 stt = ''+newMonthArr[0]+'' // 有多少天就横跨多少个格子 var gz2 = monthDays[1]-(monthDays[1]-endT.getDate()) // 剩余的天数=当月天数-(当月天数-结束日期) stt2 = ''+newMonthArr[1]+'' strr =stt +stt2 $("#th-gz").append(strr) }else { // 三个月及以上 var gz=monthDays[0]-staT.getDate()+1// 当前月份剩余天数 stt = ''+newMonthArr[0]+'' // 有多少天就横跨多少个格子 var gz2 = monthDays[monthDays.length-1]-(monthDays[monthDays.length-1]-endT.getDate()) // 剩余的天数=当月天数-(当月天数-结束日期) stt2 = ''+newMonthArr[newMonthArr.length-1]+'' // 去除第一个月 和最后一个月 monthDays.shift() monthDays.pop() newMonthArr.shift() newMonthArr.pop() var std = '' for (var j=0;j'+newMonthArr[j]+'' std = std + stt3 } strr = stt + std +stt2 $("#th-gz").append(strr) } // 项目时间单元格 for(let i=0;i' $("#tot").append(str); // $(".loadBox").attr('style','width:50px') } // 节点时间单元格 for (let j=0;j' for(let k in nodeId){ $(nodeId[k]).append(tds) } } var nodeId2 = [],nodeId3 = [] for(let k = 0;k0){ for(var j = 0;j < runDay;j++){ $("#tot-2").find("td").eq(j).attr("style","background:#0f9a84") } } for(var i = 0;inodeEndTime && nodeRealEndTime<=nodeEndTime2){ // 实际结束日期>计划结束日期 $(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#ccc739") }else { // 实际结束日期>计划结束日期+2天 $(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#CC3333") } } // 实际开始时间已填 实际结束时间未填 (实际结束时间按预计结束时间填)改 当前时间与实际开始时间的间隔 }else if(nodeRealStartTime != "Invalid Date" && nodeRealEndTime =="Invalid Date"){ for(var j=0;j0){ $(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#CC3333") }else if(nodeRun>-2 && nodeRun<=0){ $(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#ccc739") }else{ $(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#49C7D3") } } // 实际开始时间未填 实际结束时间已填 实际开始时间按计划时长往前移 }else if(nodeRealStartTime == "Invalid Date" && nodeRealEndTime !="Invalid Date"){ if(nodeRealEndTime<=nodeEndTime){ // 实际结束日期<=计划结束日期 for(var j=0;j计划结束日期+2天 for(var j=0;j