简介

官网:https://www.iviewui.com/

组件

DatePicker

  1. <DatePicker
  2. v-model="hopeExpectedPickup"
  3. type="datetime"
  4. format="yyyy/MM/dd HH:mm"
  5. :placeholder="$t('lssong.orderSubmit.hopeExpireTimeSelect')"
  6. :time-picker-options="{
  7. steps: [1, 15, 10],
  8. disabledHours
  9. }"
  10. :options="optionsPicker"
  11. style="font-size: 12px; height: 20px; width: 240px"
  12. @on-change="datePickerChange"
  13. />
  1. export default {
  2. data() {
  3. return {
  4. hopeExpectedTimeOld: null, // 期望收货时间
  5. hopeExpectedPickupOld: null, // 期望取货时间
  6. optionsPicker: {
  7. disabledDate (date) {
  8. if (Date.now() - date.getTime() < 60 * 1000) {
  9. return false
  10. }
  11. return date.getTime() < Date.now() - 3600 * 1000 * 24
  12. // return date && date.valueOf() < Date.now() - 86400000
  13. }
  14. },
  15. disabledHours: [],
  16. }
  17. },
  18. methods: {
  19. datePickerChange () {
  20. console.log('hhh', this.hopeExpectedPickup)
  21. this.disabledHours = []
  22. // console.log('dateChange')
  23. const hopeTime = new Date(this.hopeExpectedPickup)
  24. const hopeTimeOld = new Date(this.hopeExpectedPickupOld)
  25. const nowTime = new Date()
  26. const startAt = hopeTime * 1000 / 1000
  27. console.log(startAt, hopeTime.getDate(), nowTime.getDate())
  28. // if (hopeTime.getDate() === nowTime.getDate()) {
  29. const hours = nowTime.getHours()
  30. if (hours < 24 && hours > 0) {
  31. const arr = []
  32. for (let i = hours; i > 0; i--) {
  33. arr.push(i)
  34. }
  35. this.disabledHours = arr
  36. }
  37. // }
  38. if (startAt < Date.now()) {
  39. const d = new Date(Date.now() + 3600 * 1000)
  40. d.setMinutes(0)
  41. this.hopeExpectedPickup = d
  42. } else {
  43. // const date = new Date(this.hopeExpectedPickup)
  44. // date.setHours((new Date()).getHours() + 1)
  45. // date.setMinutes(0)
  46. // this.hopeExpectedPickup = date
  47. // eslint-disable-next-line
  48. if (hopeTimeOld.getYear() === hopeTime.getYear() && hopeTime.getMonth() === hopeTimeOld.getMonth() && hopeTime.getDate() === hopeTimeOld.getDate()) {
  49. } else {
  50. const date = new Date(this.hopeExpectedPickup)
  51. date.setHours((new Date()).getHours() + 1)
  52. date.setMinutes(0)
  53. this.hopeExpectedPickup = date
  54. }
  55. }
  56. }
  57. }

DatePicker props

#

属性 说明 类型 默认值
type 显示类型,可选值为 datedaterangedatetimedatetimerangeyearmonth String date
value 日期,可以是 JavaScript 的 Date,例如 new Date(),也可以是标准的日期格式,点击右边查看
注意:value 使用 v-model 时,值是 Date 类型,可以配合 @on-change 使用
Date -
format 展示的日期格式 Date
- date | daterange
yyyy-MM-dd
- datetime | datetimerange
yyyy-MM-dd HH:mm:ss
- year:yyyy
- month:yyyy-MM
placement 日期选择器出现的位置,可选值为top``top-start``top-end``bottom``bottom-start``bottom-end``left``left-start``left-end``right``right-start``right-end,2.12.0 版本开始支持自动识别 String bottom-start
placeholder 占位文本 String
options 选择器额外配置,比如不可选日期与快捷选项,具体项详见下表 Object -
split-panels 开启后,左右面板不联动,仅在 daterangedatetimerange 下可用。 Boolean false
multiple 开启后,可以选择多个日期,仅在 date 下可用。 Boolean false
show-week-numbers 开启后,可以显示星期数。 Boolean false
start-date 设置默认显示的起始日期。 Date -
confirm 是否显示底部控制栏,开启后,选择完日期,选择器不会主动关闭,需用户确认后才可关闭 Boolean false
open 手动控制日期选择器的显示状态,true 为显示,false 为收起。使用该属性后,选择器不会主动关闭。建议配合 slot 及 confirm 和相关事件一起使用 Boolean null
size 尺寸,可选值为largesmalldefault或者不设置 String -
disabled 是否禁用选择器 Boolean false
clearable 是否显示清除按钮 Boolean true
readonly 完全只读,开启后不会弹出选择器,只在没有设置 open 属性下生效 Boolean false
editable 文本框是否可以输入,只在没有使用 slot 时有效 Boolean true
transfer 是否将弹层放置于 body 内,在 Tabs、带有 fixed 的 Table 列内使用时,建议添加此属性,它将不受父级样式影响,从而达到更好的效果 Boolean false
element-id 给表单元素设置 id,详见 Form 用法。 String -
time-picker-options 可以在 type 为 datetime 和 datetimerange 下,配置 **TimePicker 的属性,比如时间间隔 steps::time-picker-options="{steps: [1, 10, 10]}"** Object {}
separator 两个日期间的分隔符 String -
capture 是否开启 capture 模式,也可通过全局配置 Boolean true
transfer-class-name 开启 transfer 时,给浮层添加额外的 class 名称 String -

options

#
选择器额外配置

属性 说明 类型 默认值
shortcuts 设置快捷选项,每项内容:
- text | String:显示的文案
- value | Function:返回指定的日期,如需自己控制逻辑,可不设置,并使用 onClick 回调
- onClick | Function:点击时的回调,参数为当前日期选择器的 Vue 实例,当需要自定义复杂操作时,可以使用
Array -
disabledDate 设置不可选择的日期,参数为当前的日期,需要返回 Boolean 是否禁用这天 Function -

DatePicker events

#

事件名 说明 返回值
on-change 日期发生变化时触发 返回两个值,已经格式化后的日期,比如 2016-01-01,和当前的日期类型,比如 date
on-open-change 弹出日历和关闭日历时触发 true | false
on-ok 在 confirm 模式下有效,点击确定按钮时触发 -
on-clear 在 confirm 模式或 clearable = true 时有效,在清空日期时触发 -
on-clickoutside 点击外部关闭下拉菜单时触发 event

DatePicker slot

#

名称 说明
自定义选择器的显示内容,建议与 open 等参数一起使用,详见示例