应用场景:工夫默认值可选用 指定默认值 或 工夫快捷选项。指定默认值是用户选定的某个固定工夫,工夫快捷选项是绝对于关上利用的工夫,并非固定工夫,如选中了昨天,在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到工夫组件中便可
发表回复