更新记录

1.2.0(2025-12-15)

更新日志

最新修复 (2024)

Bug 修复

  1. PC端滑动视图更新问题

    • 修复了PC端左右滑动时日历视图不更新的问题
    • 优化了数据更新和视图刷新的时序
  2. 滑动触发选中问题

    • 修复了滑动过程中误触发日期选中的问题
    • 添加了滑动状态标志,区分滑动操作和点击操作
    • 滑动时不再触发 change 事件,避免误操作
  3. 月份切换保持选中日期

    • 修复了切换月份时选中日期号丢失的问题
    • 切换月份时会自动保持相同的日期号(如:1月15日切换到2月15日)
    • 如果目标月份没有该日期号,则自动选择该月最后一天
  4. APP端滑动死循环问题

    • 修复了APP端触摸滚动时陷入死循环的问题
    • 移除了可能导致重复渲染的 $forceUpdate() 调用
    • 优化了滑动状态管理,添加了防重复触发机制
  5. 滑动结束事件触发

    • 滑动切换完成后自动触发 @change 事件
    • 确保其他页面可以监听到滑动事件并调用接口获取数据
    • 使用异步处理确保数据更新完成后再触发事件

性能优化

  • 优化了视图更新机制,减少不必要的重新渲染
  • 改进了异步操作处理,确保数据一致性
  • 优化了swiper-item的key策略,提升渲染性能

使用说明

  • 滑动切换月份/周时,会在切换完成后自动触发 @change 事件
  • 建议在父组件中监听 @change 事件来获取数据,而不是在滑动过程中获取
  • 切换月份时会保持选中的日期号,提供更好的用户体验

1.1.0(2025-08-01)


平台兼容性

uni-app(4.76)

Vue2 Vue3 Chrome Chrome插件版本 Safari Safari插件版本 app-vue app-nvue Android iOS 鸿蒙
1.1.0 1.1.0 1.1.0 1.1.0 -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - -

其他

多语言 暗黑模式 宽屏模式
× ×

sh-calendar 日历组件

简介

sh-calendar 是一个功能丰富的 uni-app 日历组件,支持月视图和周视图的智能切换,提供流畅的滑动交互体验。

核心特性

  • 双视图模式:支持月视图和周视图自由切换
  • 滑动交互:支持左右滑动切换月份/周,上下滑动切换视图模式
  • 状态标记:支持日期状态点显示(逾期、正常、高亮等)
  • 触摸手势:响应式触摸操作,提供原生般的交互体验
  • 数据绑定:支持双向数据绑定和事件监听

基础用法

<template>
  <sh-calendar 
    :value="selectedDate" 
    :dot_lists="todoList"
    @change="onDateChange"
    @onMonthSwitch="onMonthChange"
  />
</template>

<script>
export default {
  data() {
    return {
      selectedDate: '2024-01-15',
      todoList: [
        { date: '2024-01-10', status: 'task' },
        { date: '2024-01-15', status: 'overdue' }
      ]
    }
  },
  methods: {
    onDateChange(value) {
      console.log('选中日期:', value.fulldate)
    },
    onMonthChange(value) {
      console.log('月份切换:', value.year, value.month)
    }
  }
}
</script>

组件接口

Props

  • value (String|Number): 当前选中日期
  • dot_lists (Array): 状态点数据,支持简单格式和复杂格式

Events

  • change: 日期选择变化时触发
  • onMonthSwitch: 月份切换时触发

状态类型

  • task: 正常任务(灰色点)
  • overdue: 逾期任务(红色点)
  • highlight: 高亮状态(白色点)

技术特点

  • 基于 uni-app 框架,支持多端运行
  • 使用 swiper 组件实现流畅的滑动效果
  • 响应式设计,适配不同屏幕尺寸
  • 模块化架构,易于维护和扩展

更新日志

最新修复 (2024)

Bug 修复

  1. PC端滑动视图更新问题

    • 修复了PC端左右滑动时日历视图不更新的问题
    • 优化了数据更新和视图刷新的时序
  2. 滑动触发选中问题

    • 修复了滑动过程中误触发日期选中的问题
    • 添加了滑动状态标志,区分滑动操作和点击操作
    • 滑动时不再触发 change 事件,避免误操作
  3. 月份切换保持选中日期

    • 修复了切换月份时选中日期号丢失的问题
    • 切换月份时会自动保持相同的日期号(如:1月15日切换到2月15日)
    • 如果目标月份没有该日期号,则自动选择该月最后一天
  4. APP端滑动死循环问题

    • 修复了APP端触摸滚动时陷入死循环的问题
    • 移除了可能导致重复渲染的 $forceUpdate() 调用
    • 优化了滑动状态管理,添加了防重复触发机制
  5. 滑动结束事件触发

    • 滑动切换完成后自动触发 @change 事件
    • 确保其他页面可以监听到滑动事件并调用接口获取数据
    • 使用异步处理确保数据更新完成后再触发事件

性能优化

  • 优化了视图更新机制,减少不必要的重新渲染
  • 改进了异步操作处理,确保数据一致性
  • 优化了swiper-item的key策略,提升渲染性能

使用说明

  • 滑动切换月份/周时,会在切换完成后自动触发 @change 事件
  • 建议在父组件中监听 @change 事件来获取数据,而不是在滑动过程中获取
  • 切换月份时会保持选中的日期号,提供更好的用户体验

隐私、权限声明

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

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

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

不包含

暂无用户评论。