更新记录

1.0.0(2025-12-07) 下载此版本

appx-calendar 是一款基于 uts 开发的多模式日历选择组件,支持单日期选择和日期范围选择,可自定义禁用日期、禁用周末、日期区间限制等功能,适配多端渲染,样式可通过自定义属性灵活调整。


平台兼容性

uni-app x(4.87)

Chrome Safari Android iOS 鸿蒙 微信小程序

appx-calendar 日历组件帮助文档

一、组件介绍

appx-calendar 是一款基于 uts 开发的多模式日历选择组件,支持单日期选择日期范围选择,可自定义禁用日期、禁用周末、日期区间限制等功能,适配多端渲染,样式可通过自定义属性灵活调整。

二、使用方式

1. 基础引入

<template>
  <appx-calendar 
    mode="single" 
    :value="selectedDate"
    @confirm="handleConfirm"
  />
</template>

<script lang="uts" setup>
import appxCalendar from '@/components/appx-calendar/appx-calendar.vue';
const selectedDate = ref('2025-12-07');
const handleConfirm = (value) => {
  console.log('选中的日期:', value);
};
</script>

2. 范围选择示例

<appx-calendar 
  mode="range" 
  :value="['2025-12-01', '2025-12-10']"
  :minDate="2025-12-01"
  :maxDate="2025-12-31"
  :disableWeekend="true"
  @change="handleRangeChange"
/>

三、Props 配置项

参数名 类型 默认值 说明
mode 'single' \| 'range' 'single' 选择模式:single(单日期)、range(日期范围)
value string \| [string, string] '' 绑定值:单模式为 YYYY-MM-DD 格式字符串,范围模式为 [开始日期, 结束日期] 数组
minDate string '' 最小可选日期,格式 YYYY-MM-DD
maxDate string '' 最大可选日期,格式 YYYY-MM-DD
activeColor string #3c9cff 选中日期的高亮颜色(支持十六进制、rgb 等格式)
disableWeekend boolean false 是否禁用周六、周日
disabledDates string[] [] 自定义禁用日期列表,元素为 YYYY-MM-DD 格式字符串
showFooter boolean true 是否显示底部确认按钮栏

四、事件说明

事件名 触发时机 回调参数 说明
change 日期选中状态变化时 string \| [string, string] 单模式返回选中日期字符串,范围模式返回日期数组
confirm 点击底部“确认”按钮时 string \| [string, string] 返回最终选中的日期/日期范围
cancel 点击底部“取消”按钮时 - 取消选择,恢复初始选中状态

五、插槽说明

插槽名 作用域参数 说明
date-format year: number, month: number, day: number 自定义日期显示格式,默认显示数字日期(如“7”),可通过插槽修改为自定义样式(如添加农历、标记等)

插槽使用示例

<appx-calendar>
  <template #date-format="{ year, month, day }">
    <!-- 自定义显示:添加日期后缀 -->
    <text>{{ day }}日</text>
  </template>
</appx-calendar>

六、样式自定义

组件通过 CSS 变量 --active-color 控制选中态颜色,也可通过 scoped 样式穿透修改默认样式:

/* 修改日历容器边框 */
:deep(.appx-calendar-container) {
  border: 1px solid #ddd;
  border-radius: 8px;
}

/* 修改禁用日期颜色 */
:deep(.appx-calendar-disabled) {
  color: #eee;
}

七、注意事项

  1. 日期格式必须为 YYYY-MM-DD,非法格式(如 2025-13-012025-02-30)会被判定为禁用日期;
  2. 范围选择时,若先选结束日期、后选开始日期,组件会自动交换顺序,保证开始日期 ≤ 结束日期;
  3. disabledDates 数组中的日期需严格匹配 YYYY-MM-DD 格式,否则不会生效;
  4. 切换年月时,组件会自动同步 picker 选择器的值,无需手动维护。

八、常见问题

Q1:选中日期后不触发 change 事件?

A1:单模式下点击日期会立即触发 change 事件;范围模式下需选完开始和结束日期后才触发,若仅选开始日期不会触发。

Q2:禁用周末不生效?

A2:检查 disableWeekend 是否设置为 true,同时确认日期未被 minDate/maxDate/disabledDates 额外限制。

Q3:范围选择的中间日期背景色不显示?

A3:需确保已选完整的开始和结束日期,且中间日期未被禁用,背景色由 --active-color 的透明色控制(默认 rgba(60, 156, 255, 0.1))。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。