| | |
| | | * @param creatPlan |
| | | */ |
| | | export function getFlyTimeList (creatPlan: CreatePlan) { |
| | | |
| | | const startDate = moment.unix(creatPlan.task_days[0]).toDate() |
| | | const endDate = moment.unix(creatPlan.task_days[1]).toDate() |
| | | |
| | |
| | | } else if (creatPlan.task_type === TaskType.Continuous) { |
| | | // 连续执行 |
| | | switch (creatPlan.rep_fre_type) { |
| | | // 月 |
| | | // 月 |
| | | case FrequencyType.month: { |
| | | // 先计算这几个月分别是哪个月 |
| | | const monthList = getYearMonth(startDate, endDate, creatPlan.rep_fre_val) |
| | |
| | | } |
| | | |
| | | creatPlan.task_periods?.forEach(timearr => { |
| | | |
| | | timearr.forEach(time=>{ |
| | | timearr.forEach(time => { |
| | | const timeStr = moment.unix(time).format('HH:mm') |
| | | const str = date + '-' + day + ' ' + timeStr |
| | | const tempDate = new Date(str) |
| | |
| | | const tmpDate = new Date(yearMonth) |
| | | const date = getMonthWeek(tmpDate.getFullYear(), tmpDate.getMonth(), creatPlan.rep_rule_val[0], creatPlan.rep_rule_val[1]) |
| | | creatPlan.task_periods?.forEach(timearr => { |
| | | |
| | | timearr.forEach(time=>{ |
| | | timearr.forEach(time => { |
| | | const timeStr = moment.unix(time).format('HH:mm') |
| | | const dateStr = date + ' ' + timeStr |
| | | finalDateTimeArr.push(dateStr) |
| | |
| | | |
| | | break |
| | | } |
| | | // 周 |
| | | // 周 |
| | | case FrequencyType.week: { |
| | | // 获取每n周的日期 |
| | | const weekDate = gainAllDateBetRange(startDate, endDate, creatPlan.rep_fre_val * 7) |
| | |
| | | // 拼接时间 |
| | | dateList.forEach(date => { |
| | | creatPlan.task_periods?.forEach(timearr => { |
| | | |
| | | timearr.forEach(time=>{ |
| | | timearr.forEach(time => { |
| | | const timeStr = moment.unix(time).format('HH:mm') |
| | | finalDateTimeArr.push(date + ' ' + timeStr) |
| | | }) |
| | | |
| | | }) |
| | | }) |
| | | break |
| | | } |
| | | // 日 |
| | | // 日 |
| | | case FrequencyType.day: { |
| | | // 根据每几天获取时间 |
| | | const dateList = gainAllDateBetRange(startDate, endDate, creatPlan.rep_fre_val) |
| | | // 拼接执行时间即可 |
| | | dateList.forEach(date => { |
| | | creatPlan.task_periods?.forEach(timearr => { |
| | | timearr.forEach(time=>{ |
| | | timearr.forEach(time => { |
| | | const timeStr = moment.unix(time).format('HH:mm') |
| | | |
| | | finalDateTimeArr.push(date + ' ' + timeStr) |
| | | }) |
| | | |
| | | }) |
| | | }) |
| | | break |
| | |
| | | } |
| | | |
| | | console.log('最终时间:', finalDateTimeArr) |
| | | var tempDateTimeArr = [] |
| | | let tempDateTimeArr = [] |
| | | if (creatPlan.task_type === TaskType.Repeat) { |
| | | tempDateTimeArr = finalDateTimeArr.map(dateTime=>[dateTime]) |
| | | }else if (creatPlan.task_type === TaskType.Continuous){ |
| | | for (let i = 0; i < finalDateTimeArr.length; i=i+2) { |
| | | tempDateTimeArr.push([finalDateTimeArr[i],finalDateTimeArr[i+1]]) |
| | | tempDateTimeArr = finalDateTimeArr.map(dateTime => [dateTime]) |
| | | } else if (creatPlan.task_type === TaskType.Continuous) { |
| | | for (let i = 0; i < finalDateTimeArr.length; i = i + 2) { |
| | | tempDateTimeArr.push([finalDateTimeArr[i], finalDateTimeArr[i + 1]]) |
| | | } |
| | | } |
| | | |
| | | |
| | | // 对tempDateTimeArr进行时间过滤,筛选掉过去时间和无效时间 |
| | | const futureDateTimeArr = tempDateTimeArr.filter(dateArr => { |
| | |
| | | console.log('未来时间:', futureDateTimeArr) |
| | | |
| | | const futureDateTimeUnixArr = [] as any |
| | | futureDateTimeArr.forEach(dateArr=>{ |
| | | futureDateTimeArr.forEach(dateArr => { |
| | | const list = [] as any |
| | | |
| | | dateArr.forEach(dateTimeStr=>{ |
| | | const timestamp = moment(dateTimeStr).unix() |
| | | dateArr.forEach(dateTimeStr => { |
| | | const timestamp = moment(dateTimeStr).unix() |
| | | list.push(timestamp) |
| | | }) |
| | | futureDateTimeUnixArr.push(list) |