适用接口会返回 2021-10-08、2021-10-10 、2021-10-11 没有连续性的...
首先说下原理:使用开头的日期例如:2021-10-08,
然后遍历 dayjs(dateKeys[0]) .add(i, 'day') .format('YYYY-MM-DD')
自然而然就会自动补上日期了。
效果图:
首先准备一段模拟返回接口的数据
const res={"result":1,"errorCode":1,"errorMsg":"处理成功","obj":{"2021-10-08":[{"clinicDate":"2021-10-08","timeDesc":"下午","totalNum":"150","availableNum":"136"},{"clinicDate":"2021-10-08","timeDesc":"上午","totalNum":"150","availableNum":"140"}],"2021-10-09":[{"clinicDate":"2021-10-09","timeDesc":"下午","totalNum":"150","availableNum":"147"},{"clinicDate":"2021-10-09","timeDesc":"上午","totalNum":"150","availableNum":"145"}],"2021-10-11":[{"clinicDate":"2021-10-11","timeDesc":"下午","totalNum":"150","availableNum":"149"},{"clinicDate":"2021-10-11","timeDesc":"上午","totalNum":"150","availableNum":"146"}],"2021-10-12":[{"clinicDate":"2021-10-12","timeDesc":"下午","totalNum":"150","availableNum":"150"},{"clinicDate":"2021-10-12","timeDesc":"上午","totalNum":"150","availableNum":"149"}],"2021-10-13":[{"clinicDate":"2021-10-13","timeDesc":"下午","totalNum":"150","availableNum":"150"},{"clinicDate":"2021-10-13","timeDesc":"上午","totalNum":"150","availableNum":"150"}],"2021-10-14":[{"clinicDate":"2021-10-14","timeDesc":"下午","totalNum":"150","availableNum":"150"},{"clinicDate":"2021-10-14","timeDesc":"上午","totalNum":"150","availableNum":"150"}],"2021-10-15":[{"clinicDate":"2021-10-15","timeDesc":"下午","totalNum":"150","availableNum":"150"},{"clinicDate":"2021-10-15","timeDesc":"上午","totalNum":"150","availableNum":"149"}],"2021-10-16":[{"clinicDate":"2021-10-16","timeDesc":"下午","totalNum":"150","availableNum":"149"},{"clinicDate":"2021-10-16","timeDesc":"上午","totalNum":"150","availableNum":"150"}],"2021-10-18":[{"clinicDate":"2021-10-18","timeDesc":"下午","totalNum":"150","availableNum":"150"},{"clinicDate":"2021-10-18","timeDesc":"上午","totalNum":"150","availableNum":"150"}],"2021-10-19":[{"clinicDate":"2021-10-19","timeDesc":"下午","totalNum":"150","availableNum":"150"},{"clinicDate":"2021-10-19","timeDesc":"上午","totalNum":"150","availableNum":"150"}],"2021-10-20":[{"clinicDate":"2021-10-20","timeDesc":"下午","totalNum":"150","availableNum":"150"},{"clinicDate":"2021-10-20","timeDesc":"上午","totalNum":"150","availableNum":"150"}],"2021-10-21":[{"clinicDate":"2021-10-21","timeDesc":"下午","totalNum":"150","availableNum":"150"},{"clinicDate":"2021-10-21","timeDesc":"上午","totalNum":"150","availableNum":"150"}],"2021-10-22":[{"clinicDate":"2021-10-22","timeDesc":"下午","totalNum":"150","availableNum":"150"},{"clinicDate":"2021-10-22","timeDesc":"上午","totalNum":"150","availableNum":"150"}],"2021-10-23":[{"clinicDate":"2021-10-23","timeDesc":"下午","totalNum":"150","availableNum":"149"},{"clinicDate":"2021-10-23","timeDesc":"上午","totalNum":"150","availableNum":"150"}],"2021-10-25":[{"clinicDate":"2021-10-25","timeDesc":"下午","totalNum":"150","availableNum":"150"},{"clinicDate":"2021-10-25","timeDesc":"上午","totalNum":"150","availableNum":"150"}],"2021-10-26":[{"clinicDate":"2021-10-26","timeDesc":"下午","totalNum":"150","availableNum":"150"},{"clinicDate":"2021-10-26","timeDesc":"上午","totalNum":"150","availableNum":"150"}],"2021-10-27":[{"clinicDate":"2021-10-27","timeDesc":"下午","totalNum":"150","availableNum":"150"},{"clinicDate":"2021-10-27","timeDesc":"上午","totalNum":"150","availableNum":"150"}],"2021-10-28":[{"clinicDate":"2021-10-28","timeDesc":"下午","totalNum":"150","availableNum":"150"},{"clinicDate":"2021-10-28","timeDesc":"上午","totalNum":"150","availableNum":"150"}],"2021-10-29":[{"clinicDate":"2021-10-29","timeDesc":"下午","totalNum":"150","availableNum":"150"},{"clinicDate":"2021-10-29","timeDesc":"上午","totalNum":"150","availableNum":"150"}],"2021-10-30":[{"clinicDate":"2021-10-30","timeDesc":"下午","totalNum":"150","availableNum":"150"},{"clinicDate":"2021-10-30","timeDesc":"上午","totalNum":"150","availableNum":"150"}]},"busObj":{"2021-10-08":0,"2021-10-09":292,"2021-10-11":295,"2021-10-12":299,"2021-10-13":300,"2021-10-14":300,"2021-10-15":299,"2021-10-16":299,"2021-10-18":300,"2021-10-19":300,"2021-10-20":300,"2021-10-21":300,"2021-10-22":300,"2021-10-23":299,"2021-10-25":300,"2021-10-26":300,"2021-10-27":300,"2021-10-28":300,"2021-10-29":300,"2021-10-30":300}}
formateDateList(data, sub) {
const WEEK_LABELS = ['日', '一', '二', '三', '四', '五', '六']
const dateKeys = Object.keys(data)
// 日期是否间断
const wholeKeys = new Array(dateKeys.length < 7 ? 7 : dateKeys.length)
.fill('')
.map((_n, i) =>
dayjs(dateKeys[0])
.add(i, 'day')
.format('YYYY-MM-DD')
)
return wholeKeys.reduce((cur, dateKey) => {
const item = data[dateKey]
const day = WEEK_LABELS[dayjs(dateKey).day()]
const date = dayjs(dateKey).date()
cur.push({
day,
fullDate: dateKey,
strDate: day,
ry: dayjs(dateKey).format('MM-DD'),
arr: item,
date: date < 10 ? `0${date}` : date,
sourceNum: sub[dateKey],
})
return cur
}, [])
}
this.dateList = this.formateDateList(res.obj, res.busObj)