UNPKG

zent

Version:

一套前端设计语言和基于React的实现

143 lines (116 loc) 8.31 kB
--- title: DatePicker subtitle: 时间选择 path: component/datepicker group: 数据 --- ## DatePicker 时间选择 时间选择组件, 提供基础的时间、日期筛选功能. ## 使用指南 - 包含四个组件:`DatePicker``MonthPicker``WeekPicker``RangePicker`- `DatePicker``RangePicker` 可以通过 `showTime` 属性来支持时间的选择。 - 通过 `format` 属性自定义日期字符串的格式,`format` 的详细说明见页面最后的表格。 ## API ### 共同的 API | 参数 | 说明 | 类型 | 默认值 | 是否必须 | | ------------ | ------------------------ | -------------- | --------------- | ---- | | onChange | 选择日期回调函数,受控组件,value 和 onChange 必须同时提供 | func | `noop` | 是 | | value | 默认选择日期 | string \| Date | | 是 | | defaultValue | 默认面板显示日期 | string \| Date | | 否 | | onClick | 用户点击选择日期的回调 | func | | 否 | | openPanel | 面板是否打开 | boolean | false | 否 | | onOpen | 面板弹出的回调 | func | | 否 | | onClose | 面板关闭的回调 | func | | 否 | | disabled | 是否处于 disabled 状态 | bool | `false` | 否 | | format | 返回日期字符串格式 | string | 不同的picker默认值不同,下详 | 否 | | placeholder | 提示文案 | string | 不同的picker默认值不同,下详 | 否 | | className | 额外的 css 类 | string | | 否 | | width | 宽度 | string \| number | | 否 | | prefix | 自定义前缀 | string | `'zent'` | 否 | | confirmText | 确定按钮文字 | string | '确定' | 否 | | popPosition | pop 弹出层 align 方向 | oneOf(['left', 'right']) | 'left' | 否 | ### DatePicker | 参数 | 说明 | 类型 | 默认值 | 是否必须 | | ------------ | ------------------------ | -------------- | --------------- | ---- | | showTime | 是否显示时间筛选 | bool | `false` | 否 | | disabledTime | 时间禁用函数 | func | `noop` | 否 | | disabledDate | 判断日期是否可选函数 | func | `noop` | 否 | | format | 返回日期字符串格式 | string | `YYYY-MM-DD` | 否 | | min | 可选日期的最小值 | string/Date | | 否 | | max | 可选日期的最大值 | string/Date | | 否 | | valueType | 设置 onChange 的返回值,可选值为 `string`/`number`/`date` | string | '' | 否 | | name | input 的 name 属性 | string | | 否 | | placeholder | 提示文案 | string | `请选择日期` | 否 | | defaultTime | 自定义时间的默认值 | string | `'00:00:00'` | 否 | | onBeforeConfirm | 用户点击确认前的回调函数,返回 true 表示可以确认,false 表示不能确认 | func | | 否 | | onBeforeClear | 用户点击清除icon前的回调函数,返回 true 表示可以清除,false 表示不能清除 | func | | 否 | **注意:** - `disabledDate` 函数调用时会传入一个 date 对象作为参数,用户可以自定义这个 date 是否处于禁用区间,返回 true/false,需要特殊的禁用规则时可以通过这个函数来实现,一般情况下使用 `max``min` 就可以满足需求。 - `max/min``disabledDate` 会存在冲突,同时存在的时候以 `disabledDate` 的返回值为准,大于**等于** min 小于 max 可选。 - `disabledTime` 函数应该返回一个对象,对象中包含 `disabledHour`,`disabledMinute`,`disabledSecond` 三个函数。 - `format` 只需要传日期部分,时间部分当 `showTime``true` 时会自动拼接, 同 `RangePicker`。 更详细用法请看示例。 ### WeekPicker | 参数 | 说明 | 类型 | 默认值 | 是否必须 | | ------------ | ------------------------ | -------------- | --------------- | ---- | | startDay | 一周的开始日期 | number | 1 | 否 | | disabledDate | 判断日期是否可选函数 | func | `noop` | 否 | | format | 返回日期字符串格式 | string | `YYYY-MM-DD` | 否 | | min | 可选日期的最小值 | string/Date | | 否 | | max | 可选日期的最大值 | string/Date | | 否 | | valueType | 设置 onChange 的返回值,可选值为 `string`/`number`/`date` | string | '' | 否 | | name | input 的 name 属性 | string | | 否 | | placeholder | 提示文案 | string | `请选择日期` | 否 | | defaultTime | 自定义时间的默认值 | string | `'00:00:00'` | 否 | ### MonthPicker | 参数 | 说明 | 类型 | 默认值 | 是否必须 | | ------------ | ------------------------ | -------------- | --------------- | ---- | | value | 选中的月份 | string/Date | `new Date()` | 否 | | format | 返回月份字符串格式 | string | `'YYYY-MM'` | 否 | | disabled | 是否处于disabled 状态 | bool | `false` | 否 | | name | input 的 name 属性 | string | | 否 | | placeholder | 提示文案 | string | `请选择月份` | 否 | ### RangePicker | 参数 | 说明 | 类型 | 默认值 | 是否必须 | | ------------ | ---------- | ------ | -------------- | ---- | | type | 类型,`combine`/`split` | string | `combine` | 否 | | showTime | 是否显示时间筛选 | bool | `false` | 否 | | value | 默认选择日期 | array | `[]` | 否 | | format | 返回日期字符串格式 | string | `'YYYY-MM-DD'` | 否 | | disabledDate | 判断日期是否可选函数 | func | `noop` | 否 | | disabledTime | 时间禁用函数 | func | `noop` | 否 | | min | 可选日期的最小值 | string/instanceOf(Date) | `` | 否 | | max | 可选日期的最大值 | string/instanceOf(Date) | `` | 否 | | valueType | 设置 onChange 的返回值,可选值为 `string`/`number`/`date` | string | '' | 否 | | placeholder | 提示文案 | array | `['开始日期','结束日期']` | 否 | | defaultTime | 自定义时间的默认值 | string | `'00:00:00'` | 否 | **注意:** - `type` 为了和老代码兼容,默认是 `combine`,但是交互方面现在是推荐使用 `split`- `showTime` 的时候,传入的 `min``max` 如果为字符串,必须有 time 部分,即 `2017-01-01 11:11:11` 种格式。 - `disabledTime``DatePicker` 的类似,区别在于被调用时会传入一个 `type` 参数,值为 `start/end`,参照上面的 `disabledTime` 函数。 - `onClick` 调用时会传入被点击的日期值和点击的类型(start/end) 作为参数,即 `onClick(val, type)`### 格式化字符表 | | 字符 | 输出 | | -------- | -------- | -------- | | **Year** | YY | 70 71 ... 29 30 | | | YYYY | 1970 1971 ... 2029 2030 | | **Month** | M | 1 2 ... 11 1 | | | MM | 01 02 ... 11 12 | | | MMM | 1月, 2月 ... 11月, 12月 | | | MMMM | 一月, 二月 ... 十一月, 十二月 | | **Date** | D | 1 2 ... 30 31 | | | DD | 01 02 ... 30 31 | | | d | 0 1 ... 5 6 | | | ddd | 周日, 周一 ... 周五, 周六 | | | dddd | 星期日, 星期一 ... 星期五, 星期六 | <style> .zent-picker-demo{ margin-bottom: 10px; margin-right: 10px; } .demo-subtitle{ margin-bottom: 5px; font-size: 12px; color: #666; } </style>