Files
layui/examples/laydate.html
sunxiaobin89 5ab142153b ci: 添加 lint 和 format 工具,统一代码格式 (#2905)
* style: 统一代码格式,修复ESLint错误

- 为所有模块添加尾随逗号
- 修复缺少分号的语句
- 统一对象字面量格式
- 添加ESLint配置文件和文档
- 更新package.json中的脚本和依赖项

* build: 添加 ESLint 配置文件以支持 IE9+ 兼容性

* refactor(upload): 使用已缓存的hint实例替换直接调用

优化代码性能,避免重复实例化hint对象,直接使用模块顶部已缓存的实例

* chore: 更新.gitignore文件以包含更多忽略规则

添加了更多常见的临时文件、编辑器文件、构建输出目录和运行时数据的忽略规则,使项目更加整洁并避免不必要的文件被提交到版本控制中

* fix(lay.js): 修复passive事件监听器选项的返回值

确保getter函数返回true以正确支持passive事件监听

* refactor(form): 移除表单模块中的冗余代码

删除表单模块中无实际作用的冗余代码行,这些代码只是将属性重新赋值为自身,没有实际功能意义

* fix(form): 修复复选框状态处理逻辑

确保复选框的 indeterminate 和 checked 状态被正确转换为布尔值,并优化事件调用时的空格格式

* feat(eslint): 完善 ESLint 配置并添加 VSCode 支持

添加 VSCode 配置文件以支持 ESLint 自动修复和格式化
更新 ESLint 配置,增强代码风格和兼容性规则
修复 package.json 中的脚本拼写错误并添加 format 脚本
调整 .gitignore 以允许特定 VSCode 配置文件

* style: 统一代码中的引号格式并修复缩进问题

统一将双引号改为单引号,修复部分代码缩进不一致的问题,提升代码风格一致性

* docs: 删除过时的ESLint配置文档文件

* build: 采用 prettier 作为代码格式化工具,剔除 ESLint 格式化部分

* chore: 剔除 .vscode/ 配置,保持编辑器中立

* build: 修改 ESLint 为「扁平化配置」方式,避免大量参数堆砌

* chore: 格式化代码

* ci: 添加 git hooks 和 CI 环节把关代码风格

* ci: update

* ci: update

* test: 测试 ci format

* ci: 改用 husky 作为 git hooks,与 Layui 3 保持一致

经测试,simple-git-hooks 生成的 pre-commit 默认为 sh,在 Windows 不兼容(必须用 git bash 执行 commits)

* build: 新增 CI 和生产环境跳过 husky 安装的判断

* build: 剔除重复配置

* build: 优化 eslint 配置

---------

Co-authored-by: 贤心 <3277200+sentsim@users.noreply.github.com>
2025-11-10 16:03:37 +08:00

559 lines
14 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="renderer" content="webkit" />
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta
name="viewport"
content="width=device-width, initial-scale=1, maximum-scale=1"
/>
<title>日期模块 - layui</title>
<link rel="stylesheet" href="../src/css/layui.css" />
<style>
body {
padding: 50px 100px;
}
.layui-inline {
margin-right: 15px;
}
</style>
</head>
<body>
<div class="layui-inline">
<input
type="text"
class="layui-input"
id="test-first"
placeholder="带遮罩"
/>
</div>
<br />
<hr />
范围选择1
<div class="layui-inline">
<input type="text" class="layui-input" id="test1" />
</div>
<br />
<hr />
<div class="layui-form">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label">范围选择2</label>
<div class="layui-inline" id="test1-2">
<div class="layui-input-inline">
<input
type="text"
autocomplete="off"
id="test-startDate-1"
class="layui-input"
placeholder="开始日期"
/>
</div>
<div class="layui-form-mid">-</div>
<div class="layui-input-inline">
<input
type="text"
autocomplete="off"
id="test-endDate-1"
class="layui-input"
placeholder="结束日期"
/>
</div>
</div>
</div>
</div>
</div>
<br />
<hr />
日期选择器:
<div class="layui-inline">
<input type="text" class="layui-input" id="test2" />
</div>
开启快捷面板:
<div class="layui-inline">
<input type="text" class="layui-input" id="test2-1" />
</div>
<br /><br />
<hr />
<br />
年选择器:
<div class="layui-inline">
<input type="text" class="layui-input" id="test3" />
</div>
年月选择器:
<div class="layui-inline">
<input type="text" class="layui-input" id="test4" />
</div>
时间时间器:
<div class="layui-inline">
<input type="text" class="layui-input" id="test5" />
</div>
<br /><br />
<hr />
<br />
时间范围选择
<div class="layui-inline">
<input type="text" class="layui-input" id="test55" />
</div>
自定义重要日:
<div class="layui-inline">
<input type="text" class="layui-input" id="test555" />
</div>
标注法定节假日及补班:
<div class="layui-inline">
<input type="text" class="layui-input" id="test5555" />
</div>
<br /><br />
<hr />
<br />
同时绑定多个:
<div class="layui-inline">
<input type="text" class="layui-input test-item" />
</div>
<div class="layui-inline">
<input type="text" class="layui-input test-item" />
</div>
<div class="layui-inline">
<input type="text" class="layui-input test-item" />
</div>
<br /><br />
<hr />
<br />
墨绿主题:
<div class="layui-inline">
<input type="text" class="layui-input" id="test6-1" />
</div>
自定义头部背景色:
<div class="layui-inline">
<input type="text" class="layui-input" id="test6-2" />
</div>
格子主题:
<div class="layui-inline">
<input type="text" class="layui-input" id="test6-3" />
</div>
<br /><br />
<hr />
<br />
<button class="layui-btn" id="test7">其它元素触发</button>
<div class="layui-inline">
<input type="text" class="layui-input" id="test6" />
</div>
<textarea></textarea>
<button class="layui-btn" id="test9">外部事件触发</button>
<div class="layui-inline">
<input type="text" class="layui-input" id="test8" />
</div>
<br /><br />
<hr />
<br />
直接嵌套在指定容器中:<br /><br />
<div class="layui-inline" id="test10"></div>
<div class="layui-inline" id="test11" style="margin-left: 30px"></div>
<script
src="../src/layui.js"
src1="http://local.res.layui.com/layui/release/laydate/dist/laydate.js"
charset="utf-8"
></script>
<script>
layui.use('laydate', function (laydate) {
//全局配置
laydate.set({
//trigger: 'focus'
});
// 第一个任意示例
laydate.render({
elem: '#test-first',
min: 0,
shade: [0.1, '#000'],
//max: '2016-12-30',
done: function () {
console.log('done', arguments);
},
onConfirm: function () {
console.log('confirm', arguments);
},
onNow: function () {
console.log('now', arguments);
},
onClear: function () {
console.log('clear', arguments);
}
});
// 范围选择1
laydate.render({
elem: '#test1', // 指定元素
type: 'datetime',
trigger: 'click',
// lang: 'en',
// theme: 'grid',
range: true, // 开启日期范围,默认使用“-”分割
// rangeLinked: true,
// min: '1970-1-1',
// max: '2021-5-9',
// value: '2021-05-09 12:06:09',
// value: '2021-05-08 - 2021-03-27',
done: function (value, date, endDate) {
console.log(value, date, endDate);
//this.elem.val(123);
},
change: function (value, date, endDate) {
console.log(value, date, endDate);
}
});
// return;
// 范围选择2
laydate.render({
elem: '#test1-2',
type: 'datetime',
range: ['#test-startDate-1', '#test-endDate-1'],
rangeLinked: true, // 是否开启日期范围选择时的区间联动标注模式
// value: ['2022-05-01', '2022-10-01'],
// value: '2022-05-01 - 2022-06-01',
done: function (value, date, endDate) {
console.log(value);
console.log(date);
console.log(endDate);
}
});
// 日期选择器(单面板)
laydate.render({
elem: '#test2',
//,format: 'yyyy年MM月dd日'
value: new Date(1534766888000),
//,isInitValue: false
format: 'yyyy/MM/dd',
min: 7,
//,max: 0
//,min: '2016-10-14'
//,max: -1
//,value: '1989年10月14日'
ready: function (date) {
console.log(date);
},
done: function (value, date, endDate) {
console.log(value, date, endDate);
//this.elem.val(111111);
},
change: function (value) {
console.log(value);
}
});
// 开启快捷面板
laydate.render({
elem: '#test2-1',
shortcuts: [
{
text: '昨天',
value: (function () {
var now = new Date();
now.setDate(now.getDate() - 1);
return now;
})()
},
{ text: '今天', value: Date.now() },
{
text: '明天',
value: (function () {
var now = new Date();
now.setDate(now.getDate() + 1);
return now;
})()
},
{
text: '上个月',
value: (function () {
var now = new Date();
// now.setDate(now.getDate() - 1);
now.setMonth(now.getMonth() - 1);
return [now];
})()
},
{
text: '上个月的前一天',
value: (function () {
var now = new Date();
now.setMonth(now.getMonth() - 1);
now.setDate(now.getDate() - 1);
return [now];
})()
},
{
text: '某一天',
value: '2020-12-12'
}
]
});
//年选择器
laydate.render({
elem: '#test3',
type: 'year',
//,range: true
//,trigger: 'click'
//,min:'2021-01-01'
//,max:'2022-12-31'
done: function (value, date, endDate) {
console.log(value, date, endDate);
},
change: function (value, date, endDate) {
//this.elem.val(value)
}
});
//年月选择器
laydate.render({
elem: '#test4',
type: 'month',
range: true,
trigger: 'click',
min: '2022-03-01',
max: '2022-05-31',
done: function (value, date, endDate) {
console.log(value, date, endDate);
},
change: function (value, date, endDate) {
this.elem.val(value);
}
});
//时间选择器
laydate.render({
elem: '#test5',
type: 'time',
//,range: true
//,trigger: 'click'
min: '09:30:00',
max: '17:30:00',
done: function (value, date, endDate) {
console.log(value, date, endDate);
},
change: function (value, date, endDate) {
//this.elem.val(value)
}
});
//时间范围选择器
laydate.render({
elem: '#test55',
type: 'time',
range: true,
//,trigger: 'click'
done: function (value, date, endDate) {
console.log(value, date, endDate);
}
});
// 同时绑定多个
laydate.render({
elem: '.test-item',
trigger: 'click'
});
/*
lay('.test-item').each(function(){
laydate.render({
elem: this
,trigger: 'click'
});
});
*/
//自定义重要日
var ins555 = laydate.render({
elem: '#test555',
//,calendar: true //是否开启公历重要节日
mark: {
//标记重要日子
'0-10-14': '生日', //0代表每年
'0-0-15': '中旬',
'2017-8-20': 'v2',
'2017-8-31': '月底'
},
done: function (value, date, endDate) {
if (date.year == 2016 && date.month == 10 && date.date == 14) {
//console.log('Layui 诞生日');
}
},
change: function (value, date, endDate) {
console.log(value);
}
});
// 标注法定节假日及补班
laydate.render({
elem: '#test5555',
value: '2022-5-21',
holidays: [
[
'2022-1-1',
'2022-1-2',
'2022-1-3',
'2022-1-31',
'2022-2-1',
'2022-2-2',
'2022-2-3',
'2022-2-4',
'2022-2-5',
'2022-2-6',
'2022-4-3',
'2022-4-4',
'2022-4-5',
'2022-4-30',
'2022-5-1',
'2022-5-2',
'2022-5-3',
'2022-5-4',
'2022-6-3',
'2022-6-4',
'2022-6-5',
'2022-9-10',
'2022-9-11',
'2022-9-12',
'2022-10-1',
'2022-10-2',
'2022-10-3',
'2022-10-4',
'2022-10-5',
'2022-10-6',
'2022-10-7'
],
[
'2022-1-29',
'2022-1-30',
'2022-4-2',
'2022-4-24',
'2022-5-7',
'2022-10-8',
'2022-10-9'
]
]
});
//墨绿主题
laydate.render({
elem: '#test6-1', //指定元素
type: 'datetime',
theme: 'molv',
value: 20180115,
isInitValue: true,
lang: 'en',
//,range: true
trigger: 'click'
});
//自定义背景色主题
laydate.render({
elem: '#test6-2', //指定元素
type: 'datetime',
theme: '#393D49',
//,range: true
trigger: 'click'
});
//格子主题
laydate.render({
elem: '#test6-3', //指定元素
//,type: 'datetime'
theme: 'grid',
//,range: true
trigger: 'click'
});
//其它元素触发
laydate.render({
elem: '#test6', //指定元素
eventElem: '#test7', //绑定执行事件的元素
lang: 'en'
});
//外部事件
lay('#test9').on('click', function (e) {
laydate.render({
elem: '#test8',
type: 'datetime',
show: true,
//,min: '2017-08-12 00:10:00'
//,max: '2017-08-12 23:10:10'
closeStop: '#test9', //点击 #test6 所在元素区域不关闭控件
change: function (value, date) {
console.log(value, date);
},
done: function (value, date) {
console.log(value, date);
}
});
});
//直接嵌套在指定容器中
var ins10 = laydate.render({
elem: '#test10',
position: 'static',
calendar: true, //是否开启公历重要节日
mark: {
//标记重要日子
'2021-8-20': '',
'2021-8-21': ''
},
done: function (value, date, endDate) {
if (date.year == 2021 && date.month == 8 && date.date == 20) {
ins10.hint(value + ',活动日');
}
},
change: function (value, date, endDate) {
console.log(value, date);
}
});
laydate.render({
elem: '#test11',
position: 'static',
lang: 'en',
type: 'datetime',
calendar: true, //是否开启公历重要节日
done: function (value, date, endDate) {
//console.log(value, date, endDate);
},
change: function (value, date, endDate) {
console.log(value);
}
});
});
</script>
</body>
</html>