# laydateTab
**Repository Path**: xumisky/laydate-tab
## Basic Information
- **Project Name**: laydateTab
- **Description**: 基于layui的laydate实现的日期时间选择组件选项卡,可以支持多个日期类型切换选择,且对于laydate的配置全部支持。
- **Primary Language**: JavaScript
- **License**: MIT
- **Default Branch**: develop
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 17
- **Forks**: 4
- **Created**: 2020-12-20
- **Last Updated**: 2025-09-24
## Categories & Tags
**Categories**: layui-components
**Tags**: None
## README
# laydateTab
## 介绍
基于layui的laydate实现的日期时间选择组件选项卡,可以支持多个日期类型切换选择,且对于laydate的配置全部支持。 [查看例子展示](https://xumisky.gitee.io/laydate-tab/)

## 安装教程
依赖laydate,所以必须引用laydate!
插件目录一定为以下结构:
```javascript
|-- extends
|-- css
|-- laydateTab.css
|-- laydateTab.js
```
### 1. 使用layui模块化引入
项目目录结构假设为:
```javascript
|-- project
|-- js
|-- layui
|-- css
|-- layui.css
|-- extends
|-- css
|-- laydateTab.css
|-- laydateTab.js
|-- lay
...
|-- font
...
|-- images
...
|-- layui.all.js
|-- layui.js
```
**则引用方式为:**
1. 先加载layui相关的js、css
2. 模块加载代码如下
```javascript
layui.config({
base: 'js/layui/extends/'
}).extend({
laydateTab: 'laydateTab'
}).use(['laydateTab'], function(){
var laydateTab = layui.laydateTab;
});
```
### 2. 使用laydate单独引入
项目目录结构假设为:
```javascript
|-- project
|-- js
|-- laydate
|-- laydate.js
|-- theme
|-- default
...
|-- laydate.css
|-- extends
|-- css
|-- laydateTab.css
|-- laydateTab.js
```
**则引用方式为:**
```javascript
```
## 使用说明
### 获取laydateTab对象
1. 使用layui模块化引入,使用``layui.laydateTab``获取laydateTab对象。
```javascript
layui.config({
base: 'js/layui/extends/' //假设这是你存放拓展模块的根目录
}).extend({ //设定laydateTab模块别名
laydateTab: 'laydateTab'
}).use(['laydateTab'], function(){
var laydateTab = layui.laydateTab;
laydateTab.render({
elem : '#indate'
});
});
```
2. 使用laydate模块单独引入,使用``laydateTab``获取laydateTab对象。
```javascript
laydateTab.render({
elem : '#indate'
});
```
3. 具体例子参考 **examples** 文件夹里面。
**最简单的绑定配置**
```javascript
laydateTab.render({
elem : '#indate' // 绑定触发元素
});
```
**比较复杂的绑定配置**
```javascript
laydateTab.render({
elem : '#indate', // 绑定触发元素
type : ['year', 'month'], //显示的类型选项卡
title : ['年份', '月份'], // 日期选择选项卡显示的标题名称
range : '~', // 开启范围,使用Array则对类型区分使用该参数
selected : 'month', // 初始化默认显示的选项卡
theme : '#393D49', //主题
// 渲染成功之后回调
success : function(tabElem, options) {
console.log(tabElem); // 日期选项卡对应的标签元素
console.log(options); // 渲染的参数
},
// 切换选项卡的回调
changeTab : function(type, title) {
console.log(type); // 当前选择的类型
console.log(title); // 当前选择的类型标题名称
},
// 选择完毕的回调, 可参考laydate done回调
done : function(value, date, endDate) {
console.log(value); // 生成的值(选择后的值)
console.log(date); // 日期时间对象
console.log(date); //结束的日期时间对象
layer.msg('当前选择的值为:
' + value);
},
// 销毁选项卡之后的回调
end : function(elem) {
console.log(elem); // 所绑定的触发元素 - elem对象
}
});
```
### laydateTab特有的相关配置
|参数 |类型 |说明 |示例值 |
---|---|---|---
elem | String/DOM | 指定laydateTab的触发的元素,必填 | '#demo'
trigger | String | 触发显示laydateTab的事件,默认值:click | 'mouseover'
type | Array / String | 需要渲染的选项卡类型。
1. 默认值: ['year', 'month', 'date']
2. 选项卡类型值:
year : 年
month : 月
date : 日期
time : 时间
datetime : 日期时间
3. 内置String快捷类型:
yms : 年、月、日期3个选项卡
ym : 年、月2个选项卡
md : 月、日期2个选项卡
all : 年、月、日期、时间、日期时间全部5个选项卡 | 'yms'
[year', 'month', 'date']
title | Array | [选填]日期选择选项卡显示的标题名称,如果填写,则使用数组写出和type对应的选项卡标题名称,如果数组中某个值为null,则使用内置默认值。
默认值如下:
year: 年
month: 月
date: 日期
datetime: 日期时间
time: 时间 | ['年份', '月份', '日期']
value | Array / String | 日期默认值,使用数组则需要和type一一对应。 | '2020-12-01'
selected | String | 初始化默认显示的选项卡。 | 'date'
theme | String | 主题;theme的可选值有:default(默认简约)、molv(墨绿背景)、#颜色值(自定义颜色背景)、grid(格子主题)| '#393D49'
locationValueTab | Boolean | 有初始值情况下,是否定位到初始值对应的选项卡类型,默认true,false不进行定位 | false
success | Function | 渲染显示成功之后的回调,返回2个参数,分别为日期选项卡对应的标签元素、渲染配置 | function(tabElem, options) {
console.log(tabElem);
console.log(options);
}
changeTab | Function | 切换选项卡的回调,返回1个参数-选项卡对应的类型、类型标题名称 | function(type, title) {
console.log(type);
console.log(title);
}
done | Array / Function | 选择完毕的回调,如果是数组,则数组存放的也需要为function,可参考laydate done回调;回调参数带有3个参数分别代表:生成的值、日期时间对象、结束的日期时间对象;如果return String类型的值回去,则将return的值给elem赋值
| function(value, date, endDate){
console.log(value);
console.log(date);
console.log(endDate);
}
end | Function | 销毁选项卡之后的回调,返回1个参数-所绑定的elem对象 | function(elem) {
console.log(elem);
}
*tips : `position`参数不可使用*
### 其他相关配置
其他配置参考[laydate配置](https://www.layui.com/doc/modules/laydate.html#onchange), 选项卡全通用则使用**单个值**,区分选项卡则使用**数组**。
## 参与贡献
1. Fork 本仓库
2. 新建 Feat_xxx 分支
3. 提交代码
4. 新建 Pull Request