Skip to content

WeekRangePicker 周范围选择器 ​

简介 ​

按周选择连续区间。周固定为 ISO 周(周一 00:00:00 ~ 周日 23:59:59.999),不随界面语言变化,v-model 即这两端的时间戳。

键盘:← / → 移动一周,↑ / ↓ 跨一行,PageUp / PageDown 换季度,Enter 选中,Esc 关闭。

代码演示 ​

基础使用 ​

输入框展示格式由 format 决定,默认 2026 W05。

禁用部分周 ​

disabled-week 收到该周的 { year, week, start, end },返回 true 即不可选 —— 点击无效,键盘移动时也会跳过。

自定义快捷项 ​

不传 shortcuts 时内置「本周 / 上周 / 近 4 周 / 本月 / 本年」;传入自己的数组会整体替换,传 [] 则收起。

跨年选择 ​

值跨年时,面板打开在起始周所在季度。

API ​

WeekRangePickerProps ​

属性描述类型默认值
model-value周区间,两端分别对齐到周一 / 周日Date[] | null-
format输入框展示格式stringGGGG [W]WW
disabled-week禁用某些周(week: WeekEntry) => boolean-
shortcuts快捷项,[] 收起内置项WeekShortcut[]内置 5 项
start-placeholder开始输入框的 placeholderstring-
end-placeholder结束输入框的 placeholderstring-
readonly是否只读booleanfalse
disabled是否禁用booleanfalse
clearable是否可清空booleantrue
validate-event是否触发表单验证booleantrue

其余属性(size、popper-class 等)透传 el-date-picker 的公共属性。输入框不支持手动输入。

WeekRangePickerSlots ​

插槽描述属性
range-separator两个输入框之间的分隔-

WeekRangePickerEmits ​

事件描述类型
update:modelValue绑定值被改变时触发(value: Date[] | null) => void
change绑定值被改变时触发(value: Date[] | null) => void
clear点击清空按钮时触发() => void
focus / blur输入框聚焦 / 失焦(event: FocusEvent) => void
visible-change面板展开 / 收起(visible: boolean) => void

WeekRangePickerExpose ​

方法描述
focus聚焦输入框
blur失焦
handleOpen展开面板
handleClose收起面板

类型 ​

ts
interface WeekEntry {
  /** ISO 周年,可能不等于 start 的日历年 */
  year: number;
  /** ISO 周号 1 ~ 53 */
  week: number;
  /** 周一 00:00:00.000 */
  start: Date;
  /** 周日 23:59:59.999 */
  end: Date;
}

interface WeekShortcut {
  text: string;
  value: () => [Date, Date];
}

基于 MIT 许可发布