应用场景 :工夫默认值可选用 指定默认值 或 工夫快捷选项。指定默认值是用户选定的某个固定工夫,工夫快捷选项是绝对于关上利用的工夫,并非固定工夫,如选中了昨天,在 8 月 20 日关上利用时,工夫回显 8 月 19 日,在 9 月 30 日关上利用时,工夫回显 9 月 29 日。且这两种默认值的可用状态是互斥的,只可二选一。
此处只列举格局为 YYYYMMDD(年月日)的状况
单个工夫点的配置场景 :
抉择固定默认值
抉择快捷选项
工夫区间的配置场景
固定默认值
抉择快捷选项
回显实现形式:
// isRange 是否是工夫区间
// timeSize 工夫粒度(精确度) Y- 年 M- 月 w- 周 D- 日
// previousNumber 工夫区间 近 * 天(周 / 月 / 年)
// hasThisYear 工夫区间 是否蕴含当天(本周 / 本月 / 本年)
let defaultValue // 要回填的最终值
let date1 // 工夫区间 蕴含当天(本周 / 本月 / 本年)
let date2 // 工夫区间 不蕴含当天(本周 / 本月 / 本年)
if (!isRange) {switch (timeSize) {
case 'Y':
defaultValue = moment().year(moment().year() - 1).startOf('year') // 去年
break
case 'M':
defaultValue = moment().month(moment().month() - 1).startOf('month') // 上月
break
case 'w':
defaultValue = moment().week(moment().week() - 1).startOf('week') // 上周
break
case 'D':
defaultValue = moment().subtract(1, 'days') // 昨天
break
default:
defaultValue = moment().subtract(1, 'days')
break
}
} else {switch (timeSize) {
case 'Y':
date1 = [moment().year(moment().year() - previousNumber + 1).startOf('year'), moment().endOf('year')]
date2 = [moment().year(moment().year() - previousNumber).startOf('year'), moment().year(moment().year() - 1).endOf('year')]
break
case 'M':
date1 = [moment().month(moment().month() - previousNumber + 1).startOf('month'), moment().endOf('month')]
date2 = [moment().month(moment().month() - previousNumber).startOf('month'), moment().month(moment().month() - 1).endOf('month')]
break
case 'w':
date1 = [moment().week(moment().week() - previousNumber + 1).startOf('week'), moment().endOf('week')]
date2 = [moment().week(moment().week() - previousNumber).startOf('week'), moment().week(moment().week() - 1).endOf('week')]
break
case 'D':
date1 = [moment().subtract(previousNumber - 1, 'days'), moment()]
date2 = [moment().subtract(previousNumber, 'days'), moment().subtract(1, 'days')]
break
default:
date1 = [moment().subtract(previousNumber - 1, 'days'), moment()]
date2 = [moment().subtract(previousNumber, 'days'), moment().subtract(1, 'days')]
break
}
// 蕴含当天,取 date1;不蕴含当天,取 date2
defaultValue = hasThisYear ? date1 : date2
}
之后回填 defaultValue 到工夫组件中便可