查询某段日历数据后的数据补齐

1. 首先本章节讲的是查询日历数据,

    在拿到的日历数据某一阶段的数据时,我们需要把他数据所在的行补齐。

例如:图1:数据只返回了2021.12.1 ----- 2021.12.31号,我们需要把红框的占位补齐,数据置灰(样式自己调)

          图2: 数据只返回了2021.12.2 ----- 2021.12.22号,我们需要把红框的占位补齐,数据置灰(样式自己调)

图1
图2

2. 具体实现方法如下:

1) 定义一个方法,获取所获得的list,在获取到值的时候判断第一条以及最后一条数据能代表的当前的星期,再去将空的数据push在前边以及后边补齐数据

export function isDataWeek(data) {

  let empty = []

  let emptyLast = []

  if (data.list[0].weekday === 'SUN') {

    empty = []

  } else if (data.list[0].weekday === 'MON') {

    empty.push(getData(data.list[0], 1))

  } else if (data.list[0].weekday === 'TUE') {

    empty.push(getData(data.list[0], 2), getData(data.list[0], 1))

  } else if (data.list[0].weekday === 'WED') {

    empty.push(getData(data.list[0], 3), getData(data.list[0], 2), getData(data.list[0], 1))

  } else if (data.list[0].weekday === 'THU') {

    empty.push(getData(data.list[0], 4), getData(data.list[0], 3), getData(data.list[0], 2), getData(data.list[0], 1))

  } else if (data.list[0].weekday === 'FRI') {

    empty.push(getData(data.list[0], 5), getData(data.list[0], 4), getData(data.list[0], 3), getData(data.list[0], 2), getData(data.list[0], 1))

  } else if (data.list[0].weekday === 'SAT') {

    empty.push(getData(data.list[0], 6), getData(data.list[0], 5), getData(data.list[0], 4), getData(data.list[0], 3), getData(data.list[0], 2), getData(data.list[0], 1))

  }

  if (data.list[data.list.length - 1].weekday === 'SUN') {

    emptyLast.push(getData(data.list[data.list.length - 1], -1), getData(data.list[data.list.length - 1], -2), getData(data.list[data.list.length - 1], -3), getData(data.list[data.list.length - 1], -4), getData(data.list[data.list.length - 1], -5), getData(data.list[data.list.length - 1], -6))

  } else if (data.list[data.list.length - 1].weekday === 'MON') {

    emptyLast.push(getData(data.list[data.list.length - 1], -1), getData(data.list[data.list.length - 1], -2), getData(data.list[data.list.length - 1], -3), getData(data.list[data.list.length - 1], -4), getData(data.list[data.list.length - 1], -5))

  } else if (data.list[data.list.length - 1].weekday === 'TUE') {

    emptyLast.push(getData(data.list[data.list.length - 1], -1), getData(data.list[data.list.length - 1], -2), getData(data.list[data.list.length - 1], -3), getData(data.list[data.list.length - 1], -4),)

  } else if (data.list[data.list.length - 1].weekday === 'WED') {

    emptyLast.push(getData(data.list[data.list.length - 1], -1), getData(data.list[data.list.length - 1], -2), getData(data.list[data.list.length - 1], -3))

  } else if (data.list[data.list.length - 1].weekday === 'THU') {

    emptyLast.push(getData(data.list[data.list.length - 1], -1), getData(data.list[data.list.length - 1], -2))

  } else if (data.list[data.list.length - 1].weekday === 'FRI') {

    emptyLast.push(getData(data.list[data.list.length - 1], -1))

  } else if (data.list[data.list.length - 1].weekday === 'SAT') {

    emptyLast = []

  }

  return _.concat(empty, data.list, emptyLast)

}

2) 处理数据用到的方法:

// 封装当前日期的前几天 或 后几天

export function getData(date, num) {

  var dd = new Date(date.calendarDate)

  dd.setDate(dd.getDate() - num)

  var y = dd.getFullYear()

  var m = dd.getMonth() + 1 < 10 ? '0' + (dd.getMonth() + 1) : dd.getMonth() + 1

  var d = dd.getDate() < 10 ? '0' + dd.getDate() : dd.getDate()

  return y + '-' + m + '-' + d

}

你可能感兴趣的:(查询某段日历数据后的数据补齐)