本文摘自PHP中文网,作者尚,侵删。
laydate目前实现的一些功能:
1、支持一次性render多个节点。
2、支持render一个已经render过的节点。
3、新增lay-data属性来设置当前节点的laydate的配置。
4、实现快速选择时间的功能。(quickSelect)
5、纯月份年份点击直接确定。(quickConfirm)
6、不完整的时分秒选择。(simpleModel & format)
7、分裂式时间范围选择。(rangeType & range)
8、新增快速选择的两种场景支持。(range & quickSelect)
9、新增季度选择(type:'quarter')
10、新增可以定义周n作为一周的开始(weekStart)
11、支持this标记的背景为圆圈(circleMark)
*新增
12、日期选择多选(multiple)
13、销毁laydate(laydatePro.destory)
测试页面: https://sun_zoro.gitee.io/laydatepro/testLaydate.html
日期选择多选支持:
目前的多选只支持date类型的,个人觉得其他的应该没有什么使用场景,特别是时间选择或者datetime等基本都是没什么用的,而且跟laydate配合起来的话就更不好弄了,因为时间选择三列时分秒还要做多选,那得是什么形式什么效果~所以目前只考虑支持date的,而且不支持range。
先上效果:
实现思路:
1、首先还是新增一个参数(multiple)决定是否要多选,当然了,不是设置了就一定可以,上面说了,只支持非range的日期选择,不过设置错了也没事,插件内部做了处理,只有满足条件了才会有效果,不满足就还是单选。
2、内部逻辑比较散,基本就是在initDate的时候检测到多选,用配置的分隔符分隔值,然后渲染的时候稍微修改一下逻辑,不然以前默认的选中值的date一样的,而是根据实际的值域去圈定。
然后处理的就是事件,点击一个日期,触发内部的choose,区分多选还是单选,多选要看是选中还是取消选中,然后把值记录起来,如果是单选,那还是跟之前一样的逻辑不变;最后就是parse根据laydate实例生成一个值的字符串了,如果是多选就选中的那些值sort一下用分隔符给join起来给绑定的节点。
相关阅读 >>
更多相关阅读请进入《layDate》频道 >>
Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者