Forráskód Böngészése

甘特图组件修改默认开始以及结束

yuhan 1 éve%!(EXTRA string=óta)
szülő
commit
6e143fb5d8
1 módosított fájl, 37 hozzáadás és 9 törlés
  1. 37 9
      itdmWeb/src/components/module-iTDM/uGantt/index.vue

+ 37 - 9
itdmWeb/src/components/module-iTDM/uGantt/index.vue

@@ -125,8 +125,16 @@
       taskLists: {
         handler(newValue, oldValue){
           console.log(newValue, oldValue)
-          this.changeTableTree()
           if(newValue.length > 0){
+            
+            newValue.forEach(res=>{
+              if(!res.end_date){
+                res.end_date = res.start_date
+              }
+            })
+            console.log(newValue)
+            this.changeTableTree()
+
             this.getStartEndTime()
             this.$nextTick(() => {
               this.uGanttDrag()
@@ -185,16 +193,36 @@
       },
       // 获取最开始和最末尾时间
       getStartEndTime(){
-        // var setTimeData = JSON.parse(JSON.stringify(this.taskLists))
-        var setTimeData = this.taskLists.filter(res=> res.start_date)
-        setTimeData.sort(function(a, b) {
-          return b.start_date < a.start_date ? 1 : -1
+        // 开始日期(实际和计划都)排序选择最开始的一天
+        // var hasSjStartArr = this.taskLists.filter(res=> res.reality_startDate) // 因为计划开始日期一定有,所以就不判断了
+        var allStartDataArr = []
+        this.taskLists.forEach(res=>{
+          console.log(res.reality_startDate)
+          if(res.reality_startDate){allStartDataArr.push(res.reality_startDate)}
+          allStartDataArr.push(res.start_date)
+        })
+        // 从小到大排序
+        allStartDataArr.sort(function(a, b) {
+          return new Date(a) - new Date(b)
+        })
+        console.log(allStartDataArr)
+
+        // 结束日期(实际和计划都)排序选择最后的一天
+        var allEndDataArr = []
+        this.taskLists.forEach(res=>{
+          allEndDataArr.push(res.reality_endDate)
+          allEndDataArr.push(res.end_date)
+        })
+        // 从大到小排序
+        allEndDataArr.sort(function(a, b) {
+          return new Date(b) - new Date(a)
         })
-        console.log(this.taskLists)
+        // console.log(allEndDataArr)
 
-        // 获取实际的最开始和最结束时间
-        const start_date = setTimeData[0].start_date
-        const end_date = setTimeData[setTimeData.length - 1].end_date
+        // 获取最开始和最结束时间
+        const start_date = allStartDataArr[0]
+        const end_date = allEndDataArr[0]
+        // const end_date = setTimeData[setTimeData.length - 1].end_date
 
         // 判断两个日期之间多少天--bug:少一天
         var betweenDays = (new Date(end_date).getTime() - new Date(start_date).getTime()) / (1000 * 60 * 60 * 24)