Date-time-picker 日期时间选择器
DateTimePicker 由 DatePicker 和 TimePicker 派生,Picker Options 或者其他选项可以参照 DatePicker 和 TimePicker。
代码演示
默认           
 带快捷选项           
日期与时间点
快捷选项通过 picker-options 设置。
查看代码 < />
<template>
  <section class="date-time-picker-demo">
    <div class="container">
      <div class="block">
        <span class="demonstration">默认</span>
        <w-date-picker type="datetime"
          v-model="value1"
          placeholder="请选择日期">
        </w-date-picker>
      </div>
      <div class="block">
        <span class="demonstration">带快捷选项</span>
        <w-date-picker type="datetime"
          v-model="value2"
          align="right"
          :picker-options="pickerOptions"
          placeholder="请选择日期">
        </w-date-picker>
      </div>
    </div>
  </section>
</template>
<script>
export default {
  data () {
    return {
      pickerOptions: {
        shortcuts: [{
          text: '今天',
          onClick(picker) {
              picker.$emit('pick', new Date())
          }
        }, {
          text: '昨天',
          onClick(picker) {
              const date = new Date()
              date.setTime(date.getTime() - 3600 * 1000 * 24)
              picker.$emit('pick', date)
          }
        }, {
          text: '一周前',
          onClick(picker) {
              const date = new Date()
              date.setTime(date.getTime() - 3600 * 1000 * 24 * 7)
              picker.$emit('pick', date)
          }
        }]
      },
      value1: '',
      value2: ''
    }
  }
}
</script>
<style scoped lang="scss">
.date-time-picker-demo {
  .container {
    padding: 0;
    display: flex;
    .block {
      padding: 30px 0;
      text-align: center;
      border-right: 1px solid #eff2f6;
      flex: 1;
      &:last-child {
        border-right: none;
      }
      .demonstration {
        display: block;
        color: #8492a6;
        font-size: 14px;
        margin-bottom: 20px;
      }
    }
  }
}
</style>默认 
  至    
带快捷选项 
 至    
日期与时间范围
使用datetimerange进行范围选择时,在日期选择面板中选定起始与结束的日期,默认会使用该日期的00:00:00作为起始与结束的时刻。
查看代码 < />
<template>
  <section class="date-time-picker-demo">
    <div class="container">
      <div class="block">
        <span class="demonstration">默认</span>
        <w-date-picker type="datetimerange"
          v-model="value3"
          range-separator="至"
          start-placeholder="开始日期"
          end-placeholder="结束日期">
        </w-date-picker>
      </div>
      <div class="block">
        <span class="demonstration">带快捷选项</span>
        <w-date-picker type="datetimerange"
          v-model="value4"
          :picker-options="pickerOptions"
          range-separator="至"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          align="right">
        </w-date-picker>
      </div>
    </div>
  </section>
</template>
<script>
export default {
  data () {
    return {
      pickerOptions: {
        shortcuts: [{
          text: '最近一周',
          onClick(picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
            picker.$emit('pick', [start, end]);
          }
        }, {
          text: '最近一个月',
          onClick(picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
            picker.$emit('pick', [start, end]);
          }
        }, {
          text: '最近三个月',
          onClick(picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
            picker.$emit('pick', [start, end]);
          }
        }]
      },
      value3: '',
      value4: ''
    }
  }
}
</script>
<style scoped lang="scss">
.date-time-picker-demo {
  .container {
    padding: 0;
    .block {
      padding: 30px 0;
      text-align: center;
      border-right: 1px solid #eff2f6;
      &:last-child {
        border-right: none;
      }
      .demonstration {
        display: block;
        color: #8492a6;
        font-size: 14px;
        margin-bottom: 20px;
      }
    }
  }
}
</style>默认时间为 12:00:00           
 
          起始日期时刻为 12:00:00,结束日期时刻为 08:00:00
         
 至    
默认时间
通过default-time设置开始和结束日期;接受String或者数组。
查看代码 < />
<template>
  <section class="date-time-picker-demo">
    <div class="container">
      <div class="block">
        <span class="demonstration">默认时间为 12:00:00</span>
        <w-date-picker type="datetime"
          default-time="12:00:00"
          v-model="value5"
          placeholder="请选择日期">
        </w-date-picker>
      </div>
      <div class="block">
        <span class="demonstration">起始日期时刻为 12:00:00,结束日期时刻为 08:00:00</span>
        <w-date-picker type="datetimerange"
          v-model="value6"
          :default-time="['12:00:00', '08:00:00']"
          range-separator="至"
          start-placeholder="开始日期"
          end-placeholder="结束日期">
        </w-date-picker>
      </div>
    </div>
  </section>
</template>
<script>
export default {
  data () {
    return {
      value5: '',
      value6: ''
    }
  }
}
</script>
<style scoped lang="scss">
.date-time-picker-demo {
  .container {
    padding: 0;
    .block {
      padding: 30px 0;
      text-align: center;
      border-right: 1px solid #eff2f6;
      &:last-child {
        border-right: none;
      }
      .demonstration {
        display: block;
        color: #8492a6;
        font-size: 14px;
        margin-bottom: 20px;
      }
    }
  }
}
</style>API
Attributes
| 参数 | 说明 | 类型 | 可选值 | 默认值 | Version | 
|---|---|---|---|---|---|
| align | 对齐方式 | String | left, center, right | left | |
| clearable | 是否显示清除按钮 | Boolean | — | true | |
| clear-icon | 自定义清空图标的类名 | String | — | w-icon-close | |
| disabled | 禁用 | Boolean | — | false | |
| default-value | 可选,选择器打开时默认显示的时间 | Date | 可被new Date()解析 |  — | |
| default-time | 选中日期后的默认具体时刻 | 非范围选择时:string / 范围选择时:string[] | 非范围选择时:形如12:00:00的字符串;范围选择时:数组,长度为 2,每项值为字符串,形如12:00:00,第一项指定开始日期的时刻,第二项指定结束日期的时刻。不指定会使用时刻 00:00:00 |  — | |
| editable | 文本框可输入 | Boolean | — | true | |
| end-placeholder | 范围选择时结束日期的占位内容 | String | — | — | |
| format | 显示在输入框中的格式 | String | 见DatePicker组件日期格式 | yyyy-MM-dd HH:mm:ss | |
| name | 原生属性 | String | — | — | |
| placeholder | 非范围选择时的占位内容 | String | — | — | |
| popper-class | DateTimePicker 下拉框的类名 | String | — | — | |
| picker-options | 当前时间日期选择器特有的选项参考下表 | Object | — | {} | |
| range-separator | 选择范围时的分隔符 | String | - | '-' | |
| readonly | 完全只读 | Boolean | — | false | |
| size | 输入框尺寸 | String | large, medium, small, mini | medium | |
| start-placeholder | 范围选择时开始日期的占位内容 | String | — | — | |
| suffix-icon | 自定义尾部图标的类名 | String | — | w-icon-date | |
| time-arrow-control | 是否使用箭头进行时间选择 | Boolean | — | false | |
| type | 显示类型 | String | year/month/date/week/ datetime/datetimerange/daterange | date | |
| unlink-panels | 在范围选择器里取消两个日期面板之间的联动 | Boolean | — | false | |
| value / v-model | 绑定值 | Date(DateTimePicker) / Array(DateTimeRangePicker) | — | — | |
| value-format | 可选,绑定值的格式。不指定则绑定值为 Date 对象 | String | 见DatePicker组件日期格式 | — | 
Picker Options
| 参数 | 说明 | 类型 | 可选值 | 默认值 | Version | 
|---|---|---|---|---|---|
| firstDayOfWeek | 周起始日 | Number | 1 到 7 | 7 | |
| disabledDate | 设置禁用状态,参数为当前日期,要求返回 Boolean | Function | — | — | |
| shortcuts | 设置快捷选项,需要传入 { text, onClick } 对象用法参考 demo 或下表 | Object[] | — | — | 
Shortcuts
| 参数 | 说明 | 类型 | 可选值 | 默认值 | Version | 
|---|---|---|---|---|---|
| onClick | 选中后的回调函数,参数是 vm,可通过触发 'pick' 事件设置选择器的值。例如 vm.$emit('pick', new Date()) | Function | — | — | |
| text | 标题文本 | String | — | — | 
Events
| Event Name | Description | Parameters | Version | 
|---|---|---|---|
| blur | 当 input 失去焦点时触发 | 组件实例 | |
| change | 用户确认选定的值时触发 | 组件绑定值。格式与绑定值一致,可受 value-format 控制 |  |
| focus | 当 input 获得焦点时触发 | 组件实例 | 
Methods
| 方法名 | 说明 | 参数 | Version | 
|---|---|---|---|
| focus | 使 input 获取焦点 | — | 
Slots
| Name | 说明 | Version | 
|---|---|---|
| range-separator | 自定义分隔符 | 
贡献者
| 类型 | 参与者 | 
|---|---|
| 设计者 | UED视觉组 | 
| 维护者 | UED前端组 |