mand-mobile
Version:
A Vue.js 2.0 Mobile UI Toolkit
177 lines (136 loc) • 4.93 kB
Markdown
---
title: DatePicker 时间选择器
preview: https://didi.github.io/mand-mobile/examples/#/date-picker
---
选择日期或者时间,支持年/月/日/时/分和按照范围选择
```javascript
import { DatePicker } from 'mand-mobile'
Vue.component(DatePicker.name, DatePicker)
```
<!-- DEMO -->
|属性 | 说明 | 类型 | 默认值 | 备注 |
|----|-----|------|------|------|
|type|日期选择类型|String|`date`|`date`, `time`, `datetime`, `custom`|
|custom-types|自定义类型包含的`日期元素`, `[yyyy, MM, dd, hh, mm]`|Array|-|仅用于type为`custom`|
|min-date|最小可选日期(时间)|Date|-|-|
|max-date|最大可选日期(时间)|Date|-|-|
|default-date|初始选中日期|Date|-|-|
|minute-step|分钟数递增步长|Number|`1`|-|
|unit-text|元素单位展示文案设置|Array|`['年', '月', '日', '时', '分']`|复杂逻辑使用`text-render`|
|text-render|自定义选项展示文案方法|Function(typeFormat, column0Value, column1Value, ...): String|-|如果使用`text-render`则`unit-text`无效, 示例见附录|
|today-text|今天展示文案设置|String|`今天`|使用`&`可占位日期数字,如`&(今天)`|
|line-height|选择器选项行高|Number|`45`|单位`px`|
|keep-index <sup class="version-after">2.5.2+</sup>|当列数据变化时保持上次停留的位置|Boolean|`false`|-|
|is-view|是否内嵌在页面内展示, 否则以弹层形式|Boolean|`false`|-|
|title|选择器标题|String|-|-|
|describe|选择器描述|String|-|-|
|ok-text|选择器确认文案|String|`确认`|-|
|cancel-text|选择器取消文案|String|`取消`|-|
|large-radius <sup class="version-after">2.4.0+</sup>|选择器标题栏大圆角模式|Boolean|`false`|-|
|mask-closable|点击蒙层是否可关闭弹出层|Boolean|`true`|-|
获取特定格式的日期时间字符串(`format`中的`日期元素`需在列数据中存在),需在`initialed`事件触发之后或异步调用
|参数 | 说明 | 类型 | 默认 |
|----|-----|------|------|
|format|格式|String|`yyyy-MM-dd hh:mm`|
返回
|属性 | 说明 | 类型 |
|----|-----|------|
|dateStr|日期时间字符串|String|
> 列表项值属性介绍见附录
获取某列当前选中项的值,需在`initialed`事件触发之后或异步调用
|参数 | 说明 | 类型 |
|----|-----|------|
|index|列索引|Number|
返回
|属性 | 说明 | 类型 |
|----|-----|------|
|activeItemValue|选中项的值|Object: {text, value, typeFormat}|
获取所有列选中项的值,需在`initialed`事件触发之后或异步调用
返回
|属性 | 说明 | 类型 |
|----|-----|------|
|columnsValue|所有列选中项的值|Array<{text, value, typeFormat}>|
获取某列当前选中项的索引值,需在`initialed`事件触发之后或异步调用
|参数 | 说明 | 类型 |
|----|-----|------|
|index|列索引|Number|
返回
|属性 | 说明 | 类型 |
|----|-----|------|
|activeItemIndex|选中项的索引值|Number|
获取所有列选中项的索引值,需在`initialed`事件触发之后或异步调用
返回
|属性 | 说明 | 类型 |
|----|-----|------|
|columnsIndex|所有列选中项的索引值|Array|
选择器数据初始化完成事件
选择器选中项更改事件
|参数 | 说明 | 类型 |
|----|-----|------|
|columnIndex|更改列的索引值|Number|
|itemIndex|更改列选中项的索引值|Number|
|value|更改列选中项的的值|Object: {text, value, typeFormat}|
选择器确认选择事件(仅`is-view`为`false`)
|参数 | 说明 | 类型 |
|----|-----|------|
|columnsValue|所有列选中项的值|Array<{text, value, typeFormat}>|
* columnData
```javascript
const columnData = [
// 年
[
{
text: '2017年', // 日期元素展示文案
value: 2017, // 日期元素数字
typeFormat: 'yyyy' // 日期元素类型 yyyy, MM, dd, hh, mm, HalfDay
}
],
// 月, 日,时, 分
[
//..,
],
// 上午/下午
[
{
text: '上午',
value: 0,
typeFormat: 'HalfDay'
}, {
text: '下午',
value: 1,
typeFormat: 'HalfDay'
}
]
]
```
* textRender
```javascript
export default {
// ...
methods: {
textRender() {
const args = Array.prototype.slice.call(arguments)
const typeFormat = args[0] // 类型
const column0Value = args[1] // 第1列选中值
const column1Value = args[2] // 第2列选中值
const column2Value = args[3] // 第2列选中值
},
}
// ...
}
```