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前端组
上次更新: 3/17/2020, 8:46:00 PM