$(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 currentTime = new Date() // 系统当前时间 var startTime = new Date(project.startDay.substring(0,10)) // 项目开始时间 var endTime = new Date(project.endDay.substring(0,10)) // 项目结束时间 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 = endTime-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;kendTime){ allDay = (max-startTime+day)/day endTime=max getDateArr(startTime,endTime) }else{ getDateArr(startTime,endTime); } let newDataArr = [] if(allDay <= 40){ let iday = allDay if(monthDays.length<2){ var gz=monthDays[0]-startTime.getDate()+1 stt = ''+newMonthArr[0]+'' strr = stt $("#th-gz").append(strr) }else{ var gz=monthDays[0]-startTime.getDate()+1 stt = ''+newMonthArr[0]+'' var gze=monthDays[monthDays.length-1]-(monthDays[monthDays.length-1]-endTime.getDate()) stc = ''+newMonthArr[newMonthArr.length-1]+'' strr = stt+stc $("#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) } } } }else if(allDay>40 && allDay<=80){ let iday = Math.ceil(allDay / 2 ) for(var m=0;m'+newMonthArr[m]+'' } var gz=monthDays[0]-startTime.getDate()+1 stt = ''+newMonthArr[0]+'' var gze=monthDays[monthDays.length-1]-(monthDays[monthDays.length-1]-endTime.getDate()) stc = ''+newMonthArr[newMonthArr.length-1]+'' strr = stt+std+stc $("#th-gz").append(strr) for(let k=0;k' $("#tot").append(str); // $(".loadBox").attr('style','width:50px') } allDays = allDay%2 if(allDays==1){ allDay = allDay+1 }else { allDay = allDay } for (let j=0;j' for(let k in nodeId){ $(nodeId[k]).append(tds) } } }else if(allDay>80 && allDay<=120){ let iday = Math.ceil(allDay / 3 ) var num = 1 var ste = null for(var m=0;m'+newMonthArr[num]+'' ste=ste+std num++ } var gz=monthDays[0]-startTime.getDate()+1 stt = ''+newMonthArr[0]+'' var gze=monthDays[monthDays.length-1]-(monthDays[monthDays.length-1]-endTime.getDate()) stc = ''+newMonthArr[newMonthArr.length-1]+'' strr = stt+ste+stc $("#th-gz").append(strr) for(let k=0;k<=dateArr.length;k++){ var newDays = dateArr[k] newDataArr.push(newDays) k=k+2 } for(let i=0;i' $("#tot").append(str); // $(".loadBox").attr('style','width:10px;padding:0px') } allDays = allDay%3 if(allDays==1){ allDay = allDay+2 }else if(allDays==2){ allDay = allDay+1 }else{ allDay = allDay } for (let j=0;j' for(let k in nodeId){ $(nodeId[k]).append(tds) } } }else if(allDay>120 && allDay<=160){ let iday = Math.ceil(allDay / 4 ) var num = 1 var ste = null for(var m=0;m'+newMonthArr[num]+'' ste=ste+std num++ } var gz=monthDays[0]-startTime.getDate()+1 stt = ''+newMonthArr[0]+'' var gze=monthDays[monthDays.length-1]-(monthDays[monthDays.length-1]-endTime.getDate()) stc = ''+newMonthArr[newMonthArr.length-1]+'' strr = stt+ste+stc $("#th-gz").append(strr) for(let k=0;k<=dateArr.length;k++){ var newDays = dateArr[k] newDataArr.push(newDays) k=k+3 } for(let i=0;i' $("#tot").append(str); } allDays = allDay%4 if(allDays==1){ allDay = allDay+3 }else if(allDays==2){ allDay = allDay+2 }else if(allDays==3){ allDay = allDay+1 }else{ allDay = allDay } for (let j=0;j' for(let k in nodeId){ $(nodeId[k]).append(tds) } } }else if(allDay>160 && allDay<=200){ let iday = Math.ceil(allDay / 5 ) var num = 1 var ste = null for(var m=0;m'+newMonthArr[num]+'' ste=ste+std num++ } var gz=monthDays[0]-startTime.getDate()+1 stt = ''+newMonthArr[0]+'' var gze=monthDays[monthDays.length-1]-(monthDays[monthDays.length-1]-endTime.getDate()) stc = ''+newMonthArr[newMonthArr.length-1]+'' strr = stt+ste+stc $("#th-gz").append(strr) for(let k=0;k<=dateArr.length;k++){ var newDays = dateArr[k] newDataArr.push(newDays) k=k+4 } for(let i=0;i' $("#tot").append(str); } allDays = allDay%5 if(allDays==1){ allDay = allDay+4 }else if(allDays==2){ allDay = allDay+3 }else if(allDays==3){ allDay = allDay+2 }else if(allDays==4){ allDay = allDay+1 }else{ allDay = allDay } for (let j=0;j' for(let k in nodeId){ $(nodeId[k]).append(tds) } } }else if(allDay>200 && allDay<=240){ let iday = Math.ceil(allDay / 6 ) var num = 1 var ste = null for(var m=0;m'+newMonthArr[num]+'' ste=ste+std num++ } var gz=monthDays[0]-startTime.getDate()+1 stt = ''+newMonthArr[0]+'' var gze=monthDays[monthDays.length-1]-(monthDays[monthDays.length-1]-endTime.getDate()) stc = ''+newMonthArr[newMonthArr.length-1]+'' strr = stt+ste+stc $("#th-gz").append(strr) for(let k=0;k<=dateArr.length;k++){ var newDays = dateArr[k] newDataArr.push(newDays) k=k+5 } for(let i=0;i' $("#tot").append(str); } allDays = allDay%6 if(allDays==1){ allDay = allDay+5 }else if(allDays==2){ allDay = allDay+4 }else if(allDays==3){ allDay = allDay+3 }else if(allDays==4){ allDay = allDay+2 }else if(allDays==5){ allDay = allDay+1 }else{ allDay = allDay } for (let j=0;j' for(let k in nodeId){ $(nodeId[k]).append(tds) } } }else if(allDay>240){ let iday = Math.ceil(allDay / 7 ) for(let k=0;k<=dateArr.length;k++){ var newDays = dateArr[k] newDataArr.push(newDays) k=k+6 } for(let i=0;i' $("#th-gz").append(str); } allDays = allDay%7 if(allDays==1){ allDay = allDay+6 }else if(allDays==2){ allDay = allDay+5 }else if(allDays==3){ allDay = allDay+4 }else if(allDays==4){ allDay = allDay+3 }else if(allDays==5){ allDay = allDay+2 }else if(allDays==6){ allDay = allDay+1 }else{ allDay = allDay } for (let j=0;j' for(let k in nodeId){ $(nodeId[k]).append(tds) } } }else if(allDay>280){ let iday = Math.ceil(allDay / 8 ) for(let k=0;k<=dateArr.length;k++){ var newDays = dateArr[k] newDataArr.push(newDays) k=k+7 } for(let i=0;i' $("#th-gz").append(str); } allDays = allDay%8 if(allDays==1){ allDay = allDay+7 }else if(allDays==2){ allDay = allDay+6 }else if(allDays==3){ allDay = allDay+5 }else if(allDays==4){ allDay = allDay+4 }else if(allDays==5){ allDay = allDay+3 }else if(allDays==6){ allDay = allDay+2 }else if(allDays==7){ allDay = allDay+1 }else{ allDay = allDay } for (let j=0;j' for(let k in nodeId){ $(nodeId[k]).append(tds) } } } // 123 var nodeId2 = [],nodeId3 = [] for(let k = 0;k0){ for(var j = 0;j < runDay;j++){ $("#tot-2").find("td").eq(j).attr("style","background:#49C7D3") } } for(var i = 0;i0){ $(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:#CC9933") }else{ $(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#49C7D3") } } // 实际开始时间未填 实际结束时间已填 实际开始时间按预计开始时间填 }else if(nodeRealStartTime == "Invalid Date" && nodeRealEndTime !="Invalid Date"){ if(nodeEndTime=nodeRealEndTime && nodeRealEndTime>=nodeStartTime){ for(var j=0;j