$(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.projectName==rowName){ // 比较时间 var currT = new Date() // 当前时间 var staT = new Date(project.projectStartTime.substring(0,10)) // 项目开始时间 var endT = new Date(project.projectEndTime.substring(0,10)) // 项目结束时间 var nodes = project.projectPlans // 判断项目计划节点时间是否有空值 for(var i=0;i'+''+'' tab = tab +tab2 var tabLeft2 = '' +''+projectsName+'' +''+nodes[i].startTime.substring(0,10)+'' +''+nodes[i].endTime$.substring(0,10)+'' tabLeft3 = tabLeft3 + tabLeft2 var overtime = endT-proRET if(overtime<0){ bigDays.push(proRET) } } let max = bigDays[0] for(var i = 0;i' + '' +'' +'' +'' +'' +''+'' var tab3 = tab1+tab+'' /* 甘特图左侧 项目内容表 */ var tabLeft = '' // 表头 +'' +''+'项目名称'+'' +''+'开始时间'+'' +''+'结束时间'+'' +'' +'' +'' // 表身 (项目节点始末) +'' +''+'项目总时长'+'' +''+project.projectStartTime.substring(0,10)+'' +''+project.projectEndTime.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){ days = (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:#8bddde") } } for(var i = 0;iproET2 && proRET<=proET){ // 实际结束日期>计划结束日期 $(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#00cc88") }else { // 实际结束日期>计划结束日期+2天 $(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#e63939") } } // 实际开始时间已填 实际结束时间未填 (实际结束时间按预计结束时间填)改 当前时间与实际开始时间的间隔 }else if(proRST != "Invalid Date" && proRET =="Invalid Date"){ for(var j=0;j0){ $(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#CC3333") }else if(nodeRun>-3 && nodeRun<=0){ $(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#ccc739") }else{ $(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#8bddde") } } // 实际开始时间未填 实际结束时间已填 实际开始时间按计划开始时间 }else if(proRST == "Invalid Date" && proRET !="Invalid Date"){ if(proRET<=proST){ // 实际结束日期<=计划开始日期 暂时不填充 // for(var j=0;j计划结束日期 for(var j=0;j