husq
2023-10-17 7abab3d5474858f58ddd96bebbdf0379ddd1aa77
src/utils/jobTime.ts
@@ -8,7 +8,6 @@
 * @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()
@@ -118,7 +117,7 @@
  } else if (creatPlan.task_type === TaskType.Continuous) {
    // 连续执行
    switch (creatPlan.rep_fre_type) {
        // 月
      // 月
      case FrequencyType.month: {
        // 先计算这几个月分别是哪个月
        const monthList = getYearMonth(startDate, endDate, creatPlan.rep_fre_val)
@@ -135,8 +134,7 @@
              }
              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)
@@ -178,8 +176,7 @@
            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)
@@ -190,7 +187,7 @@
        break
      }
        // 周
      // 周
      case FrequencyType.week: {
        // 获取每n周的日期
        const weekDate = gainAllDateBetRange(startDate, endDate, creatPlan.rep_fre_val * 7)
@@ -201,29 +198,26 @@
        // 拼接时间
        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
@@ -232,15 +226,14 @@
  }
  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 => {
@@ -250,11 +243,11 @@
  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)