日历 Calendar(开发中)

用于选择年月日,可自定义需要选择的时间范围。

基本用法

日历组件可以通过show设置是否显示,可选值为true/false,默认为false

示例代码

  1. <l-calendar show="{{ true }}" />

自定义颜色

日历组件默认继承Lin UI的官方主题色,当然你也可以通过color属性来修改为你喜欢的主题色。

示例代码

  1. <l-calendar show="{{ true }}" color="#f60" />

日历类型

通过 type 属性可以设置日历的类型,可选值 single(单个日期)、multiple(多个日期)、range(范围),默认值 single。

选择多个日期

  1. <l-calendar show="{{ true }}" type="multiple" />

选择日期区间

  1. <l-calendar show="{{ true }}" type="range" />

自定义日期文案

通过传入 formatter 函数可以对日历上每一格的内容进行格式化。

示例代码

  1. <l-calendar formatter="{{ formatter }}"></l-calendar>
  1. {
  2. formatter(day) {
  3. const month = day.date.getMonth() + 1;
  4. const date = day.date.getDate();
  5. const tody = new Date();
  6. const tody_month = tody.getMonth() + 1;
  7. const tody_date = tody.getDate();
  8. if (month === 10 && date === 1) {
  9. day.topInfo = '国庆节';
  10. }
  11. if (month === tody_month && date === tody_date) {
  12. day.text = '今天';
  13. }
  14. if (day.type === 'start') {
  15. day.bottomInfo = '入住';
  16. } else if (day.type === 'end') {
  17. day.bottomInfo = '离店';
  18. }
  19. return day;
  20. }
  21. }

自定义日期可选范围

通过 min-date 和 max-date 定义日历的范围。

示例代码

  1. <l-calendar
  2. show="{{ show }}"
  3. min-date="{{ minDate }}"
  4. max-date="{{ maxDate }}"
  5. />
  1. Page({
  2. data: {
  3. show: false,
  4. minDate: new Date(2020, 2, 2).getTime(),
  5. maxDate: new Date(2020, 10, 10).getTime()
  6. }
  7. });

自定义可选日期的数量

通过设置 max-select/min-select 可以控制日历最多/至少选择的天数,该属性只有 type 为 multiple 和 range 时有效。

示例代码

  1. <l-calendar type="range" max-select="{{ 3 }}" />
  2. <l-calendar type="multiple" min-select="{{ 3 }}" />

自定义超过可选数量的提示语句

通过设置 max-limit-message 可以控制当日历选择天数超过可选数量的提示语句,该属性只有 type 为 multiple 和 range 时有效。

示例代码

  1. <l-calendar type="range" max-select="{{ 3 }}" max-limit-message="您选择的日期范围超出可选天数"/>

自定义不足必选数量的提示语句

通过设置 min-limit-message 可以控制当日历选择天数不足必选数量的提示语句,该属性只有 type 为 multiple 和 range 时有效。

示例代码

  1. <l-calendar type="range" min-select="{{ 3 }}" max-limit-message="日期范围必须大于3天"/>

自定义按钮文字

通过设置 confirm-text 属性可以修改确认按钮的文字。

  1. <l-calendar show="{{ show }}" type="range" confirm-text="完成" />

隐藏按钮

通过设置 show-confirm 属性可以隐藏/显示确认按钮。show-confirm 默认值为:true

  1. <l-calendar show="{{ show }}" show-confirm="{{ false }}" confirm-text="完成" />

日历组件属性(Calendar Attributes)

参数说明类型可选值默认值
show控制日历组件的显示和隐藏Booleantrue/falsefalse
type选择类型:single表示选择单个日期,multiple表示选择多个日期,range表示选择日期区间Stringsingle/multiple/rangesingle
color主题色Stringlin UI主题色
default-date默认选中日期,type为 multiple 或 range 时为数组String/Number/Date当前日期
format日期格式String-yyyy-MM-dd
formatter日期内容格式化函数function--
min-date设置可选最小日期String/Number/Date--
max-date设置可选最大日期String/Number/Date--
min-select设置最少可选天数String/Number--
max-select设置最多可选天数String/Number--
show-confirm是否显示确认按钮Booleantrue/falsetrue
confirm-text确认按钮的文字String-确认
max-limit-message日期选择天数超出 max-select 时的提示文字String-选择天数不能超过 xx 天
min-limit-message日期选择天数不足 min-select 时的提示文字String-选择天数不能少于 xx 天
show-title是否显示日历标题Booleantrue/falsetrue
show-subtitle是否展示日历副标题(年月)Booleantrue/falsetrue

Day 数据结构

日历中的每个日期都对应一个 Day 对象,通过 formatter 属性可以自定义 Day 对象的内容。

格式说明类型
date日期对应的 Date 对象Date
value所选日期的 value[] / String
type日期类型,可选值为 selected、start、middle、end、disabledstring
text中间显示的文字string
topInfo上方的提示信息string
bottomInfo下方的提示信息string

插槽 (Calendar Slot)

插槽名说明备注
title自定义标题
footer自定义底部区域内容

日历组件事件 (Calendar Events)

事件名称说明返回值备注
bind:linselect选中任意日期触发event.detail = { current: Date }-
bind:linunselect当 type 为 multiple 时,点击已选中的日期时触发event.detail = { current: Date }-
bind:linconfirm日期选择完成后触发,若 show-confirm 为 true,则点击确认按钮后触发event.detail = {value: DateDate[]}