TUI

0.3.7
TsCalendar 日历组件
支持基础渲染、自定义节假日、调休日、高亮选中等功能的日历展示组件。
基础用法
展示一个最简单的日历组件。
2025年
10月
回到今天
示例代码
vue
<template>
  <TsCalendar />
</template>
默认选中与阴影
设置 defaultActiveDay 选中某一天,并开启 shadow 阴影。
2025年
10月
回到今天
示例代码
vue
<template>
  <TsCalendar defaultActiveDay="7" shadow />
</template>
显示月份详情
通过 change、 onChangeMonth 获取月份详情数据来打造自己的个性化月份数据展示。
2025年
10月
回到今天
本月假期天数 天
本月工作天数 天
示例代码
vue
<template>
  <TsCalendar @change="onChange" @onChangeMonth="onChangeMonth" />
  <BussinessCalendarMonthDetail :data="currentDayData" :monthDetail="currentMonthDetail" />
</template>

<script setup>
  const currentMonthDetail = ref({}) as Ref<CalendarMonthDetail>;
  const currentDayData = ref({}) as Ref<CalendarItem>;

  const onChange = (data: CalendarItem) => {
    currentDayData.value = data;
  };
  const onChangeMonth = (data: CalendarMonthDetail) => {
    currentMonthDetail.value = data;
  };
</script>
开启悬浮提示
通过 showTooltip 开启 hover 悬浮提示内容。或者 HolidayItem enableTip 字段精细到每一天开启。
2025年
10月
回到今天
示例代码
vue
<template>
  <TsCalendar :showTooltip="true">
    <template #tooltip="{ item }">
      <div class="calendar-tip-content">showTooltip 会显示每一天自定义悬浮提示内容,可以是任何内容,包括 HTML。</div>
    </template>
  </TsCalendar>
</template>
自定义节假日

通过 yearlyHolidays 传入自定义节假日数据,渲染名称、状态等信息。

以2025年1月1日 节假日数据作为展示

2025年
10月
回到今天
示例代码
vue
<template>
  <TsCalendar :yearlyHolidays="holidayData" />
</template>
<script setup lang="ts">
  const holidayData: YearHolidayByMonth = {
    '2025': {
      '1': [
        {
          id: 1,
          year: '2025',
          month: '1',
          day: 1,
          name: '元旦',
          status: 1,
          statusName: '休',
          enableTip: true,
          content: '元旦放假',
        },
        {
          id: 2,
          year: '2025',
          month: '1',
          day: 5,
          name: '',
          status: 2,
          statusName: '班',
          enableTip: false,
          content: '',
        },
      ],
      '10':[
        {
          id: 11,
          year: '2025',
          month: '1',
          day: 1,
          name: '国庆',
          status: 1,
          statusName: '休',
          enableTip: false,
          content: '',
        },
      ]
    },
  };
</script>
属性 Props
属性名
说明
类型
可选值
默认值
版本说明
defaultActiveDay
当前选中日期
String | Date | null
null
yearlyHolidays
年假数据
Object<YearHoliday>
{}
injectedMonthData
月份数据
Array
[]
deprecated 0.3.7
showTooltip
是否显示提示
Boolean
true / false
false
shadow
是否显示阴影边框
Boolean | String | Null
true / "" / null
false
事件 Events
事件名
说明
类型
change
选中日期
(value: CalendarItem) => void
onChangeMonth
选中日期
(value: CalendarMonthDetail) => void
插槽 Slots
插槽名
说明
tooltip
自定义 tooltip 内容
YearHoliday props
属性名
说明
类型
可选值
默认值
year
年份
string
-
Array<HolidayItem[]>
HolidayItem props
属性名
说明
类型
可选值
默认值
year
年份
string
-
month
月份
string
-
day
日期
number
-
name
名称
string
-
status
状态
0 | 1 | 2 | 3
-
statusName
状态名称
string
-
enableTip
是否显示提示
boolean
-
content
提示内容
string
-
CalendarItem props
属性名
说明
类型
可选值
默认值
year
年份
string
-
month
月份
string
-
day
日期
number
-
name
名称
string
-
nameCn
中文名称
string
-
status
状态
0 | 1 | 2 | 3
-
statusName
状态名称
string
-
yearCn
中文年份日期
string
-
monthCn
中文月份日期
string
-
dayCn
中文日期
string
-
animal
生肖
string
-
enableTip
是否显示提示
boolean
-
content
提示内容
string
-
calendarMonthDetail props
属性名
说明
类型
可选值
默认值
monthRestDayCount
月份总天数
number
-
monthWorkDayCount
月份工作天数
number
-