mirror of
https://gitee.com/layui/layui.git
synced 2025-10-07 23:24:32 +08:00
feat(laydate): 新增 disabledDate
, disabledTime
选项 (#1569)
* feat(laydate): 新增 `disabledDate`, `disabledTime` 选项 feat(laydate): 优化年、月面板的禁用检测 refactor: 简化代码 fix: 修复 4d7ae6e 造成的按钮检测 BUG options.disabledDate 中不应携带时分秒信息 fix(laydate): 修复范围联动模式, 右侧面板检测另外一个日期有效范围错误, 导致无法标记范围的问题 2.8.0 ~ 2.9.4 均有此问题 feat: disabledTime 返回值改为对象,简化写法 docs: 添加文档 feat: 优化点击确定按钮时的提示 fix: 修复一些边界情况 docs: typo refactor: 优化年月禁用 refactor: 优化确定按钮 hint chore: typo docs: update * refactor: 优化代码结构 * refactor: 优化 disabledTime,减少不必要的计算 * chore(laydate): 使用 prettier 格式化头部代码 * docs(laydate): 补充新选项文档描述 --------- Co-authored-by: 贤心 <3277200+sentsim@users.noreply.github.com>
This commit is contained in:
@@ -325,6 +325,66 @@ max: 7 // 最大日期为 7 天后
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>disabledDate <sup>2.9.8+</sup> </td>
|
||||
<td>
|
||||
|
||||
用于设置不可选取的日期。示例:
|
||||
|
||||
```js
|
||||
disabledDate: function(date, type){
|
||||
// date - 当前的日期对象
|
||||
// type - 面板类型,'start'/'end'
|
||||
|
||||
// 返回值为 true 的日期会被禁用
|
||||
return date.getTime() < new Date(2024, 1).getTime(); // 2024-02-01
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
</td>
|
||||
<td>function</td>
|
||||
<td> - </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>disabledTime <sup>2.9.8+</sup> </td>
|
||||
<td>
|
||||
|
||||
用于设置不可选取的时间。示例:
|
||||
|
||||
```js
|
||||
disabledTime: function(date, type){
|
||||
// date - 当前的日期对象
|
||||
// type - 面板类型,'start'/'end'
|
||||
|
||||
// 数组中指定的时间会被禁用
|
||||
return {
|
||||
hours: function(){
|
||||
return range(0, 10);
|
||||
},
|
||||
minutes:function(hour){
|
||||
return hour > 5 ? range(0, 20) : [];
|
||||
},
|
||||
seconds:function(hour, minute){
|
||||
return range(0, 2);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function range(start, end) {
|
||||
var result = [];
|
||||
for (var i = start; i < end; i++) {
|
||||
result.push(i);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
```
|
||||
|
||||
</td>
|
||||
<td>function</td>
|
||||
<td> - </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>trigger</td>
|
||||
<td>
|
||||
|
||||
@@ -704,4 +764,4 @@ done: function(value, date, endDate){
|
||||
</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</table>
|
||||
|
@@ -21,6 +21,18 @@
|
||||
这里以控制在 9:30-17:30 为例
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">禁用日期</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input" id="ID-laydate-limit-4" placeholder="仅过去的时间可选">
|
||||
</div>
|
||||
</div>
|
||||
<div class="layui-inline">
|
||||
<label class="layui-form-label">禁用指定时间</label>
|
||||
<div class="layui-input-inline">
|
||||
<input type="text" class="layui-input" id="ID-laydate-limit-5" placeholder="时间范围禁用">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -54,5 +66,41 @@ layui.use(function(){
|
||||
max: '17:30:00',
|
||||
btns: ['clear', 'confirm']
|
||||
});
|
||||
|
||||
// 禁用日期
|
||||
laydate.render({
|
||||
elem: '#ID-laydate-limit-4',
|
||||
disabledDate: function(date, type){
|
||||
return date.getTime() > Date.now();
|
||||
}
|
||||
});
|
||||
|
||||
// 禁用指定时间
|
||||
laydate.render({
|
||||
elem: '#ID-laydate-limit-5',
|
||||
type: 'time',
|
||||
range: true,
|
||||
disabledTime: function(date, type){
|
||||
return {
|
||||
hours: function(){
|
||||
return range(0, 10);
|
||||
},
|
||||
minutes:function(hour){
|
||||
return hour > 5 ? range(0, 20) : [];
|
||||
},
|
||||
seconds:function(hour, minute){
|
||||
return range(0, 2);
|
||||
}
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
function range(start, end) {
|
||||
var result = [];
|
||||
for (var i = start; i < end; i++) {
|
||||
result.push(i);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
});
|
||||
</script>
|
Reference in New Issue
Block a user