跳到主要内容

日历 Calendar

用于选择日期,或日期区间。

安装使用​

import { TiCalendar } from '@titian-design/mobile-vue';

用法示例​

基础用法​

<template>
<TiCalendar :visible="true" @confirm="onConfirm" />
</template>

<script lang="ts" setup>
import { TiCalendar } from '@titian-design/mobile-vue';
</script>

设置边界​

<template>
<TiCalendar :visible="true" min-date="2022-02-10" maxDate="2023-02-10" />
</template>

<script lang="ts" setup>
import { TiCalendar } from '@titian-design/mobile-vue';
</script>

设置默认值​

<template>
<TiCalendar :visible="true" default-value="2022-04-10" />
</template>

<script lang="ts" setup>
import { TiCalendar } from '@titian-design/mobile-vue';
</script>

受控模式​

<template>
<TiCalendar :visible="true" value="2022-04-10" />
</template>

<script lang="ts" setup>
import { TiCalendar } from '@titian-design/mobile-vue';
</script>

多选​

<template>
<TiCalendar :visible="true" mode="multiple" />
</template>

<script lang="ts" setup>
import { TiCalendar } from '@titian-design/mobile-vue';
</script>

多选 - 最多选择个数​

<template>
<TiCalendar :visible="true" mode="multiple" :max-size="2" />
</template>

<script lang="ts" setup>
import { TiCalendar } from '@titian-design/mobile-vue';
</script>

选择范围​

<template>
<TiCalendar :visible="true" mode="range" />
</template>

<script lang="ts" setup>
import { TiCalendar } from '@titian-design/mobile-vue';
</script>

选择范围 - 最大范围​

<template>
<TiCalendar :visible="true" mode="range" :max-range="2" />
</template>

<script lang="ts" setup>
import { TiCalendar } from '@titian-design/mobile-vue';
</script>

选择范围 - 允许起止同天​

<template>
<TiCalendar :visible="true" mode="range" :allow-same-day="true" />
</template>

<script lang="ts" setup>
import { TiCalendar } from '@titian-design/mobile-vue';
</script>

TiCalendar API​

属性 Properties​

名称类型必填默认值说明备注
startWeekDayEnum否'Sunday'从周几开始;参数类型 WeekDayEnum
modesingle | multiple | range否'single'单选/多选/范围-
default-valuearray | string | number否null默认值,传值则组件设置为非受控模式-
valuearray | string | number否null值,则组件设置为受控模式-
min-datestring | number否当天最小日期范围,可转 Date 即可-
max-datestring | number否从当天起 6 个月最大日期范围,可转 Date 即可-
positiontop | bottom | left | right否bottom展示位置,透传给 popup.position-
close-on-maskboolean否true点击遮罩关闭,透传给 popup.close-on-mask-
destroy-on-closeboolean否false关闭后销毁组件,透传给 popup.destroyOnClose-
use-popupboolean否true是否使用弹窗-
confirm-textstring否确认确认文案;传空字符串''则不展示按钮-
visibleboolean否false是否展示,透传给 popup.visible-
allow-same-dayboolean否false起止日期是否可用是同一天;range 模式下生效-
max-rangenumber否0起止日期最大跨度天数; range 模式且大于 0 下生效-
max-sizenumber否0最多可选天数 ; multiple 模式且大于 0 下生效-
colorstring否#2580FF选中颜色值-
roundboolean否false圆角模式-
titlestring否'选择日期'标题-
formatter(date: CalRenderDateProps) => CalRenderDateProps否null格式化日历函数,参数类型 CalRenderDateProps-
mask-z-indexnumber否10000遮罩 z-index 层级-
content-z-indexnumber否10001内容 z-index 层级-
ext-stylestring否''容器样式-
teleportElement否document.bodyDOM 挂载节点-

事件 Events​

名称参数列表描述备注
select(e: CustomEvent<{date: CalDateProps; currentDate: CalRenderDateProps[];}>) => void日历面板选择事件参数类型见 CalDateProps, CalRenderDateProps
confirm(e: CustomEvent<CalRenderDateProps[]>) => void日历面板确认事件参数见 CalRenderDateProps
close(e: CustomEvent) => void日历面板关闭事件-
error(e: CustomEvent<{error: CalErrorProps; date: CalDateProps; currentDate: CalRenderDateProps[]; }>) => void日历面板错误事件参数类型见 CalErrorProps, CalRenderDateProps,CalRenderDateProps

外部样式类 External Classes​

类名说明备注
ext-popup-classpopup 容器样式,透传给 popup/ext-class-
ext-popup-mask-classpopup 遮罩样式,透传给 popup/ext-mask-class-
ext-popup-content-classpopup 内容样式,透传给 popup/ext-content-class-
ext-class日历组件容器样式-
ext-scroll-class日历组件滚动容器样式-

CSS 变量 CSS Variables​

变量默认值说明
--calendar-popup-mask-bg-color默认值同 Popup 组件 --popup-mask-bg-color
--calendar-popup-radius默认值同 Popup 组件 --popup-popup-radius
--calendar-popup-box-bg-color默认值同 Popup 组件 --popup-box-bg-color
--calendar-scroll-height500px日历滚动区域高度
--calendar-week-height60px日历星期区域高度
--calendar-week-item-colorvar(--neutral-color-2, #757575)日历星期区域字体颜色
--calendar-title-height80px日历标题区域高度
--calendar-title-colorvar(--neutral-color-4, #c4c4c4)日历标题区域字体颜色
--calendar-date-text-colorvar(--neutral-color-1, #212121)日历时间区域日期字体颜色
--calendar-date-info-colorvar(--neutral-color-3, #9e9e9e)日历时间区域描述字体颜色
--calendar-date-select-colorvar(--neutral-color-9, #ffffff)日历时间区域选中字体颜色
--calendar-date-select-radiuscalc(var(--capsule-radius-size, 0px) + 8px)日历时间区域选中圆角
--calendar-date-disabled-colorvar(--neutral-color-4, #c4c4c4)日历时间区域禁用颜色
--calendar-date-margin-v10px日历时间区域垂直方向距离
--calendar-date-margin-h0px日历时间区域水平方向距离

数据结构 Data Structure​

星期枚举 WeekDayEnum​

值含义备注
Sunday周日-
Monday周一-
Tuesday周二-
Wednesday周三-
Thursday周四-
Friday周五-
Saturday周六-

日期数据结构 CalDateProps​

键名说明类型
date日期Date
time毫秒数number
year年number
month月month
day日number
week星期number
fullDateNum年月日,如20211231number
text文本string | number
status状态DateStatusEnum
topInfo顶部文案string
bottomInfo底部文案string

日期渲染数据结构 CalRenderDateProps​

interface CalRenderDateProps extends CalDateProps {
parentIndex: number;
}

报错数据结构 CalErrorProps​

interface CalErrorProps {
message: string;
type: 'maxSize' | 'maxRange' | 'disabled';
}

日期状态枚举 DateStatusEnum​

枚举值说明
null无状态
disabled禁用
single单选选中状态
range_start范围选择:起始状态
range_full范围选择:起始时间与结束时间为同一天
range_end范围选择:结束状态
multiple孤立多选(无连接)
multiple_start多选(有连接) 起始状态
multiple_middle多选(有连接) 中间状态
mulitiple_end多选(有连接) 结束状态