Skip to content

BizDateRange 快捷日期范围 ​

业务语义的时间窗选择:预设快捷项(今日 / 昨日 / 本周 / 上周 / 本月 / 上月 / 本季度 / 今年 / 近7天 / 近30天,相对日期语义——每次计算以当天为基准)+ 自定义范围,picker(预设进下拉面板快捷栏)与 segmented(按钮组 + 自定义范围)两种形态,date / datetime / month 三种粒度,值跨度上限守护。

适用于仪表盘时间窗、数据导出时段、监控告警时段、列表工具栏时间筛选等查询表单之外的范围选择场景;查询表单内可直接用 BizSearchForm 的 date-range 字段开启 shortcuts。

基础用法 ​

至
当前值:(未选择)
默认预设集 + 自定义范围。点面板左侧快捷项立即生效;手工选范围时视为「自定义」,change 第二个参数返回 null。

自定义预设集合 ​

至
命中预设:(自定义 / 未选择)
presets 传数组完全替换默认集;预设 range 是函数,命中判定按「日截断后两端一致」。

按钮组形态 ​

至
(未选择)
mode="segmented":预设渲染为按钮组,右侧相邻自定义范围选择器;点预设高亮,改自定义范围则取消高亮。适合工具栏 / 图表卡头部。

datetime 粒度 ​

至
(未选择)
granularity="datetime" 面板带时分秒;预设可给出整日口径(00:00:00 ~ 23:59:59)或滑动窗口口径(近24小时)。

month 粒度 ​

至
(未选择)
granularity="month" 月粒度(monthrange),配合月边界预设(近 3 / 6 / 12 个月)。

值格式(字符串 / 时间戳) ​

至
字符串值:(未选择)
至
时间戳值:(未选择)
value-format 透传 el-date-picker 语义:'YYYY-MM-DD' 输出字符串二元组,'x' 输出毫秒时间戳字符串——直接对接后端查询参数。

范围限制 ​

至
仅能选择过去且不超过 31 天
disabled-date 禁用未来日期;max-span-days 跨度上限守护——超限时不提交(受控值不变即回显回退)并抛出 exceed 事件,由业务决定如何提示。

受控与按此刻重算 ​

至
跨度 7 天
默认值取「近7天」;refresh() 以此刻重算并重新提交当前命中的相对预设(跨天停留页面的看板刷新场景);setPreset(key) / getActivePreset() 可程序化切换。

搜索表单集成 ​

关键词
支付时间
至
渠道
请选择渠道
{}
BizSearchForm 的 date-range 字段开启 shortcuts: true 后改用本组件渲染,值格式与普通模式一致(默认 YYYY-MM-DD 字符串)。

属性 ​

属性类型默认值说明
model-value / v-model[Date, Date] | [string, string] | null—选中范围;设置 value-format 后为字符串二元组
granularity'date' | 'datetime' | 'month''date'粒度
presetsboolean | BizDateRangePreset[]true预设快捷项:true 默认集,false 关闭,数组完全自定义
mode'picker' | 'segmented''picker'形态:面板快捷栏 / 按钮组 + 自定义
value-formatstring—el-date-picker 的 value-format(如 'YYYY-MM-DD' / 'x')
max-span-daysnumber0值跨度上限(天),超限不提交并发 exceed;0 不限制
size'small' | 'default' | 'large'—尺寸
disabledbooleanfalse是否禁用
clearablebooleantrue是否可清空
start-placeholderstring'开始日期'起始占位文案
end-placeholderstring'结束日期'截止占位文案
unlink-panelsbooleanfalse范围选择时左右面板独立切换
disabled-date(date: Date) => boolean—禁用日期判定

其余属性(format、popper-class、range-separator 覆盖等)透传 el-date-picker(picker 形态)/ 根节点(segmented 形态)。

事件 ​

事件名参数说明
update:model-value(value: BizDateRangeValue)值变化
change(value: BizDateRangeValue, presetKey: string | null)值提交;presetKey 为命中预设标识,自定义范围为 null
exceed(spanDays: number, maxSpanDays: number)跨度超限被拦截时触发,值未提交

插槽 ​

插槽名说明
—无插槽

Expose ​

名称类型说明
setPreset(key: string) => boolean按预设标识应用范围;未找到返回 false
getActivePreset() => BizDateRangePreset | null当前命中的预设项;自定义范围为 null
refresh() => void按此刻重算并重新提交当前命中的相对预设
focus() => void聚焦内部选择器
blur() => void使内部选择器失焦