From d29c895dd848010391167be50548fea763fb306d Mon Sep 17 00:00:00 2001
From: loulijun2021 <1694218219@qq.com>
Date: 星期日, 12 二月 2023 21:15:19 +0800
Subject: [PATCH] 1.甘特图 新增换型时间逻辑
---
src/views/scgl/zdpc.vue | 118 ++++++++++++++++++++++++-----------------------------------
1 files changed, 48 insertions(+), 70 deletions(-)
diff --git a/src/views/scgl/zdpc.vue b/src/views/scgl/zdpc.vue
index d4ce167..7f1c9c7 100644
--- a/src/views/scgl/zdpc.vue
+++ b/src/views/scgl/zdpc.vue
@@ -353,7 +353,7 @@
import Test from '@/components/Test'
import dayjs from 'dayjs'
import { AdvancedSchedulingSearch, OnclickAdvancedSchedulingDevice, SubmitAlreadyScheduling } from '@/api/scgl'
-import { handleDatetime } from '@/utils/global'
+import { handleDatetime, handleDatetime2 } from '@/utils/global'
import waves from '@/directive/waves'
export default {
@@ -959,7 +959,7 @@
// 鎹㈠瀷鏃堕棿
MinutesTest(time) {
const t = new Date(time)
- // console.log(t.getMinutes(), 800)
+
t.setMinutes(t.getMinutes() + this.formBottom.times * 1)
const now =
t.getFullYear() +
@@ -973,7 +973,6 @@
t.getMinutes().toString().padStart(2, '0') +
':' +
t.getSeconds().toString().padStart(2, '0')
- // console.log('now', now)
return now
},
// 鎻掑叆浜ц兘鏃堕棿娈�
@@ -1144,11 +1143,6 @@
mend_num = this.formBottom.meter - num
} else {
}
- // if (this.formBottom.real_num * 1 === this.formBottom.meter * 1) {
- // // mend_num = this.formBottom.meter - num
- // } else {
- // // this.submit_flag = true
- // }
for (const i in this.schedulingData) {
for (const j in this.schedulingData[i].gtArray) {
if (
@@ -1166,20 +1160,20 @@
let all_num = this.formBottom.meter
let flag1 = 0
const mod = this.schedulingData[0].mod
+
// let nowTime = this.schedulingData[0].AdvaDevicRhythm*all_num
- // console.log(this.schedulingData, 31)
- // console.log(JSON.stringify(this.schedulingData), 31)
+
for (const i in this.schedulingData) {
- console.log(i, 32)
let end_arr = [] // 宸叉帓绋嬬殑鏁扮粍
let nend_arr = [] // 寰呮帓绋嬬殑鏁扮粍
let capacity_arr = [] // 瑕佹帓绋嬬殑鏁扮粍
this.schedulingData[i].gtArray.sort((a, b) => new Date(a.end).getTime() - new Date(b.end).getTime())
- end_arr = this.schedulingData[i].gtArray.filter(item => item.type === 'h_schedule')
- nend_arr = this.schedulingData[i].gtArray.filter(item => item.type === 'capacity')
- console.log(end_arr, nend_arr, 770)
+ end_arr = JSON.parse(JSON.stringify(this.schedulingData[i].gtArray.filter(item => item.type === 'h_schedule'))) // 宸叉帓绋嬫暟缁�
+ nend_arr = JSON.parse(JSON.stringify(this.schedulingData[i].gtArray.filter(item => item.type === 'capacity'))) // 瀹归噺
+
+ // end_arr.sort((a, b) => new Date(b.end).getTime() - new Date(a.end).getTime())
if (end_arr && end_arr.length > 0) {
capacity_arr = nend_arr.map(item => {
@@ -1190,7 +1184,7 @@
})
if (schedule && schedule.length > 0) {
- item.start = this.MinutesTest(schedule[0]['end'])
+ item.start = this.MinutesTest(schedule[schedule.length - 1]['end'])
}
const schedule1 = end_arr.filter(schedule => {
@@ -1214,6 +1208,9 @@
if (end_arr != '') {
(id_obj.id = end_arr[0].id), (id_obj.start_time = end_arr[0].end)
}
+
+ capacity_arr = this.filterOutTime(capacity_arr) // 杩囨护鎺夊綋鍓嶆椂闂翠箣鍓嶇殑涓嶈兘鎺掔▼
+
for (const w in capacity_arr) {
let end_time = ''
let mistiming = ''
@@ -1231,7 +1228,7 @@
if (
id_obj.start_time !== '' &&
flag1 === 0 &&
- new Date(id_obj.start_time) >= new Date(capacity_arr[w].start)
+ new Date(id_obj.start_time).getTime() >= new Date(capacity_arr[w].start).getTime()
) {
data.start = this.MinutesTest(id_obj.start_time)
flag1 = 1
@@ -1248,12 +1245,6 @@
capacity_arr[w].mod
) // 鎬诲叡鐨勭粨鏉熸椂闂�-褰撳墠鐨勭粨鏉熸椂闂� = 鍓╀笅澶氫箙鏃堕棿
if (mistiming >= 0) {
- // console.log(
- // new Date(data.end) - new Date(data.start),
- // capacity_arr[w].mod,
- // this.schedulingData[i].AdvaDevicRhythm,
- // '闃挎柉椤垮彂鏂拏鑺�'
- // )
data.number =
((new Date(data.end) - new Date(data.start)) *
capacity_arr[w].mod) /
@@ -1270,10 +1261,14 @@
} else {
this.schedulingData[i].gtArray.push(data)
}
-
return false
} else {
data.end = capacity_arr[w].end
+
+ if (new Date(data.end).getTime() < new Date(data.start)) {
+ continue // 鍥犱负寮�濮嬫椂闂存瘮缁撴潫鏃堕棿澶� 闇�瑕佽烦杩囧悗闈㈡楠�
+ }
+
data.number =
((new Date(data.end) - new Date(data.start)) *
capacity_arr[w].mod) /
@@ -1313,12 +1308,9 @@
const flag1 = 0
// let nowTime = this.timeTopTempData[0].AdvaDevicRhythm*all_num //鏁伴噺OK
- console.log(this.timeTopTempData, 889)
- console.log(JSON.stringify(this.timeTopTempData), 889)
// 閲岄潰閫昏緫瑕佹悶娓呮 寰堥噸瑕�
for (const i in this.timeTopTempData) {
- console.log(i, 90)
let end_arr = []
let nend_arr = [] // 鎺掔▼鐨勬暟缁�
@@ -1326,29 +1318,10 @@
this.timeTopTempData[i].gtArray.sort((a, b) => new Date(a.end).getTime() - new Date(b.end).getTime())
- // console.log(JSON.stringify(this.timeTopTempData), 671)
-
end_arr = JSON.parse(JSON.stringify(this.timeTopTempData[i].gtArray.filter(item => item.type === 'h_schedule'))) // 宸叉帓绋嬫暟鎹�
nend_arr = JSON.parse(JSON.stringify(this.timeTopTempData[i].gtArray.filter(item => item.type === 'capacity'))) // 瀹归噺
- console.log(end_arr, nend_arr, 670)
- // console.log(end_arr, 672)
- // console.log(JSON.stringify(end_arr), 672)
- // console.log(nend_arr, 673)
- // console.log(JSON.stringify(nend_arr), 673)
-
- // end_arr = JSON.parse(JSON.stringify(end_arr.sort((a, b) => new Date(b.end) - new Date(a.end))))
capacity_arr = JSON.parse(JSON.stringify(nend_arr)) // 瀹归噺
-
- // end_arr.forEach(item => {
- // for (let i = 0; i < capacity_arr.length; i++) {
- // if (new Date(capacity_arr[i].start).getTime() === new Date(item.start).getTime() && item.id === capacity_arr[i].id) {
- // console.log(i, capacity_arr[i], '鍝囧搱鍝�')
- // capacity_arr.splice(i, 1)
- // break
- // }
- // }
- // })
// 鑾峰彇鍙帓绋嬬殑鏃堕棿 浠ヤ究鎺ョ潃寰�鍚庢帓绋� 閬嶅巻缁撴潫瑕佸緱鍒扮殑鏄� 褰撳墠鏃ユ湡鍙帓瀹归噺
end_arr.forEach((item, index) => { // 宸叉帓绋嬬殑鏁扮粍
@@ -1357,13 +1330,10 @@
new Date(item.start).getTime() >= new Date(it.start).getTime() &&
new Date(item.end).getTime() === new Date(it.end).getTime() // new Date(item.end).getTime() <= new Date(it.end).getTime()
) {
- console.log(ind, it, '鍝囧搱鍝�')
capacity_arr.splice(ind, 1)
}
})
})
-
- console.log(capacity_arr, '澶цタ鐡�')
// continue:琛ㄧず璺冲嚭鏈寰幆锛屼篃灏辨槸涓嶆墽琛屾湰娆″惊鐜痗ontinue涔嬪悗鐨勬搷浣�
// break:琛ㄧず璺冲嚭褰撳墠鐨勫惊鐜紝閽堝鏁翠釜寰幆浣撶粓姝㈠悗缁殑閬嶅巻锛�
@@ -1376,28 +1346,25 @@
return (new Date(item.start).getTime() >= new Date(it.start).getTime() &&
new Date(item.end).getTime() < new Date(it.end).getTime())
})
- // console.log(remain, 'remain')
+
return remain
})
- // console.log(schedule_arr, 1002)
- // console.log(nend_arr, 299)
-
- // debugger
- // 褰撴煇涓閲忓瓨鍦ㄤ笁涓笉鍚岀殑宸ュ崟鏃� 涓嬮潰杩欎釜if閫昏緫瀛樺湪闂
+ // 涓嬮潰閫昏緫寰堥噸瑕�
if (schedule_arr && schedule_arr.length > 0) {
const scheduleCan = schedule_arr.map(item => {
const temp = nend_arr.filter(it => {
if (it.id === item.id) {
- console.log('鎵ц浜嗭紒', item.id, item.end)
- return (new Date(item.start).getTime() === new Date(it.start).getTime() &&
+ return (new Date(item.start).getTime() >= new Date(it.start).getTime() &&
new Date(item.end).getTime() < new Date(it.end).getTime())
- // ||
+ // ||
// (new Date(item.start).getTime() > new Date(it.start).getTime() &&
// new Date(item.end).getTime() < new Date(it.end).getTime())
}
})[0]
+
temp.start = this.MinutesTest(item.end)
+
return temp
})
@@ -1410,18 +1377,15 @@
}
})
})
-
- // capacity_arr = newSchedule.concat(capacity_arr) //杩欒浠g爜鏄笉瀵圭殑
- // console.log(scheduleCan, 'scheduleCan')
- // console.log(capacity_arr, 'capacity_arr')
- // capacity_arr.sort((a, b) => new Date(a.start).getTime() - new Date(b.start).getTime()) // start鏃堕棿鏃╃殑鍦ㄥ墠闈�
}
- // console.log(schedule_arr)
- // console.log('鍙帓绋嬫暟缁�', capacity_arr)
+
const id_obj = {}
if (end_arr != '') {
(id_obj.id = end_arr[0].id), (id_obj.start_time = end_arr[0].end)
}
+
+ capacity_arr = this.filterOutTime(capacity_arr) // 杩囨护鎺夊綋鍓嶆椂闂翠箣鍓嶇殑涓嶈兘鎺掔▼
+
for (const w in capacity_arr) {
let end_time
let mistiming
@@ -1436,7 +1400,7 @@
number: 0,
real_number: 0
}
- // console.log(id_obj.start_time)
+
if (
id_obj &&
new Date(id_obj.start_time).getTime() >=
@@ -1444,17 +1408,15 @@
) {
if (data.id === id_obj.id) {
data.start = this.MinutesTest(id_obj.start_time)
- // console.log(data.start, 999)
+
// flag1 =1
} else {
data.start = capacity_arr[w].start
- // console.log(data.start, 1000)
- // console.log(data.start)
+
// flag1 =1
}
} else {
data.start = capacity_arr[w].start
- // console.log(data.start, 1001)
}
// let nowTime = this.timeTopTempData[0].AdvaDevicRhythm*all_num
let nowTime = (capacity_arr[w].rhythm * all_num) / capacity_arr[w].mod
@@ -1500,6 +1462,23 @@
}
}
},
+ // 杩囨护鎺夊綋鍓嶆椂闂翠箣鍓嶇殑涓嶈兘鎺掔▼
+ filterOutTime(capacity_arr) {
+ // 杩欓噷瑕佸皢瀹归噺鍜屽綋鍓嶆椂闂村仛瀵规瘮 鍋氭椂闂村鐞� 濡傛灉鍦ㄥ綋鍓嶆椂闂翠箣鍓嶇殑涓嶈兘鎺掔▼
+ capacity_arr.forEach((item, index) => {
+ // 褰撳墠鏃堕棿 澶т簬绛変簬寮�濮嬫椂闂� 涓斿皬浜庣瓑浜庣粨鏉熸椂闂�
+ if (new Date(item.start).getTime() <= new Date(handleDatetime2(new Date())).getTime() && new Date(item.end).getTime() >= new Date(handleDatetime2(new Date())).getTime()) {
+ item.start = handleDatetime2(new Date())
+ }
+ // 褰撳墠鏃堕棿姣斿紑濮嬫椂闂村ぇ 姣旂粨鏉熸椂闂翠篃澶�
+ if (new Date(item.start).getTime() < new Date(handleDatetime2(new Date())).getTime() && new Date(item.end).getTime() < new Date(handleDatetime2(new Date())).getTime()) {
+ item.capacity = false
+ }
+ })
+
+ return capacity_arr.filter(item => item.capacity !== false)
+ },
+
// 鏃堕棿浼樺厛 缁欒澶囪浆鎹㈡牸寮�
dataTransition() {
this.schedulingData = []
@@ -1524,7 +1503,6 @@
}
}
- // console.log(list)
this.schedulingData = list
},
// 鎻掑叆浜ц兘鏃堕棿娈�
--
Gitblit v1.9.3