DatePicker 日期选择框

输入或选择日期的控件。

何时使用

当用户需要输入一个日期,可以点击标准输入框,弹出日期面板进行选择。

代码演示

基础

最简单的用法,在浮层中可以选择或者输入日期

  1. <template>
  2. <v-date-picker v-model="date1" clearable @change="change"></v-date-picker>
  3. <v-date-picker v-model="rangeDate1" range clearable @confirm="confirm" @change="rangeChange"></v-date-picker>
  4. </template>
  5. <script>
  6. export default {
  7. data:()=> ({
  8. date1: '2015-12-06'
  9. rangeDate1: ['2015-12-06','2016-12-06']
  10. }),
  11. watch: {
  12. date1(val){
  13. console.log('watch:', val)
  14. },
  15. rangeDate1(val){
  16. console.log('watch:', val)
  17. }
  18. },
  19. methods: {
  20. confirm() {
  21. console.log('confirm')
  22. },
  23. change(time) {
  24. console.log('change:', time)
  25. },
  26. rangeChange(startTime, endTime) {
  27. console.log('change:', startTime, endTime)
  28. }
  29. }
  30. }
  31. </script>

三种大小

三种大小的输入框,若不设置,则为 default

  1. <template>
  2. <v-date-picker v-model="date2" size="sm"></v-date-picker>
  3. <v-date-picker v-model="date3"></v-date-picker>
  4. <v-date-picker v-model="rangeDate2" range size="lg"></v-date-picker>
  5. </template>
  6. <script>
  7. export default {
  8. data:()=> ({
  9. date2: '2015-12-06'
  10. date3: '2015-12-06'
  11. rangeDate2: ['2015-12-06','2016-12-06']
  12. })
  13. }
  14. </script>

日期格式

使用 format 属性,可以自定义日期显示格式。

  1. <template>
  2. <v-date-picker v-model="date4" format="yyyy/MM/dd"></v-date-picker>
  3. <v-date-picker range v-model="rangeDate3" format="yyyy/MM/dd"></v-date-picker>
  4. </template>
  5. <script>
  6. export default {
  7. data:()=> ({
  8. date4: '2015-12-06'
  9. rangeDate3: ['2015-12-06','2016-12-06']
  10. })
  11. }
  12. </script>

日期时间选择

增加选择时间功能

  1. <template>
  2. <v-date-picker clearable show-time v-model="time1" @change="change"></v-date-picker>
  3. <v-date-picker range show-time v-model="rangeTime1" clearable></v-date-picker>
  4. </template>
  5. <script>
  6. export default {
  7. data:()=> ({
  8. time1: '2015-12-06 23:12',
  9. rangeTime1: ['2015-12-06 23:12','2016-12-06 23:12']
  10. }),
  11. methods: {
  12. change(time) {
  13. console.log('change:', time)
  14. }
  15. }
  16. }
  17. </script>

不可选用日期和时间

可用 disabledDate 和 disabledTime 分别禁止选择部分日期和时间,其中 disabledTime 需要和 showTime 一起使用。

  1. <template>
  2. <v-date-picker v-model="time2" show-time :disabled-date="disabledDate" :disabled-time="disabledTime()"></v-date-picker>
  3. <v-date-picker v-model="rangeTime2" range show-time :disabled-date="disabledDate" :disabled-time="disabledRangeTime()"></v-date-picker>
  4. </template>
  5. <script>
  6. export default {
  7. data:()=> ({
  8. time2: '2015-12-06 23:12',
  9. rangeTime2: ['2015-12-06 23:12','2016-12-06 23:12']
  10. }),
  11. methods: {
  12. range (start, end){
  13. const result = [];
  14. for (let i = start; i < end; i++) {
  15. result.push(i);
  16. }
  17. return result;
  18. },
  19. disabledDate(current){
  20. return current && current.valueOf() < Date.now();
  21. },
  22. disabledTime(){
  23. return [{
  24. disabledHours: (h) => this.range(0, 24).splice(4, 20).includes(h),
  25. disabledMinutes: (m) => this.range(30, 60).includes(m)
  26. }]
  27. },
  28. disabledRangeTime(){
  29. return [{
  30. disabledHours: (h) => this.range(0, 24).splice(4, 20).includes(h),
  31. disabledMinutes: (m) => this.range(30, 60).includes(m)
  32. },{
  33. disabledHours: (h) => this.range(0, 60).splice(20, 4).includes(h),
  34. disabledMinutes: (m) => this.range(0, 31).includes(m)
  35. }]
  36. }
  37. }
  38. }
  39. </script>

禁用

选择框的不可用状态。

  1. <v-date-picker disabled></v-date-picker>

API

DatePicker Props

参数说明类型默认值
value默认日期,当range为true时为数组[开始时间,结束时间]string/array-
size输入框大小,lg 高度为 32px,sm 为 22px,默认是 28pxstring-
placeholder占位提示符string请选择日期
position下拉框的定位方式(absolute、fixed)stringabsolute
popupContainer下拉菜单渲染父节点。默认渲染到 body 上,如果你遇到菜单滚动定位问题,试试修改为滚动的区域,并相对其定位。function() => document.body
range能否进行范围选择booleanfalse
showTime增加时间选择功能booleanfalse
maxRange选择最大范围限制,以天为单位(只有range为true的时候才起作用)number-
clearable是否显示清除按钮booleanfalse
format展示的日期格式stringyyyy-MM-dd
disabled禁用booleanfalse

DatePicker Events

事件名称说明回调参数
change时间发生变化的时候触发time or (startTime, endTime)
confirm点击确定按钮时触发-