From 54095a376b9c0bfd84bec8a1cdd062b9f385c34a Mon Sep 17 00:00:00 2001
From: whycq <whycq>
Date: 星期四, 10 三月 2022 15:30:11 +0800
Subject: [PATCH] # ycq 项目执行进度表0.0.1

---
 src/main/webapp/static/js/projectShow.js |  171 +++++++++++++++++++++++++++++++--------------------------
 1 files changed, 93 insertions(+), 78 deletions(-)

diff --git a/src/main/webapp/static/js/projectShow.js b/src/main/webapp/static/js/projectShow.js
index 64c7389..83877a6 100644
--- a/src/main/webapp/static/js/projectShow.js
+++ b/src/main/webapp/static/js/projectShow.js
@@ -4,13 +4,13 @@
 		var project = data[index] // 鎶奷ata涓殑绗琲ndex涓」鐩� 璧嬪�肩粰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<node.length;i++){ // 寰幆椤圭洰鑺傜偣鏃堕棿
-				if(node[i].staT==''||node[i].endTime$==''){
+			var currT = new Date() // 褰撳墠鏃堕棿
+			var staT = new Date(project.startDay.substring(0,10)) // 椤圭洰寮�濮嬫椂闂�
+			var endT = new Date(project.endDay.substring(0,10)) // 椤圭洰缁撴潫鏃堕棿
+			var nodes = project.nodes
+			// 鍒ゆ柇椤圭洰璁″垝鑺傜偣鏃堕棿鏄惁鏈夌┖鍊�
+			for(var i=0;i<nodes.length;i++){
+				if(nodes[i].staT==''||nodes[i].endTime$==''){
 					show = false
 					break
 				}else{
@@ -27,27 +27,23 @@
 			// 棰勮鑺傜偣鏃堕棿
 			var tab = ''
 			var tabLeft3 = ''
-			var day = 86400000
-			var allDay = (endT - staT + day ) / day
-			// 棰勮鑺傜偣鐨勫ぉ鏁�,瀹為檯鑺傜偣澶╂暟,鍗犲灏戞牸瀛�;棰勮/瀹為檯 鑺傜偣涓庨」鐩紑濮嬫椂闂寸殑鏃堕棿闂撮殧锛堜粠鍝釜鏍煎瓙寮�濮嬫覆鏌擄級
+			var day = 86400000 // 涓�澶╂槸 86400000姣
+			var days = (endT - staT + day ) / day // 椤圭洰鑺傜偣澶╂暟
+
 			var bigDays = []
-			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)) // 瀹為檯缁撴潫鏃堕棿
+			for(var i = 0;i<nodes.length;i++){
+				var projectsName = nodes[i].name // 鑺傜偣鍚嶇О                    鏀圭涓�涓姹傜敤
+				var proRET = new Date(nodes[i].realEndTime$.substring(0,10)) // 鑺傜偣瀹為檯缁撴潫鏃堕棿
 				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>'
+									+'<td>'+projectsName+'</td>'
+									+'<td>'+nodes[i].startTime.substring(0,10)+'</td>'
+									+'<td>'+nodes[i].endTime$.substring(0,10)+'</td>'
 				tabLeft3 = tabLeft3 + tabLeft2
-				var overtime = endT-nodeRealEndTime
+				var overtime = endT-proRET
 				if(overtime<0){
-					bigDays.push(nodeRealEndTime)
+					bigDays.push(proRET)
 				}
 			}
 			let max = bigDays[0]
@@ -62,7 +58,7 @@
 					+'<tr id="tot">' +'</tr>'
 					+'<tr id="tot-2">'+'</tr>'
 			var tab3 = tab1+tab+'</tbody>'
-			/* 鑺傜偣鏃堕棿琛� */
+			/* 鐢樼壒鍥惧乏渚� 椤圭洰鍐呭琛� */
 			var tabLeft = 	'<thead>' // 琛ㄥご
 								+'<tr class="tab-head">'
 									+'<th>'+'椤圭洰鍚嶇О'+'</th>'
@@ -85,13 +81,13 @@
 			// 濉厖鍗曞厓鏍�
 			var nodeId = ["#tot-2"]
 			var nodeId4 = []
-			for(let k = 0;k<node.length;k++){
+			for(let k = 0;k<nodes.length;k++){
 				var getId = "#"+"td-node"+k+"-gz"
 				var getId2 = "#"+"td-node"+k+"-gz-2"
 				nodeId.push(getId)
 				nodeId.push(getId2)
 			}
-			for(let k = 0;k<node.length;k++){
+			for(let k = 0;k<nodes.length;k++){
 				var getId = "#"+"td-node"+k+"-gz"
 				var getId2 = "#"+"td-node"+k+"-gz-2"
 				nodeId4.push(getId)
@@ -100,7 +96,7 @@
 			}
 			
 			if(max>endT){
-				 allDay = (max-staT+day)/day
+				 days = (max-staT+day)/day
 				endT=max
 				getDateArr(staT,endT)
 			}else{
@@ -139,20 +135,20 @@
 				$("#th-gz").append(strr)
 			}
 			// 椤圭洰鏃堕棿鍗曞厓鏍�
-			for(let i=0;i<allDay;i++){
-				str = '<td class="loadBox-2">'+dateArr[i]+'</td>'
+			for(let i=0;i<days;i++){
+				str = '<th class="loadBox-2">'+dateArr[i]+'</th>'
 				$("#tot").append(str);
 				// $(".loadBox").attr('style','width:50px')
 			}
 			// 鑺傜偣鏃堕棿鍗曞厓鏍�
-			for (let j=0;j<allDay;j++){
-				tds = '<td class="gz-color">'+'</td>'
+			for (let j=0;j<days;j++){
+				tds = '<td class="gz-color'+j+' time-color">'+'</td>'
 				for(let k in nodeId){
 					$(nodeId[k]).append(tds)
 				}
 			}
 			var nodeId2 = [],nodeId3 = []
-			for(let k = 0;k<node.length;k++){
+			for(let k = 0;k<nodes.length;k++){
 				var getId2 = "#"+"td-node"+k+"-gz"
 				var getId3 = "#"+"td-node"+k+"-gz-2"
 				nodeId2.push(getId2)
@@ -161,87 +157,104 @@
 			for(var i=0;i<nodeId4.length;i++){
 				$(nodeId4[i]).attr("style","background:#eeeeef")
 			}
-			// for(var j = 0;j < allDay;j++){
+			// for(var j = 0;j < days;j++){
 			// 	$("#tot").find("td").eq(j+3).attr("style","background:#3597D6")
 			// }
 			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:#0f9a84")
+					$("#tot-2").find("td").eq(j).attr("style","background:#8bddde")
 				}
 			}
-			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 nodeEndTime2 = new Date(nodeEndTime.getTime()+day*2) // 璁″垝缁撴潫鏃ユ湡+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-staT)/day // 棰勮寮�濮嬫椂闂翠笌椤圭洰寮�濮嬫椂闂寸殑闂撮殧
-				var intRealDay = (nodeRealStartTime-staT)/day // 瀹為檯寮�濮嬩笌椤圭洰寮�濮嬫椂闂寸殑闂撮殧
-				var intRealEndDay = (nodeRealEndTime-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 notRealStartDay = nodeRealEndTime-(nodeEndTime-nodeStartTime) // 鎺ㄧ畻鐨勫疄闄呭紑濮嬫棩鏈�
+			for(var i = 0;i<nodes.length;i++){
+				var proST = new Date(nodes[i].startTime.substring(0,10)) // 璁″垝寮�濮嬫棩鏈�
+				var proET = new Date(nodes[i].endTime$.substring(0,10)) // 璁″垝缁撴潫鏃ユ湡
+				var proET2 = new Date(proET.getTime()-day*2) // 璁″垝缁撴潫鏃ユ湡-2澶�
+				var proRST =new Date(nodes[i].realStartTime$.substring(0,10)) // 瀹為檯寮�濮嬫棩鏈�
+				var proRET =new Date(nodes[i].realEndTime$.substring(0,10)) // 瀹為檯缁撴潫鏃ユ湡
+				var nodeDay = (proET-proST+day)/day // 璁″垝宸ヤ綔澶╂暟
+				var nodeRSDay = (proET-proRST+day)/day // 鑺傜偣瀹為檯宸ヤ綔澶╂暟
+						var nodeREDay = (proRET-proST+day)/day // 瀹為檯缁撴潫鍑忚鍒掑紑濮嬫椂闂�
+				var nodeRealDay = (proRET-proRST+day)/day //瀹為檯鏃堕棿娈�
+				var intDay = (proST-staT)/day // 棰勮寮�濮嬫椂闂翠笌椤圭洰寮�濮嬫椂闂寸殑闂撮殧
+				var intRealDay = (proRST-staT)/day // 瀹為檯寮�濮嬩笌椤圭洰寮�濮嬫椂闂寸殑闂撮殧
+				var intRealEndDay = (proRET-staT)/day // 瀹為檯缁撴潫涓庨」鐩紑濮嬬殑闂撮殧
+				var nodeRunDay = Math.ceil((currT-proST)/ day)
+				var nodeRealRunDay = Math.ceil((currT-proRST)/ day)
+				var nodeRun = Math.ceil((currT-proET-day)/ day)
+				var notRealStartDay = proRET-(proET-proST) // 鎺ㄧ畻鐨勫疄闄呭紑濮嬫棩鏈�
 				var intNotRealStartTime = (new Date(notRealStartDay)-staT)/day // 鎺ㄧ畻鐨勫紑濮嬫棩鏈熶笌椤圭洰寮�濮嬫棩鏈熺殑鏃堕棿娈�
 
 
 
 				// 涓庡綋鍓嶆椂闂寸殑鏃堕棿宸�
 				for(var j=0;j<nodeDay;j++){
-					$(nodeId2[i]).find('td').eq(intDay+j).attr("style","background:#3597D6")
+					$(nodeId2[i]).find('td').eq(intDay+j).attr("style","background:#5998f5")
 				}
 					// 瀹為檯寮�濮嬫棩鏈熶笌瀹為檯缁撴潫鏃ユ湡閮藉~鍐�  鎸夊疄闄呮椂闂磋繘娓叉煋
-				if(nodeRealStartTime != "Invalid Date" && nodeRealEndTime !="Invalid Date"){
-					// 瀹為檯缁撴潫鏃堕棿瓒呰繃璁″垝缁撴潫鏃堕棿  瓒呰繃鐨勬椂闂村彉绾㈣壊
+				if(proRST != "Invalid Date" && proRET !="Invalid Date"){
+					
 					for(var j=0;j<nodeRealDay;j++){
-						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")
+						if(proRET<=proET2){ // 瀹為檯缁撴潫鏃ユ湡<=璁″垝缁撴潫鏃ユ湡
+							$(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#00cc88")
+						}else if(proRET>proET2 && 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:#CC3333")
+							$(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#e63939")
 						}
 					}
 					// 瀹為檯寮�濮嬫椂闂村凡濉� 瀹為檯缁撴潫鏃堕棿鏈~  (瀹為檯缁撴潫鏃堕棿鎸夐璁$粨鏉熸椂闂村~)鏀� 褰撳墠鏃堕棿涓庡疄闄呭紑濮嬫椂闂寸殑闂撮殧
-				}else if(nodeRealStartTime != "Invalid Date" && nodeRealEndTime =="Invalid Date"){
+				}else if(proRST != "Invalid Date" && proRET =="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){
+						}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:#49C7D3")
+							$(nodeId3[i]).find('td').eq(intRealDay+j).attr("style","background:#8bddde")
 						}
 					}
-						// 瀹為檯寮�濮嬫椂闂存湭濉� 瀹為檯缁撴潫鏃堕棿宸插~  瀹為檯寮�濮嬫椂闂存寜璁″垝鏃堕暱寰�鍓嶇Щ
-				}else if(nodeRealStartTime == "Invalid Date" && nodeRealEndTime !="Invalid Date"){
-					if(nodeRealEndTime<=nodeEndTime){ // 瀹為檯缁撴潫鏃ユ湡<=璁″垝缁撴潫鏃ユ湡
-						for(var j=0;j<nodeDay;j++){ // 澶╂暟鏄妭鐐硅鍒掑ぉ鏁�
-							$(nodeId3[i]).find('td').eq(intNotRealStartTime+j).attr("style","background:#49C7D3") // 瀹為檯寮�濮嬫棩鏈熸槸 瀹為檯缁撴潫鏃ユ湡-璁″垝澶╂暟
+						// 瀹為檯寮�濮嬫椂闂存湭濉� 瀹為檯缁撴潫鏃堕棿宸插~  瀹為檯寮�濮嬫椂闂存寜璁″垝寮�濮嬫椂闂�
+				}else if(proRST == "Invalid Date" && proRET !="Invalid Date"){
+					if(proRET<=proST){ // 瀹為檯缁撴潫鏃ユ湡<=璁″垝寮�濮嬫棩鏈�  鏆傛椂涓嶅~鍏�
+						// for(var j=0;j<nodeDay;j++){ // 澶╂暟鏄妭鐐硅鍒掑ぉ鏁�
+						// 	$(nodeId3[i]).find('td').eq(intNotRealStartTime+j).attr("style","background:#49C7D3") // 瀹為檯寮�濮嬫棩鏈熸槸 瀹為檯缁撴潫鏃ユ湡-璁″垝澶╂暟
+						// }
+					}else if(proRET<=proET){ //瀹為檯缁撴潫鏃ユ湡<=璁″垝缁撴潫鏃ユ湡
+						for(var j=0;j<nodeREDay;j++) { // 澶╂暟鏄� 瀹為檯缁撴潫鏃ユ湡-璁″垝寮�濮嬫棩鏈�
+							$(nodeId3[i]).find('td').eq(intDay + j).attr("style", "background:#00cc88")// 瀹為檯寮�濮嬫棩鏈熸槸 瀹為檯缁撴潫鏃ユ湡-璁″垝澶╂暟
 						}
-					}else if(nodeRealEndTime<=nodeEndTime2){ //瀹為檯缁撴潫鏃ユ湡<=璁″垝缁撴潫鏃ユ湡+2澶�
-						for(var j=0;j<nodeDay;j++) { // 澶╂暟鏄妭鐐硅鍒掑ぉ鏁�
-							$(nodeId3[i]).find('td').eq(intNotRealStartTime + j).attr("style", "background:#ccc739")// 瀹為檯寮�濮嬫棩鏈熸槸 瀹為檯缁撴潫鏃ユ湡-璁″垝澶╂暟
-						}
-					}else{ // 瀹為檯缁撴潫鏃ユ湡>璁″垝缁撴潫鏃ユ湡+2澶�
-						for(var j=0;j<nodeDay;j++) { // 澶╂暟鏄妭鐐硅鍒掑ぉ鏁�
-							$(nodeId3[i]).find('td').eq(intNotRealStartTime + j).attr("style", "background:#CC3333")// 瀹為檯寮�濮嬫棩鏈熸槸 瀹為檯缁撴潫鏃ユ湡-璁″垝澶╂暟
+					}else{ // 瀹為檯缁撴潫鏃ユ湡>璁″垝缁撴潫鏃ユ湡
+						for(var j=0;j<nodeREDay;j++) { // 澶╂暟鏄� 瀹為檯缁撴潫鏃ユ湡-璁″垝寮�濮嬫棩鏈�
+							$(nodeId3[i]).find('td').eq(intDay + j).attr("style", "background:#CC3333")// 瀹為檯寮�濮嬫棩鏈熸槸 瀹為檯缁撴潫鏃ユ湡-璁″垝澶╂暟
 						}
 					}
 					// 瀹為檯寮�濮嬫椂闂存湭濉� 瀹為檯缁撴潫鏃堕棿鏈~
-				}else if(nodeRealStartTime == "Invalid Date" && nodeRealEndTime =="Invalid Date"){
+				}else if(proRST == "Invalid Date" && proRET =="Invalid Date"){
 
 				}
 			}
 			// 榧犳爣缁忚繃
-			// $("#tabBody").find("tr").eq(3).find("td").eq(30).attr("style","background:#354352")
-			// $("#tabBody").find("td").eq(30).attr("style","background:#f60313")
+			$(document).on('mouseover','.time-color',function () {
+				// console.log($(this).attr('class'))
+				var cls = $(this).attr('class').split(' ')[0]
+				var cll = '.'+cls
+				$(cll).addClass('over-color')
+			})
+			// 榧犳爣绂诲紑
+			$(document).on('mouseout','.time-color',function () {
+				// console.log($(this).attr('class'))
+				var cls = $(this).attr('class').split(' ')[0]
+				var cll = '.'+cls
+				$(cll).removeClass('over-color')
+			})
+			// 婊氳疆
+			
+			
+			
+
+
+
 			function getDateArr(start,end) {
 					let option = new Date(start) // 寮�濮嬫椂闂�
 					let nowDate = new Date(end) // 缁撴潫鏃堕棿
@@ -278,4 +291,6 @@
 			}
 			}
 			})
-			
\ No newline at end of file
+
+
+

--
Gitblit v1.9.1