简体中文
DatePicker 日期选择框
输入或选择日期的控件。
基础用法
通过设置 picker
属性,指定选择框类型。可选值:date
、month
、year
,默认值为date
。
<>
<template>
<div class="kl-date-picker">
<kl-date-picker></kl-date-picker>
<kl-date-picker picker="month"></kl-date-picker>
<kl-date-picker picker="year"></kl-date-picker>
</div>
</template>
<script setup lang="ts"></script>
<style scoped lang="scss">
.kl-date-picker {
display: flex;
flex-direction: column;
align-items: flex-start;
> div {
margin-bottom: 20px;
}
}
</style>
日期时间选择
添加 isDateTime
属性,增加选择时间功能。默认值为false
。
<>
<template>
<div class="kl-date-picker">
<kl-date-picker isDateTime></kl-date-picker>
</div>
</template>
<script setup lang="ts"></script>
<style scoped lang="scss"></style>
范围选择器
添加 isRangePicker
属性,选择一段时间。默认值为false
。
<>
<template>
<div class="kl-date-picker">
<kl-date-picker isRangePicker></kl-date-picker>
<kl-date-picker isRangePicker picker="month"></kl-date-picker>
<kl-date-picker isRangePicker picker="year"></kl-date-picker>
<kl-date-picker isDateTime isRangePicker></kl-date-picker>
</div>
</template>
<script setup lang="ts"></script>
<style scoped lang="scss">
.kl-date-picker {
display: flex;
flex-direction: column;
align-items: flex-start;
> div {
margin-bottom: 20px;
}
}
</style>
日期格式
使用format
属性,可以自定义日期显示格式。
<>
<template>
<div class="kl-date-picker">
<kl-date-picker format="YYYY/MM/DD"></kl-date-picker>
<kl-date-picker format="MM/DD/YYYY"></kl-date-picker>
<kl-date-picker picker="month" format="YYYY/MM"></kl-date-picker>
<kl-date-picker picker="month" format="YYYY.M"></kl-date-picker>
<kl-date-picker isDateTime format="YYYY/MM/DD HH:mm:ss"></kl-date-picker>
</div>
</template>
<script setup lang="ts"></script>
<style scoped lang="scss">
.kl-date-picker {
display: flex;
flex-direction: column;
align-items: flex-start;
> div {
margin-bottom: 20px;
}
}
</style>
输入框提示文字
通过placeholder
、placeholderRange
属性,自定义输入框提示文字。
<>
<template>
<div class="kl-date-picker">
<kl-date-picker placeholder="Hello World"></kl-date-picker>
<kl-date-picker
isRangePicker
:placeholderRange="['Hello World', '你好,世界']"
></kl-date-picker>
</div>
</template>
<script setup lang="ts"></script>
<style scoped lang="scss">
.kl-date-picker {
display: flex;
flex-direction: column;
align-items: flex-start;
> div {
margin-bottom: 20px;
}
}
</style>
不可选择的日期和时间
可用 disabledDate
和 disabledTime
分别禁止选择部分日期和时间,其中 disabledTime 需要和 isDateTime
一起使用。
<>
<template>
<div class="kl-date-picker">
<kl-date-picker :disabledDate="disabledDate"></kl-date-picker>
<kl-date-picker isDateTime :disabledTime="disabledTime"></kl-date-picker>
</div>
</template>
<script setup lang="ts">
const disabledDate = [
[2023, 2, 26],
[2023, 2, 27],
[2023, 2, 28]
]
const disabledTime = [
[2, 3],
[5, 6],
[8, 9]
]
</script>
<style scoped lang="scss">
.kl-date-picker {
display: flex;
flex-direction: column;
align-items: flex-start;
> div {
margin-bottom: 20px;
}
}
</style>
节假日视图
添加showHolidays
属性,开启节假日视图,默认值为false
。
<>
<template>
<div class="kl-date-picker">
<kl-date-picker showHolidays></kl-date-picker>
<kl-date-picker isDateTime showHolidays></kl-date-picker>
</div>
</template>
<script setup lang="ts"></script>
<style scoped lang="scss">
.kl-date-picker {
display: flex;
flex-direction: column;
align-items: flex-start;
> div {
margin-bottom: 20px;
}
}
</style>
国际化
设置lang
属性为en
,一键切换为英文。默认值为ch
。
<>
<template>
<div class="kl-date-picker">
<KlDatePicker lang="en"></KlDatePicker>
<KlDatePicker picker="month" lang="en"></KlDatePicker>
<KlDatePicker picker="year" lang="en"></KlDatePicker>
<KlDatePicker isDateTime lang="en"></KlDatePicker>
<KlDatePicker isRangePicker lang="en"></KlDatePicker>
<KlDatePicker picker="month" isRangePicker lang="en"></KlDatePicker>
<KlDatePicker picker="year" isRangePicker lang="en"></KlDatePicker>
</div>
</template>
<script setup lang="ts"></script>
<style scoped lang="scss">
.kl-date-picker {
display: flex;
flex-direction: column;
align-items: flex-start;
> div {
margin-bottom: 20px;
}
}
</style>
API
属性
名称 | 描述 | 类型 | 默认值 | 必填 |
---|---|---|---|---|
placeholder | 输入框占位文本 | string | 否 | |
placeholderRange | 范围选择输入框占位文本 | string[] | 否 | |
picker | 选择器类型 | year/month/date | date | 否 |
format | 展示的日期格式,配置参考 dayjs | string | YYYY-MM-DD | 否 |
isDateTime | 支持时间选择 | boolean | false | 否 |
isRangePicker | 选择一段时间 | boolean | false | 否 |
disabledDate | 设置不可选日期 | Array<number[]> | 否 | |
disabledTime | 设置不可选时间 | Array<number[]> | 否 | |
showHolidays | 农历,节假日显示 | boolean | false | 否 |
lang | 语言设置 | zh / en | zh | 否 |
事件
事件名 | 说明 | 回调参数 |
---|---|---|
change | input 框值改变时触发,用于获取输入值 | (value: string / string[]) |
FAQ
关于日期选择框组件数据获取
日期选择框组件
是一个非受控组件,即其状态由组件内部维护,可以通过ref
获取组件的模板引用,通过.value
获取组件日期数据。例:
vue
<template>
<div>
<kl-date-picker ref="datePickerRef"></kl-date-picker>
</div>
</template>
<script setup lang="ts">
import { ref } from 'vue'
import { KlDatePicker } from 'kunlun-design'
const datePickerRef = ref<InstanceType<typeof KlDatePicker> | null>(null)
// 打印日期数据
console.log(datePickerRef.value?.value)
</script>
在后续,我们会根据用户体验来评判这种设计是否合理。对于不合理的设计,我们将会在后续版本迭代中进行相应的重构。