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模式下可以只设置YYYYyearmonth模式下可以只设置YYYY/MMdate模式下可以只设置YYYY/MM/DDtime模式下可以只设置HH:mm:ssdatetimeNoSecond模式下只可以设置YYYY/MM/DD HH:mmtimeNoSecond模式下只可以设置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 |