美文网首页
查询某段日历数据后的数据补齐

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

作者: 苏苡 | 来源:发表于2021-12-02 16:22 被阅读0次

    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

    }

    相关文章

      网友评论

          本文标题:查询某段日历数据后的数据补齐

          本文链接:https://www.haomeiwen.com/subject/gsoyxrtx.html