当前位置: 首页 > news >正文

uview plus u-calendar日历设置部分日期不可选择disabled

实现效果如下图

2024-5-8 更新—注意事项


如图,如果今天不可选中,但是依然是默认选中状态,可以点确定,优化代码如下:

  1. 修改u-calendar.vue的代码,搜索updateMonthTop(topArr = [])跳转到指定方法

  1. 修改month.vue的代码,搜索setDefaultDate()跳转到指定方法

代码

修改如下图目录的两个文件

首先修改props.js文件,搜索customList,在下方插入disabledDay

// 自定义列表customList:{type:Array,default:defprops.calendar.customList},/** 插入部分 **///不可选日期disabledDay:{type:Array,default:[]},// 主题色,对底部按钮和选中日期有效color:{type:String,default:defprops.calendar.color},

然后修改u-calendar.vue文件,搜索setMonth() {,修改disabled如下:

disabled:dayjs(date).isBefore(dayjs(minDate).format('YYYY-MM-DD'))||dayjs(date).isAfter(dayjs(maxDate).format('YYYY-MM-DD'))||this.disabledDay.indexOf(dayjs(date).format('YYYY-MM-DD'))!=-1,//这段是新插入部分

使用:

<u-calendar:show="show":minDate="min":maxDate="max":range="false":formatter="formatter":disabledDay="disabledDay"></u-calendar>
//dateTimeStr用于格式化Dateconstmin='2024-02-21',max='2024-02-24';constdisabledDay=ref(["2024-02-22"]);constformatter=(day)=>{letdate=day.date,now=newDate();if(dateTimeStr("y-m-d",date)==dateTimeStr("y-m-d",now)){day.text="今天";}if("符合需求"){if("符合预约条件"){day.bottomInfo="可预约";}else{day.bottomInfo="已约满";day.type="disabled";}}else{day.bottomInfo="不可预约";day.type="disabled";}if(dateTimeStr("y-m-d",date)=='2024-02-18'){day.bottomInfo="已选中";day.dot=true;}if(day.type=="disabled"){disabledDay.value.push(dateTimeStr("y-m-d",date));}returnday;};

完整实现过程如上,有问题可留言或私信

http://www.jsqmd.com/news/446901/

相关文章:

  • 系统不出事,才是运维的最高境界:聊聊如何打造“零故障运维系统”
  • electron 开发轻量级本地数据存储桌面端应用(简洁版)
  • 【100%通过率】华为od统一考试B卷【流水线调度 / 自动化维修流水线】JavaScript 实现
  • Web前端之Css网格布居中的动画、VSC中Scss自动编译成Css、通过子元素改变父元素的样式值、安装和配置Sass插件、样式特殊单位、hover、child、grid、nth、fr
  • minio 安装部署、主从、卸载、基础使用
  • 数据库同步软件,PanguSync霸气!!!
  • AQS原理
  • 写文章,得有点儿原则
  • Web前端之UniApp低功耗蓝牙一键开门、数组匹配数组、多对多查找、开锁
  • Labelme安装以及qt.qpa.plugin: Could not load the Qt platform plugin “xcb“ in ““ even though it was f问题解决
  • CAS原理
  • 微信小程序TS+SASS使用vant导致体验版白屏SystemError (jsEnginScriptError) X(...).bem is not a function
  • 【节点】[Fog节点]原理解析与实际应用
  • 酷炫 css 按钮 边框霓虹
  • 软件设计师考试中需要掌握的一些常用算法,基于C++实现
  • Mybatis的延迟加载
  • 教程 | 如何动用智慧安装NavicatPremium 16
  • Python 潮流周刊#141:Python 早期贡献者口述历史
  • Web前端之旋转木马的图片效果、鼠标进入停止动画、keyframes、hover、child、nth
  • canvas_3_绘制弧形
  • linux-centos常用指令、tar.gz解压、mv重命名、cp复制、ss -ltnp、curl测试任意端口网络是否可达等
  • 女生必看!用OpenClaw龙虾当你的24小时免费助理,职场、生活效率翻倍,做自己的女王!
  • 2026年宜昌两天一夜游路线权威榜单:十大精品路线深度评测与排位赛 - 品牌推荐
  • 软考知识总结
  • python pip 更新
  • MySQL为什么有了redolog还需要double write buffer?
  • 实习面经摘录回答(四)
  • CPU中央处理器(下)
  • 2026年留学生求职必看:中国留学生求职机构选型指南与适配场景全解析 - 品牌推荐
  • vue+elementui完美模拟pc版快手实现短视频,含短视频详情播放