whycq
2022-02-10 17ba7be8ea897e5227bbcc051b92df08064b3dc0
src/main/webapp/static/js/projectShow.js
@@ -3,53 +3,49 @@
      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 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<node.length;i++){
            if(node[i].startTime==''||node[i].endTime$==''){
         // 检测项目节点时间是否有空值
         for(var i=0;i<node.length;i++){ // 循环项目节点时间
            if(node[i].staT==''||node[i].endTime$==''){
               show = false
               break
            }else{
               show = true
            }
         }
         console.log(show)
         if(show==true){
            $("#details").attr("style","display:block")
         }else if(show==false){
            $("#tips").attr("style","display:block")
         }
         // 项目名称
         $("#details h2").html(project.id)
         // 预计节点时间
         var tab = ''
         var tabLeft3 = ''
         var day = 86400000
         var allDay = (endTime - startTime + day ) / day
         var allDay = (endT - staT + day ) / day
         // 预计节点的天数,实际节点天数,占多少格子;预计/实际 节点与项目开始时间的时间间隔(从哪个格子开始渲染)
         var bigDays = []
         for(var i = 0;i<node.length;i++){
            var nodeName = node[i].name // 节点名称
            var nodeName = node[i].name // 节点名称                    改第一个请求用
            
            var nodeStartTime = new Date(node[i].startTime.substring(0,10)) // 预计开始时间
            var nodeEndTime = new Date(node[i].endTime$.substring(0,10)) // 预计结束时间
            var nodeRealStartTime =new Date(node[i].realStartTime$.substring(0,10)) // 实际开始时间
            var nodeRealStartTime =   new Date(node[i].realStartTime$.substring(0,10)) // 实际开始时间
            var nodeRealEndTime =new Date(node[i].realEndTime$.substring(0,10)) // 实际结束时间
            var tab2 =
                  '<tr id="td-node'+i+'-gz">'
                     +'<td rowspan="2" class="loadBox">'+nodeName+'</td>'
                     +'<td rowspan="2" class="loadBox">'+node[i].startTime.substring(0,10)+'</td>'
                     +'<td rowspan="2" class="loadBox">'+node[i].endTime$.substring(0,10)+'</td>'
                     +'<tr id="td-node'+i+'-gz-2">'+'</tr>'
            tab = tab +tab2
            var overtime = endTime-nodeRealEndTime
            var tab2 ='<tr id="td-node'+i+'-gz">'+'<tr id="td-node'+i+'-gz-2">'+'</tr>'
            tab = tab +tab2
            var tabLeft2 = '<tr class="tab-body">'
                           +'<td>'+nodeName+'</td>'
                           +'<td>'+node[i].startTime.substring(0,10)+'</td>'
                           +'<td>'+node[i].endTime$.substring(0,10)+'</td>'
            tabLeft3 = tabLeft3 + tabLeft2
            var overtime = endT-nodeRealEndTime
            if(overtime<0){
               bigDays.push(nodeRealEndTime)
            }
@@ -60,20 +56,30 @@
         }
         var tab1 =
            '<thead>'
            +'<tr id="th-gz">'
            +'<th class="loadBox">'+'任务名称'+'</th>'
            +'<th class="loadBox">'+'开始时间'+'</th>'
            +'<th class="loadBox">'+'结束时间'+'</th>'
            + '</tr>'
               +'<tr id="th-gz">' + '</tr>'
            +'</thead>'
            +'<tbody>'
            +'<tr id="tot">'
            +'<td rowspan="2" class="loadBox">'+'任务总时间'+'</td>'
            +'<td  rowspan="2" class="loadBox">'+project.startDay.substring(0,10)+'</td>'
            +'<td  rowspan="2" class="loadBox">'+project.endDay.substring(0,10)+'</td>'
            +'</tr>'
            +'<tr id="tot-2">'+'</tr>'
            +'<tbody id="tabBody">'
               +'<tr id="tot">' +'</tr>'
               +'<tr id="tot-2">'+'</tr>'
         var tab3 = tab1+tab+'</tbody>'
         /* 节点时间表 */
         var tabLeft =    '<thead>' // 表头
                        +'<tr class="tab-head">'
                           +'<th>'+'项目名称'+'</th>'
                           +'<th>'+'开始时间'+'</th>'
                           +'<th>'+'结束时间'+'</th>'
                        +'</tr>'
                     +'</thead>'
                     +'<tbody>' // 表身 (项目节点始末)
                        +'<tr class="tab-body">'
                           +'<td style="height: 50px">'+'项目总时长'+'</td>'
                           +'<td style="height: 50px">'+project.startDay.substring(0,10)+'</td>'
                           +'<td style="height: 50px">'+project.endDay.substring(0,10)+'</td>'
                        +'</tr>'
         var tabLeft4 = tabLeft + tabLeft3 +'</tbody>'
         $("#details-tab-left").empty()
         $("#details-tab-left").append(tabLeft4)
         $("#details-tab").empty()
         $("#details-tab").append(tab3);
         // 填充单元格
@@ -93,324 +99,58 @@
            k++
         }
         
         if(max>endTime){
             allDay = (max-startTime+day)/day
             endTime=max
            getDateArr(startTime,endTime)
         if(max>endT){
             allDay = (max-staT+day)/day
            endT=max
            getDateArr(staT,endT)
         }else{
            getDateArr(startTime,endTime);
            getDateArr(staT,endT);
         }
         let newDataArr = []
         if(allDay <= 40){
            let iday = allDay
            if(monthDays.length<2){
               var gz=monthDays[0]-startTime.getDate()+1
                   stt = '<td class="loadBox" colspan="'+gz+'">'+newMonthArr[0]+'</td>'
                     strr = stt
                     $("#th-gz").append(strr)
            }else{
               var gz=monthDays[0]-startTime.getDate()+1
                   stt = '<td class="loadBox" colspan="'+gz+'">'+newMonthArr[0]+'</td>'
               var gze=monthDays[monthDays.length-1]-(monthDays[monthDays.length-1]-endTime.getDate())
                  stc = '<td class="loadBox" colspan="'+gze+'">'+newMonthArr[newMonthArr.length-1]+'</td>'
                     strr = stt+stc
                     $("#th-gz").append(strr)
                  for(let i=0;i<iday;i++){
                     str = '<td class="loadBox-2">'+dateArr[i]+'</td>'
                     $("#tot").append(str);
                     // $(".loadBox").attr('style','width:50px')
                  }
                     for (let j=0;j<allDay;j++){
                        tds = '<td class="gz-color">'+'</td>'
                        for(let k in nodeId){
                           $(nodeId[k]).append(tds)
                        }
                     }
         var strr =''
         // 年份
         if(monthDays.length<2){ // 一个月
            var gz=monthDays[0]-staT.getDate()+1 // 当前月份剩余天数
            stt = '<th class="loadBox" colspan="'+gz+'">'+newMonthArr[0]+'</th>' // 有多少天就横跨多少个格子
            $("#th-gz").append(stt)
         }else if (monthDays.length<3){ // 两个月
            var gz=monthDays[0]-staT.getDate()+1// 当前月份剩余天数
            stt = '<th class="loadBox" colspan="'+gz+'">'+newMonthArr[0]+'</th>' // 有多少天就横跨多少个格子
            var gz2 = monthDays[1]-(monthDays[1]-endT.getDate()) // 剩余的天数=当月天数-(当月天数-结束日期)
            stt2 = '<th class="loadBox" colspan="'+gz2+'">'+newMonthArr[1]+'</th>'
            strr =stt +stt2
            $("#th-gz").append(strr)
         }else { // 三个月及以上
            var gz=monthDays[0]-staT.getDate()+1// 当前月份剩余天数
            stt = '<th class="loadBox" colspan="'+gz+'">'+newMonthArr[0]+'</th>' // 有多少天就横跨多少个格子
            var gz2 = monthDays[monthDays.length-1]-(monthDays[monthDays.length-1]-endT.getDate()) // 剩余的天数=当月天数-(当月天数-结束日期)
            stt2 = '<th class="loadBox" colspan="'+gz2+'">'+newMonthArr[newMonthArr.length-1]+'</th>'
            // 去除第一个月 和最后一个月
            monthDays.shift()
            monthDays.pop()
            newMonthArr.shift()
            newMonthArr.pop()
            var std = ''
            for (var j=0;j<monthDays.length;j++){
               stt3 = '<th class="loadBox" colspan="'+monthDays[j]+'">'+newMonthArr[j]+'</th>'
               std = std + stt3
            }
         }else if(allDay>40 && allDay<=80){
            let iday = Math.ceil(allDay / 2 )
            for(var m=0;m<monthDays.length-1;m++){
               var gzd=monthDays[m]
                   std = '<td class="loadBox" colspan="'+gzd+'">'+newMonthArr[m]+'</td>'
            strr = stt + std +stt2
            $("#th-gz").append(strr)
         }
         // 项目时间单元格
         for(let i=0;i<allDay;i++){
            str = '<td class="loadBox-2">'+dateArr[i]+'</td>'
            $("#tot").append(str);
            // $(".loadBox").attr('style','width:50px')
         }
         // 节点时间单元格
         for (let j=0;j<allDay;j++){
            tds = '<td class="gz-color">'+'</td>'
            for(let k in nodeId){
               $(nodeId[k]).append(tds)
            }
               var gz=monthDays[0]-startTime.getDate()+1
                   stt = '<td class="loadBox" colspan="'+gz+'">'+newMonthArr[0]+'</td>'
               var gze=monthDays[monthDays.length-1]-(monthDays[monthDays.length-1]-endTime.getDate())
                  stc = '<td class="loadBox" colspan="'+gze+'">'+newMonthArr[newMonthArr.length-1]+'</td>'
                     strr = stt+std+stc
                     $("#th-gz").append(strr)
               for(let k=0;k<dateArr.length;k++){
                  var newDays = dateArr[k]
                  newDataArr.push(newDays)
                  k++
               }
                  for(let i=0;i<iday;i++){
                     str = '<td class="loadBox-2" colspan="2">'+newDataArr[i]+'</td>'
                     $("#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<allDay;j++){
                           tds = '<td class="gz-color">'+'</td>'
                           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<monthDays.length-2;m++){
               var gzd=monthDays[m+1]
                  std = '<td class="loadBox" colspan="'+gzd+'">'+newMonthArr[num]+'</td>'
                  ste=ste+std
                  num++
            }
               var gz=monthDays[0]-startTime.getDate()+1
                   stt = '<td class="loadBox" colspan="'+gz+'">'+newMonthArr[0]+'</td>'
               var gze=monthDays[monthDays.length-1]-(monthDays[monthDays.length-1]-endTime.getDate())
                  stc = '<td class="loadBox" colspan="'+gze+'">'+newMonthArr[newMonthArr.length-1]+'</td>'
                     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<iday;i++){
                     // 固定表
                     str = '<td class="loadBox-2" colspan="3">'+newDataArr[i]+'</td>'
                     $("#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<allDay;j++){
                           tds = '<td class="gz-color">'+'</td>'
                           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<monthDays.length-2;m++){
               var gzd=monthDays[m+1]
                  std = '<td class="loadBox" colspan="'+gzd+'">'+newMonthArr[num]+'</td>'
                  ste=ste+std
                  num++
            }
               var gz=monthDays[0]-startTime.getDate()+1
                   stt = '<td class="loadBox" colspan="'+gz+'">'+newMonthArr[0]+'</td>'
               var gze=monthDays[monthDays.length-1]-(monthDays[monthDays.length-1]-endTime.getDate())
                  stc = '<td class="loadBox" colspan="'+gze+'">'+newMonthArr[newMonthArr.length-1]+'</td>'
                     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<iday;i++){
                     str = '<td class="loadBox-2" colspan="4">'+newDataArr[i]+'</td>'
                     $("#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<allDay;j++){
                           tds = '<td class="gz-color">'+'</td>'
                           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<monthDays.length-2;m++){
               var gzd=monthDays[m+1]
                  std = '<td class="loadBox" colspan="'+gzd+'">'+newMonthArr[num]+'</td>'
                  ste=ste+std
                  num++
            }
               var gz=monthDays[0]-startTime.getDate()+1
                   stt = '<td class="loadBox" colspan="'+gz+'">'+newMonthArr[0]+'</td>'
               var gze=monthDays[monthDays.length-1]-(monthDays[monthDays.length-1]-endTime.getDate())
                  stc = '<td class="loadBox" colspan="'+gze+'">'+newMonthArr[newMonthArr.length-1]+'</td>'
                     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<iday;i++){
                     // 固定表
                     str = '<td class="loadBox-2" colspan="5">'+newDataArr[i]+'</td>'
                     $("#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<allDay;j++){
                           tds = '<td class="gz-color">'+'</td>'
                           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<monthDays.length-2;m++){
               var gzd=monthDays[m+1]
                  std = '<td class="loadBox" colspan="'+gzd+'">'+newMonthArr[num]+'</td>'
                  ste=ste+std
                  num++
            }
               var gz=monthDays[0]-startTime.getDate()+1
                   stt = '<td class="loadBox" colspan="'+gz+'">'+newMonthArr[0]+'</td>'
               var gze=monthDays[monthDays.length-1]-(monthDays[monthDays.length-1]-endTime.getDate())
                  stc = '<td class="loadBox" colspan="'+gze+'">'+newMonthArr[newMonthArr.length-1]+'</td>'
                     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<iday;i++){
                     // 固定表
                     str = '<td class="loadBox-2" colspan="6">'+newDataArr[i]+'</td>'
                     $("#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<allDay;j++){
                           tds = '<td class="gz-color">'+'</td>'
                           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<iday;i++){
                     // 固定表
                     str = '<td class="loadBox" colspan="7">'+newDataArr[i]+'</td>'
                     $("#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<allDay;j++){
                           tds = '<td class="gz-color">'+'</td>'
                           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<iday;i++){
                     // 固定表
                     str = '<td class="loadBox-2" colspan="8">'+newDataArr[i]+'</td>'
                     $("#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<allDay;j++){
                           tds = '<td class="gz-color">'+'</td>'
                           for(let k in nodeId){
                              $(nodeId[k]).append(tds)
                           }
                        }
            }
         // 123
         }
         var nodeId2 = [],nodeId3 = []
         for(let k = 0;k<node.length;k++){
            var getId2 = "#"+"td-node"+k+"-gz"
@@ -424,57 +164,65 @@
         // for(var j = 0;j < allDay;j++){
         //    $("#tot").find("td").eq(j+3).attr("style","background:#3597D6")
         // }
         var runDay = Math.ceil((currentTime - startTime)/ day)
         var runDay = Math.ceil((currT - staT)/ day)
         if(runDay>0){
            for(var j = 0;j < runDay;j++){
               $("#tot-2").find("td").eq(j).attr("style","background:#49C7D3")
               $("#tot-2").find("td").eq(j).attr("style","background:#0f9a84")
            }
         }
         for(var i = 0;i<node.length;i++){
            var nodeName = node[i].name // 节点名称
            var nodeStartTime = new Date(node[i].startTime.substring(0,10)) // 预计开始时间
            var nodeEndTime = new Date(node[i].endTime$.substring(0,10)) // 预计结束时间
            var nodeRealStartTime =new Date(node[i].realStartTime$.substring(0,10)) // 实际开始时间
            var nodeRealEndTime =new Date(node[i].realEndTime$.substring(0,10)) // 实际结束时间
            var nodeDay = (nodeEndTime-nodeStartTime+day)/day // 预计开始-预计结束时间段
            var nodeRSDay = (nodeEndTime-nodeRealStartTime+day)/day // 实际开始-预计结束时间段
            var nodeREDay = (nodeRealEndTime-nodeStartTime+day)/day // 预计开始-实际结束时间段
            var nodeName = node[i].name // 节点
            var nodeStartTime = new Date(node[i].startTime.substring(0,10)) // 计划开始日期
            var nodeEndTime = new Date(node[i].endTime$.substring(0,10)) // 计划结束日期
            var nodeEndTime2 = new Date(nodeEndTime.getTime()+day*2)
            var nodeRealStartTime =new Date(node[i].realStartTime$.substring(0,10)) // 实际开始日期
            var nodeRealEndTime =new Date(node[i].realEndTime$.substring(0,10)) // 实际结束日期
            var nodeDay = (nodeEndTime-nodeStartTime+day)/day // 计划工作天数
            var nodeRSDay = (nodeEndTime-nodeRealStartTime+day)/day // 节点实际工作天数
                  var nodeREDay = (nodeRealEndTime-nodeStartTime+day)/day // 预计开始-实际结束时间段
            var nodeRealDay = (nodeRealEndTime-nodeRealStartTime+day)/day //实际时间段
            var intDay = (nodeStartTime-startTime)/day // 预计开始时间与项目开始时间的间隔
            var intRealDay = (nodeRealStartTime-startTime)/day // 实际开始与项目开始时间的间隔
            var nodeRunDay = Math.ceil((currentTime-nodeStartTime)/ day)
            var nodeRealRunDay = Math.ceil((currentTime-nodeRealStartTime)/ day)
            var nodeRun = Math.ceil((currentTime-nodeEndTime-day)/ day)
            var intDay = (nodeStartTime-staT)/day // 预计开始时间与项目开始时间的间隔
            var intRealDay = (nodeRealStartTime-staT)/day // 实际开始与项目开始时间的间隔
            var nodeRunDay = Math.ceil((currT-nodeStartTime)/ day)
            var nodeRealRunDay = Math.ceil((currT-nodeRealStartTime)/ day)
            var nodeRun = Math.ceil((currT-nodeEndTime-day)/ day)
            var intRunDay = nodeRealEndTime-(nodeRealEndTime-(nodeEndTime-nodeStartTime))/day
            // 与当前时间的时间差
            for(var j=0;j<nodeDay;j++){
               $(nodeId2[i]).find('td').eq(3+intDay+j).attr("style","background:#3597D6")
               $(nodeId2[i]).find('td').eq(intDay+j).attr("style","background:#3597D6")
            }
               // 实际开始时间与结束时间都填写  按实际时间进渲染
            if(nodeRealStartTime != "Invalid Date" && nodeRealEndTime !="Invalid Date"){
               // 实际开始日期与实际结束日期都填写  按实际时间进渲染
            if(nodeRealStartTime != "Invalid Date" && nodeRealEndTime !="Invalid Date"){
               // 实际结束时间超过计划结束时间  超过的时间变红色
               for(var j=0;j<nodeRealDay;j++){
                  $(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#49C7D3")
                  if(nodeRealEndTime<=nodeEndTime){ // 实际结束日期<=计划结束日期
                     $(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#49C7D3")
                  }else if(nodeRealEndTime>nodeEndTime && 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"){
               // 实际开始时间已填 实际结束时间未填  (实际结束时间按预计结束时间填)改 当前时间与实际开始时间的间隔
            }else if(nodeRealStartTime != "Invalid Date" && nodeRealEndTime =="Invalid Date"){
               for(var j=0;j<nodeRealRunDay;j++){
                  if(nodeRun>0){
                     $(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")
                     $(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(nodeEndTime<nodeRealEndTime){
               // 实际开始时间未填 实际结束时间已填  实际开始时间按计划时长往前移
            }else if(nodeRealStartTime == "Invalid Date" && nodeRealEndTime !="Invalid Date"){
               if(nodeRealEndTime>nodeEndTime){ // 实际结束日期>计划结束日期
                  for(var j=0;j<nodeREDay;j++){
                     $(nodeId3[i]).find('td').eq(intDay+j).attr("style","background:#49C7D3")
                     $(nodeId3[i]).find('td').eq(intDay+j).attr("style","background:#CC3333")
                  }
               }else if(nodeEndTime>=nodeRealEndTime && nodeRealEndTime>=nodeStartTime){
               }else if(nodeRealEndTime<=nodeEndTime && nodeRealEndTime>=nodeStartTime){
                  for(var j=0;j<nodeREDay;j++){
                     $(nodeId3[i]).find('td').eq(intDay+j).attr("style","background:#49C7D3")
                     $(nodeId3[i]).find('td').eq(intDay+j).attr("style","background:#b2e5e8")
                  }
               }else{
                  if(intRunDay<0){
@@ -488,12 +236,15 @@
                  }
               }
               // 实际开始时间未填 实际结束时间未填
            }else if(nodeRealStartTime == "Invalid Date" && nodeRealEndTime =="Invalid Date"){
            }else if(nodeRealStartTime == "Invalid Date" && nodeRealEndTime =="Invalid Date"){
               for(var j=0;j<nodeDay;j++){
                  $(nodeId3[i]).find('td').eq(intDay+j).attr("style","background:#49C7D3")
               }
            }
         }
         // 鼠标经过
         // $("#tabBody").find("tr").eq(3).find("td").eq(30).attr("style","background:#354352")
         // $("#tabBody").find("td").eq(30).attr("style","background:#f60313")
         function getDateArr(start,end) {
               let option = new Date(start) // 开始时间
               let nowDate = new Date(end) // 结束时间