Skip to content
# t-calendar

Calendar 日历

t-calendar 组件介绍 ​

t-calendar 是一个功能强大的日历选择组件,支持单日期选择、多日期选择、日期范围选择等多种模式,同时提供农历显示、节日显示、自定义选中日期标记和徽章等功能。组件采用 Canvas 绘制技术,性能优异,支持横向和纵向滑动切换月份,适用于各种日期选择场景。

t-calendar 平台兼容 ​

HarmonyH5AndroidiOS小程序UTS
✅✅✅✅✅✅

t-calendar 基础用法 ​

基础用法参考 demo/calendar/calendar.uvue,通过 mode 属性设置选择模式,使用 v-model 绑定选中日期。

vue
<template>
	<view class="p-15">
		<tui-theme-switch></tui-theme-switch>
		<t-card title="Calendar 日历"
				sub-title="5.0采用自研Canvas flex布局引擎绘制,未采用swiper,纯Canvas实现滚动切换动画,最全日历,支持农历 节气"></t-card>
		<view :class="[`tvg trm`]">
			<view :class="[`fl h-50 faic fjcb`]">
				<view class='f fc'
					  v-for="(item,index) in date_header_map"
					  :key="index">
					<text :class="[`ttc-`]">{{item}}</text>
				</view>
			</view>
			<t-calendar :class="[`tvg`]"
						v-model="val"
						:selected="selected"></t-calendar>
		</view>
		<t-button type="primary"
				  class="mtb-15"
				  @click="test">双向绑定测试</t-button>
		<t-picker-calendar v-model="val1">
		</t-picker-calendar>
		<view :class="[`r-10 fc tvg h-40 mbt-15`]">
			<text :class="[`ttl1`]">{{val.join(' ')}}</text>
		</view>
		<view :class="[`r-10 fc tvg h-40 mbt-15`]">
			<text :class="[`ttl1`]">{{val1.join(' ')}}</text>
		</view>
	</view>
</template>
<script setup>
	const date_header_map : string[] = ['一', '二', '三', '四', '五', '六', '日']
	const val = ref<string[]>(['2025-3-17'])
	const val1 = ref<string[]>(['2025-2-17'])
	const selected = ref<UTSJSONObject[]>([
		{
			date: '2025-3-17',
			info: '打折',
			infoColor: '#00cc81',
			badge: true,
			badgeText: '休',
			badgeColor: '#ff0000'
		},
		{
			date: '2025-3-19',
			info: '爆满',
			// infoColor: '#ff0000',
			badge: true,
			badgeText: '',
			badgeColor: '#00cc81',
		},
		{
			date: '2025-3-21',
			info: '已签到',
			infoColor: '#ff5500',
			badge: true,
			badgeText: '16',
			badgeColor: '#ff0000',
		}
	])
	function test() {
		val.value = ['2025-3-17']
	}
</script>

t-calendar Props ​

属性名说明类型默认值
path点击组件后跳转的页面路径;为空时仅响应事件string''
hover是否启用点击效果booleanfalse
type组件主题类型,可选 info、primary、error、warning、successstring'primary'
disabled是否禁用booleanfalse
effect组件显示主题,可选 normal、dark、light、plainstring'normal'
size组件尺寸,可选 large、medium、small、ministring'medium'
closeValidate是否关闭验证booleanfalse
modelValue绑定的日期值string[][]
title标题string'请选择日期'
mode选择模式,可选 single、multiple、rangestring'range'
disableTouch是否禁用触摸booleanfalse
vertical是否启用竖向滑动booleanfalse
selected自定义选中日期的配置UTSJSONObject[][]
lunar是否显示农历booleantrue
showMonthBg是否显示月份背景booleantrue
monthShowCurrentMonth是否只显示当前月份booleanfalse
festival是否显示节日booleantrue
startDate开始日期string''
endDate结束日期string''

t-calendar Events ​

事件名说明回调参数
update:modelValue绑定值变化时触发string[]
select选择日期时触发CalendarDateType
change日期变化时触发string[]

Methods ​

方法名说明参数
prevMonth切换到上一月-
nextMonth切换到下一月-
prevYear切换到上一年-
nextYear切换到下一年-
resetSelection重置选中的值-
jumpToDate跳转到指定日期date: string (日期字符串,格式:YYYY-MM-DD)
getCurrentTime获取当前显示的时间-
setCurrentTime设置当前显示的时间time: string (日期字符串,格式:YYYY-MM-DD)