TnDateTimePicker-日期时间选择器
DateTimePicker 日期时间选择器一般用于选择选择日期时间的情况。
组件位置
typescript
import TnDateTimePicker from '@tuniao/tnui-vue3-uniapp/components/date-time-picker/src/date-time-picker.vue'
import TnDateTimePicker from '@tuniao/tnui-vue3-uniapp/components/date-time-picker/src/date-time-picker.vue'
typescript
import TnDateTimePicker from '@/uni_modules/tuniaoui-vue3/components/date-time-picker/src/date-time-picker.vue'
import TnDateTimePicker from '@/uni_modules/tuniaoui-vue3/components/date-time-picker/src/date-time-picker.vue'
平台差异说明
App(vue) | H5 | 微信小程序 | 支付宝小程序 | ... |
---|---|---|---|---|
√ | √ | √ | √ | 适配中 |
基础使用
- 通过
v-model:open
控制日期时间选择器的显示与隐藏 - 通过
v-model
绑定当前选择的日期时间,格式为YYYY/MM/DD HH:mm:ss
,在不同的模式下传递不同的格式的值,如果为空则使用当前时间
vue
<script lang="ts" setup>
import { ref } from 'vue'
const openDateTimePicker = ref(false)
const dateTimeValue = ref('')
</script>
<template>
<TnDateTimePicker v-model="dateTimeValue" v-model:open="openDateTimePicker" />
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const openDateTimePicker = ref(false)
const dateTimeValue = ref('')
</script>
<template>
<TnDateTimePicker v-model="dateTimeValue" v-model:open="openDateTimePicker" />
</template>
日期时间模式
通过mode
属性控制日期时间选择器的模式,可选值为year
、yearmonth
、date
、time
、datetime
,默认为date
选择年份
设置mode
为year
在该模式下,v-model
绑定的值为YYYY
格式的字符串
vue
<script lang="ts" setup>
import { ref } from 'vue'
const openDateTimePicker = ref(false)
const dateTimeValue = ref('2019')
</script>
<template>
<TnDateTimePicker
v-model="dateTimeValue"
v-model:open="openDateTimePicker"
mode="year"
/>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const openDateTimePicker = ref(false)
const dateTimeValue = ref('2019')
</script>
<template>
<TnDateTimePicker
v-model="dateTimeValue"
v-model:open="openDateTimePicker"
mode="year"
/>
</template>
选择年月
设置mode
为yearmonth
在该模式下,v-model
绑定的值为YYYY/MM
格式的字符串
vue
<script lang="ts" setup>
import { ref } from 'vue'
const openDateTimePicker = ref(false)
const dateTimeValue = ref('2019/12')
</script>
<template>
<TnDateTimePicker
v-model="dateTimeValue"
v-model:open="openDateTimePicker"
mode="yearmonth"
/>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const openDateTimePicker = ref(false)
const dateTimeValue = ref('2019/12')
</script>
<template>
<TnDateTimePicker
v-model="dateTimeValue"
v-model:open="openDateTimePicker"
mode="yearmonth"
/>
</template>
选择日期(默认模式)
设置mode
为date
在该模式下,v-model
绑定的值为YYYY/MM/DD
格式的字符串
vue
<script lang="ts" setup>
import { ref } from 'vue'
const openDateTimePicker = ref(false)
const dateTimeValue = ref('2019-12-27')
</script>
<template>
<TnDateTimePicker
v-model="dateTimeValue"
v-model:open="openDateTimePicker"
mode="date"
/>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const openDateTimePicker = ref(false)
const dateTimeValue = ref('2019-12-27')
</script>
<template>
<TnDateTimePicker
v-model="dateTimeValue"
v-model:open="openDateTimePicker"
mode="date"
/>
</template>
选择时间
设置mode
为time
在该模式下,v-model
绑定的值为HH:mm:ss
格式的字符串
vue
<script lang="ts" setup>
import { ref } from 'vue'
const openDateTimePicker = ref(false)
const dateTimeValue = ref('12:10:30')
</script>
<template>
<TnDateTimePicker
v-model="dateTimeValue"
v-model:open="openDateTimePicker"
mode="time"
/>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const openDateTimePicker = ref(false)
const dateTimeValue = ref('12:10:30')
</script>
<template>
<TnDateTimePicker
v-model="dateTimeValue"
v-model:open="openDateTimePicker"
mode="time"
/>
</template>
选择时间不带秒
设置mode
为timeNoSecond
在该模式下,v-model
绑定的值为HH:mm
格式的字符串
vue
<script lang="ts" setup>
import { ref } from 'vue'
const openDateTimePicker = ref(false)
const dateTimeValue = ref('12:10')
</script>
<template>
<TnDateTimePicker
v-model="dateTimeValue"
v-model:open="openDateTimePicker"
mode="timeNoSecond"
/>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const openDateTimePicker = ref(false)
const dateTimeValue = ref('12:10')
</script>
<template>
<TnDateTimePicker
v-model="dateTimeValue"
v-model:open="openDateTimePicker"
mode="timeNoSecond"
/>
</template>
选择日期时间
设置mode
为datetime
在该模式下,v-model
绑定的值为YYYY/MM/DD HH:mm:ss
格式的字符串
vue
<script lang="ts" setup>
import { ref } from 'vue'
const openDateTimePicker = ref(false)
const dateTimeValue = ref('2019/12/27 12:10:30')
</script>
<template>
<TnDateTimePicker
v-model="dateTimeValue"
v-model:open="openDateTimePicker"
mode="datetime"
/>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const openDateTimePicker = ref(false)
const dateTimeValue = ref('2019/12/27 12:10:30')
</script>
<template>
<TnDateTimePicker
v-model="dateTimeValue"
v-model:open="openDateTimePicker"
mode="datetime"
/>
</template>
选择日期时间不带秒
设置mode
为datetimeNoSecond
在该模式下,v-model
绑定的值为YYYY/MM/DD HH:mm
格式的字符串
vue
<script lang="ts" setup>
import { ref } from 'vue'
const openDateTimePicker = ref(false)
const dateTimeValue = ref('2019/12/27 12:10')
</script>
<template>
<TnDateTimePicker
v-model="dateTimeValue"
v-model:open="openDateTimePicker"
mode="datetimeNoSecond"
/>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const openDateTimePicker = ref(false)
const dateTimeValue = ref('2019/12/27 12:10')
</script>
<template>
<TnDateTimePicker
v-model="dateTimeValue"
v-model:open="openDateTimePicker"
mode="datetimeNoSecond"
/>
</template>
设置最大最小值
可以通过min-time
和max-time
设置日期时间选择器的最大最小值,格式为 YYYY/MM/DD HH:mm:ss
在不同的模式下最小最大值可以设置为不同的格式
year
模式下可以只设置YYYY
yearmonth
模式下可以只设置YYYY/MM
date
模式下可以只设置YYYY/MM/DD
time
模式下可以只设置HH:mm:ss
datetimeNoSecond
模式下只可以设置YYYY/MM/DD HH:mm
timeNoSecond
模式下只可以设置HH:mm
默认不设置的情况下取当前年份的前后 10 年作为最小最大值,时间从00:00:00
~23:59:59
vue
<script lang="ts" setup>
import { ref } from 'vue'
const openDateTimePicker = ref(false)
const dateTimeValue = ref('')
</script>
<template>
<TnDateTimePicker
v-model="dateTimeValue"
v-model:open="openDateTimePicker"
mode="datetime"
min-time="2020/10/01 12:30:02"
max-time="2023/12/01 12:10:30"
/>
</template>
<script lang="ts" setup>
import { ref } from 'vue'
const openDateTimePicker = ref(false)
const dateTimeValue = ref('')
</script>
<template>
<TnDateTimePicker
v-model="dateTimeValue"
v-model:open="openDateTimePicker"
mode="datetime"
min-time="2020/10/01 12:30:02"
max-time="2023/12/01 12:10:30"
/>
</template>
API
Props
属性名 | 说明 | 类型 | 默认值 | 可选值 |
---|---|---|---|---|
model-value/v-model | 日期时间选择器绑定的值,具体格式看上面具体说明 | String | - | - |
open/v-model:open | 日期时间选择器显示与隐藏 | Boolean | false | true |
mode | 日期时间选择器类型,具体每个值的模式可查看上面说明 | String | date | year \ yearmonth \ datetime \ time \ datetimeNoSecond \ timeNoSecond |
min-time | 最小可选时间,格式具体要求查看上方说明 | String | - | - |
max-time | 最大可选时间,格式具体要求查看上方说明 | String | - | - |
init-current-date-time | 如果model-value 的值为空时是否初始化为当前时间 | Boolean | true | false |
format | 日期时间格式化字符串,分割符暂时只支持-_:.,()/ | String | YYYY/MM/DD HH:mm:ss | - |
show-cancel | 显示取消按钮 | Boolean | true | false |
cancel-text | 取消按钮的文本 | String | 取 消 | - |
cancel-color | 取消按钮的字体颜色,支持图鸟内置的颜色值、hex、rgb、rgba | String | - | - |
show-confirm | 显示确认按钮 | Boolean | true | false |
confirm-text | 确认按钮的文本 | String | 确 定 | - |
confirm-color | 确认按钮的字体颜色,支持图鸟内置的颜色值、hex、rgb、rgba | String | - | - |
mask | 显示遮罩 | Boolean | false | true |
z-index | 日期事件选择器的 zIndex | Number | 20075 | - |
Event
事件名 | 说明 | 类型 |
---|---|---|
change | 所选日期时间发生改变 | (value: string) => void |
confirm | 点击确认事件 | (value: string) => void |
cancel | 点击取消事件 | () => void |
close | 弹框关闭事件 | () => void |