mirror of
https://gitee.com/layui/layui.git
synced 2025-11-24 16:43:14 +08:00
Merge branch 'main' into 2.x
This commit is contained in:
2
dist/css/layui.css
vendored
2
dist/css/layui.css
vendored
File diff suppressed because one or more lines are too long
2
dist/css/layui.css.map
vendored
2
dist/css/layui.css.map
vendored
File diff suppressed because one or more lines are too long
2
dist/layui.js
vendored
2
dist/layui.js
vendored
File diff suppressed because one or more lines are too long
2
dist/layui.js.map
vendored
2
dist/layui.js.map
vendored
File diff suppressed because one or more lines are too long
@@ -302,6 +302,20 @@ click: function(data, othis){
|
|||||||
|
|
||||||
用法详见:[#示例](#examples)
|
用法详见:[#示例](#examples)
|
||||||
|
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>close <sup>2.9.7+</sup></td>
|
||||||
|
<td colspan="3">
|
||||||
|
|
||||||
|
面板关闭后的回调函数。返回的参数如下:
|
||||||
|
|
||||||
|
```
|
||||||
|
close: function(elem){
|
||||||
|
console.log(elem); // 当前组件绑定的目标元素对象
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
|
|||||||
@@ -103,6 +103,18 @@ layui.each(data, function(index, item){
|
|||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
|
<td>direction <sup>2.9.7+</sup></td>
|
||||||
|
<td>
|
||||||
|
|
||||||
|
指定触发加载的方向,可选值:
|
||||||
|
- `bottom` 滚动容器底部触发加载
|
||||||
|
- `top` 滚动容器顶部触发加载
|
||||||
|
|
||||||
|
</td>
|
||||||
|
<td>string</td>
|
||||||
|
<td>'bottom'</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
<td>done</td>
|
<td>done</td>
|
||||||
<td colspan="3">
|
<td colspan="3">
|
||||||
|
|
||||||
|
|||||||
@@ -117,6 +117,7 @@ form 还可以借助*栅格*实现更灵活的响应式布局。
|
|||||||
| lay-affix | [#详见](input.html#affix) | 输入框动态点缀,`<input type="text">`元素 **私有属性** |
|
| lay-affix | [#详见](input.html#affix) | 输入框动态点缀,`<input type="text">`元素 **私有属性** |
|
||||||
| lay-skin | [#详见](checkbox.html#default) | 设置 UI 风格。 `<input type="checkbox">` 元素 **私有属性** |
|
| lay-skin | [#详见](checkbox.html#default) | 设置 UI 风格。 `<input type="checkbox">` 元素 **私有属性** |
|
||||||
| lay-search | 默认不区分大小写;<br>设置`cs`区分大小写 | 给 `select` 组件开启搜索功能。`<select>` 元素 **私有属性** |
|
| lay-search | 默认不区分大小写;<br>设置`cs`区分大小写 | 给 `select` 组件开启搜索功能。`<select>` 元素 **私有属性** |
|
||||||
|
| lay-creatable <sup>2.9.7+</sup> | 无需值 | 是否允许创建新条目,需要配合 `lay-search` 使用。`<select>` 元素 **私有属性** } |
|
||||||
| lay-submit | 无需值 | 设置元素(一般为`<button>` 标签)触发 `submit` 提交事件 |
|
| lay-submit | 无需值 | 设置元素(一般为`<button>` 标签)触发 `submit` 提交事件 |
|
||||||
| lay-ignore | 无需值 | 设置表单元素忽略渲染,即让元素保留系统原始 UI 风格 |
|
| lay-ignore | 无需值 | 设置表单元素忽略渲染,即让元素保留系统原始 UI 风格 |
|
||||||
|
|
||||||
|
|||||||
@@ -161,6 +161,18 @@ toc: true
|
|||||||
</optgroup>
|
</optgroup>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="layui-col-md6">
|
||||||
|
<select lay-search="" lay-creatable="">
|
||||||
|
<option value="">可创建新的 option</option>
|
||||||
|
<option value="1">AAA</option>
|
||||||
|
<option value="2">aaa</option>
|
||||||
|
<option value="3">BBB</option>
|
||||||
|
<option value="4">bbb</option>
|
||||||
|
<option value="5">ABC</option>
|
||||||
|
<option value="6">abc</option>
|
||||||
|
<option value="7">AbC</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<!-- import layui -->
|
<!-- import layui -->
|
||||||
|
|||||||
@@ -398,6 +398,7 @@ layer.closeLast('page'); // 关闭最近一次打开的页面层
|
|||||||
layer.closeLast('iframe'); // 关闭最近一次打开的 iframe 层
|
layer.closeLast('iframe'); // 关闭最近一次打开的 iframe 层
|
||||||
layer.closeLast('loading'); // 关闭最近一次打开的加载层
|
layer.closeLast('loading'); // 关闭最近一次打开的加载层
|
||||||
layer.closeLast('tips'); // 关闭最近一次打开的 tips 层
|
layer.closeLast('tips'); // 关闭最近一次打开的 tips 层
|
||||||
|
layer.closeLast(['dialog', 'page']); // 关闭最近一次打开的信息框或页面层,2.9.7+
|
||||||
```
|
```
|
||||||
|
|
||||||
<h2 id="config" lay-pid="api" class="ws-anchor ws-bold">全局配置默认属性</h2>
|
<h2 id="config" lay-pid="api" class="ws-anchor ws-bold">全局配置默认属性</h2>
|
||||||
|
|||||||
@@ -79,7 +79,7 @@
|
|||||||
开启表格头部工具栏。支持以下几种值写法:
|
开启表格头部工具栏。支持以下几种值写法:
|
||||||
|
|
||||||
- `toolbar: '#template-id'` 自定义工具栏模板选择器
|
- `toolbar: '#template-id'` 自定义工具栏模板选择器
|
||||||
- `toolbar: '<div>xxx</div>` 直接传入模板字符
|
- `toolbar: '<div>xxx</div>'` 直接传入模板字符
|
||||||
- `toolbar: true` 仅开启工具栏右侧,不显示左侧模板
|
- `toolbar: true` 仅开启工具栏右侧,不显示左侧模板
|
||||||
- `toolbar: 'default'` 开启工具栏并显示默认模板
|
- `toolbar: 'default'` 开启工具栏并显示默认模板
|
||||||
|
|
||||||
|
|||||||
@@ -9,9 +9,36 @@ toc: true
|
|||||||
|
|
||||||
<h2 id="2.9.x" lay-toc="{title: '2.9.x'}"></h2>
|
<h2 id="2.9.x" lay-toc="{title: '2.9.x'}"></h2>
|
||||||
|
|
||||||
|
|
||||||
|
<h2 id="v2.9.7" class="ws-anchor">
|
||||||
|
v2.9.7
|
||||||
|
<!-- <span class="layui-badge-rim" style="color: #16b777;">稳定版</span> -->
|
||||||
|
<span class="layui-badge-rim">2024-02-28</span>
|
||||||
|
</h2>
|
||||||
|
|
||||||
|
- #### select
|
||||||
|
- 新增 `lay-creatable` 属性,用于在开启搜索时允许创建新选项 #1618 @Sight-wcg
|
||||||
|
- #### table
|
||||||
|
- 修复 禁止拖拽列宽后仍可拖拽的问题 #1591 @Sight-wcg
|
||||||
|
- #### layer
|
||||||
|
- 新增 遮罩层添加过渡效果 #1616 @Sight-wcg
|
||||||
|
- 修复 弹出高度设置为 `auto` 时,恢复大小时内容区高度错误 #1617 @Sight-wcg
|
||||||
|
- 优化 最大/小化再恢复大小后宽高偶现细微差异的问题 #1653 @Sight-wcg
|
||||||
|
- #### laydate
|
||||||
|
- 新增时间选择器根据 `format` 格式进行显隐支持 #1656 @Sight-wcg
|
||||||
|
- #### dropdown
|
||||||
|
- 新增 close 选项,用于下拉面板被关闭后触发的回调函数 #1605 @Sight-wcg
|
||||||
|
- #### flow
|
||||||
|
- 新增 direction 选项,用于设置触发加载的方向 #1638 @Sight-wcg
|
||||||
|
- #### 其他
|
||||||
|
- 修改 源码 Unicode 编码转换为中文字符 #1600 @Sight-wcg
|
||||||
|
|
||||||
|
### 下载: [layui-v2.9.7.zip](https://gitee.com/layui/layui/attach_files/1685481/download)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
<h2 id="v2.9.6" class="ws-anchor">
|
<h2 id="v2.9.6" class="ws-anchor">
|
||||||
v2.9.6
|
v2.9.6
|
||||||
<!-- <span class="layui-badge-rim" style="color: #16b777;">稳定版</span> -->
|
|
||||||
<span class="layui-badge-rim">2024-01-24</span>
|
<span class="layui-badge-rim">2024-01-24</span>
|
||||||
</h2>
|
</h2>
|
||||||
|
|
||||||
|
|||||||
@@ -37,225 +37,286 @@
|
|||||||
|
|
||||||
<script src="../src/layui.js"></script>
|
<script src="../src/layui.js"></script>
|
||||||
<script>
|
<script>
|
||||||
layui.use('dropdown', function(){
|
layui.use('dropdown', function () {
|
||||||
var dropdown = layui.dropdown;
|
var dropdown = layui.dropdown;
|
||||||
|
|
||||||
dropdown.render({
|
dropdown.render({
|
||||||
elem: '#demo1'
|
elem: '#demo1',
|
||||||
,shade: [0.1, '#ddd']
|
shade: [0.1, '#ddd'],
|
||||||
//,align: 'right'
|
//,align: 'right'
|
||||||
,data: [{
|
data: [
|
||||||
title: 'menu item 1'
|
{
|
||||||
,templet: '<i class="layui-icon layui-icon-light"></i> {{= d.title }} <span class="layui-badge-dot"></span>'
|
title: 'menu item 1',
|
||||||
,id: ''
|
templet:
|
||||||
,href: ''
|
'<i class="layui-icon layui-icon-light"></i> {{= d.title }} <span class="layui-badge-dot"></span>',
|
||||||
,type: '' //菜单类型,支持:normal/group/parent
|
id: '',
|
||||||
},{
|
href: '',
|
||||||
title: 'menu item <strong>2</strong>'
|
type: '' //菜单类型,支持:normal/group/parent
|
||||||
,templet: '<img src="https://unpkg.com/outeres@0.1.1/demo/avatar/0.png" style="width: 16px;"> {{- d.title }}'
|
},
|
||||||
,id: ''
|
{
|
||||||
,href: 'https://www.layui.com/'
|
title: 'menu item <strong>2</strong>',
|
||||||
,target: '_blank'
|
templet:
|
||||||
},{type: '-'},{},{
|
'<img src="https://unpkg.com/outeres@0.1.1/demo/avatar/0.png" style="width: 16px;"> {{- d.title }}',
|
||||||
title: 'menu item 3 <hello>'
|
id: '',
|
||||||
,id: ''
|
href: 'https://www.layui.com/',
|
||||||
,type: 'group'
|
target: '_blank'
|
||||||
,child: [{
|
},
|
||||||
title: 'menu item 3-1'
|
{ type: '-' },
|
||||||
,id: ''
|
{},
|
||||||
},{
|
{
|
||||||
title: 'menu item 3-2'
|
title: 'menu item 3 <hello>',
|
||||||
,id: ''
|
id: '',
|
||||||
,child: [{
|
type: 'group',
|
||||||
title: 'menu item 3-2-1'
|
child: [
|
||||||
,id: ''
|
{
|
||||||
},{
|
title: 'menu item 3-1',
|
||||||
title: 'menu item 3-2-2'
|
id: ''
|
||||||
,id: ''
|
},
|
||||||
,type: 'group'
|
{
|
||||||
,child: [{
|
title: 'menu item 3-2',
|
||||||
title: 'menu item 3-2-2-1'
|
id: '',
|
||||||
,id: ''
|
child: [
|
||||||
},{
|
{
|
||||||
title: 'menu item 3-2-2-2'
|
title: 'menu item 3-2-1',
|
||||||
,id: ''
|
id: ''
|
||||||
}]
|
},
|
||||||
},{
|
{
|
||||||
title: 'menu item 3-2-3'
|
title: 'menu item 3-2-2',
|
||||||
,id: ''
|
id: '',
|
||||||
}]
|
type: 'group',
|
||||||
},{
|
child: [
|
||||||
title: 'menu item 3-3'
|
{
|
||||||
,id: ''
|
title: 'menu item 3-2-2-1',
|
||||||
,type: 'group'
|
id: ''
|
||||||
,child: [{
|
},
|
||||||
title: 'menu item 3-3-1'
|
{
|
||||||
,id: ''
|
title: 'menu item 3-2-2-2',
|
||||||
},{
|
id: ''
|
||||||
title: 'menu item 3-3-2'
|
}
|
||||||
,id: ''
|
]
|
||||||
,child: [{
|
},
|
||||||
title: 'menu item 3-3-2-1'
|
{
|
||||||
,id: ''
|
title: 'menu item 3-2-3',
|
||||||
},{
|
id: ''
|
||||||
title: 'menu item 3-3-2-2'
|
}
|
||||||
,id: ''
|
]
|
||||||
},{
|
},
|
||||||
title: 'menu item 3-3-2-3'
|
{
|
||||||
,id: ''
|
title: 'menu item 3-3',
|
||||||
}]
|
id: '',
|
||||||
},{
|
type: 'group',
|
||||||
title: 'menu item 3-3-3'
|
child: [
|
||||||
,id: ''
|
{
|
||||||
}]
|
title: 'menu item 3-3-1',
|
||||||
}]
|
id: ''
|
||||||
}
|
},
|
||||||
,{type: '-'}
|
{
|
||||||
,{
|
title: 'menu item 3-3-2',
|
||||||
title: 'menu item 4'
|
id: '',
|
||||||
,id: ''
|
child: [
|
||||||
},{
|
{
|
||||||
title: 'menu item 5'
|
title: 'menu item 3-3-2-1',
|
||||||
,id: ''
|
id: ''
|
||||||
,child: [{
|
},
|
||||||
title: 'menu item 5-1'
|
{
|
||||||
,id: ''
|
title: 'menu item 3-3-2-2',
|
||||||
,child: [{
|
id: ''
|
||||||
title: 'menu item 5-1-1'
|
},
|
||||||
,id: ''
|
{
|
||||||
},{
|
title: 'menu item 3-3-2-3',
|
||||||
title: 'menu item 5-1-2'
|
id: ''
|
||||||
,id: ''
|
}
|
||||||
},{
|
]
|
||||||
title: 'menu item 5-1-3'
|
},
|
||||||
,id: ''
|
{
|
||||||
}]
|
title: 'menu item 3-3-3',
|
||||||
},{
|
id: ''
|
||||||
title: 'menu item 5-2'
|
}
|
||||||
,id: ''
|
]
|
||||||
},{
|
}
|
||||||
title: 'menu item 5-3'
|
]
|
||||||
,id: ''
|
},
|
||||||
}]
|
{ type: '-' },
|
||||||
},{type:'-'},{
|
{
|
||||||
title: 'menu item 6'
|
title: 'menu item 4',
|
||||||
,id: ''
|
id: ''
|
||||||
,type: 'group'
|
},
|
||||||
,isSpreadItem: false
|
{
|
||||||
,child: [{
|
title: 'menu item 5',
|
||||||
title: 'menu item 6-1'
|
id: '',
|
||||||
,id: ''
|
child: [
|
||||||
},{
|
{
|
||||||
title: 'menu item 6-2'
|
title: 'menu item 5-1',
|
||||||
,id: ''
|
id: '',
|
||||||
},{
|
child: [
|
||||||
title: 'menu item 6-3'
|
{
|
||||||
,id: ''
|
title: 'menu item 5-1-1',
|
||||||
}]
|
id: ''
|
||||||
}]
|
},
|
||||||
|
{
|
||||||
|
title: 'menu item 5-1-2',
|
||||||
|
id: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'menu item 5-1-3',
|
||||||
|
id: ''
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'menu item 5-2',
|
||||||
|
id: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'menu item 5-3',
|
||||||
|
id: ''
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{ type: '-' },
|
||||||
|
{
|
||||||
|
title: 'menu item 6',
|
||||||
|
id: '',
|
||||||
|
type: 'group',
|
||||||
|
isSpreadItem: false,
|
||||||
|
child: [
|
||||||
|
{
|
||||||
|
title: 'menu item 6-1',
|
||||||
|
id: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'menu item 6-2',
|
||||||
|
id: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'menu item 6-3',
|
||||||
|
id: ''
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
,id: 'demo1'
|
id: 'demo1',
|
||||||
|
|
||||||
// 触发点击事件的元素范围 --- default: 仅子菜单触发点击事件(默认,可不填); all: 所有父子菜单均触发点击事件
|
// 触发点击事件的元素范围 --- default: 仅子菜单触发点击事件(默认,可不填); all: 所有父子菜单均触发点击事件
|
||||||
,clickScope: 'all'
|
clickScope: 'all',
|
||||||
|
|
||||||
// 菜单被点击的事件
|
// 菜单被点击的事件
|
||||||
,click: function(obj){
|
click: function (obj) {
|
||||||
console.log(obj);
|
console.log(obj);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
var inst = dropdown.render({
|
var inst = dropdown.render({
|
||||||
elem: '#demo2'
|
elem: '#demo2',
|
||||||
// ,show: true
|
// ,show: true
|
||||||
,data: [{
|
data: [
|
||||||
title: 'menu item 1'
|
{
|
||||||
,href: '#1'
|
title: 'menu item 1',
|
||||||
,disabled: true
|
href: '#1',
|
||||||
},{
|
disabled: true
|
||||||
title: 'menu item 2(点击不关闭)'
|
},
|
||||||
,href: '#2'
|
{
|
||||||
,id: 'bbb'
|
title: 'menu item 2(点击不关闭)',
|
||||||
},{
|
href: '#2',
|
||||||
title: 'menu item 3'
|
id: 'bbb'
|
||||||
,href: '#3'
|
},
|
||||||
}]
|
{
|
||||||
,click: function(data, othis){
|
title: 'menu item 3',
|
||||||
|
href: '#3'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
click: function (data, othis) {
|
||||||
console.log(data);
|
console.log(data);
|
||||||
if(data.id === 'bbb'){
|
if (data.id === 'bbb') {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
,ready: function(){
|
ready: function () {
|
||||||
console.log(arguments);
|
console.log(arguments);
|
||||||
|
},
|
||||||
|
close: function () {
|
||||||
|
console.log('demo2', this.elem);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
dropdown.render({
|
dropdown.render({
|
||||||
elem: '#demo3'
|
elem: '#demo3',
|
||||||
,content: '自定义内容 123 '
|
content: '自定义内容 123 ',
|
||||||
,style: 'background:#666;color:#fff;padding:15px;'
|
style: 'background:#666;color:#fff;padding:15px;',
|
||||||
,align: 'center'
|
align: 'center',
|
||||||
,trigger: 'hover'
|
trigger: 'hover',
|
||||||
|
close: function () {
|
||||||
|
console.log('demo3', this.elem);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
//右键
|
//右键
|
||||||
dropdown.render({
|
dropdown.render({
|
||||||
elem: document//'#demo20' //也可绑定到 document,从而重置整个右键
|
elem: document, //'#demo20' //也可绑定到 document,从而重置整个右键
|
||||||
,trigger: 'contextmenu' //contextmenu
|
trigger: 'contextmenu', //contextmenu
|
||||||
,isAllowSpread: false
|
isAllowSpread: false,
|
||||||
//,style: 'width: 200px'
|
//,style: 'width: 200px'
|
||||||
,customName: {
|
customName: {
|
||||||
children: 'children'
|
children: 'children'
|
||||||
}
|
},
|
||||||
,data: [{
|
data: [
|
||||||
title: 'menu item 1'
|
{
|
||||||
,id: '#1'
|
title: 'menu item 1',
|
||||||
},{
|
id: '#1'
|
||||||
title: 'menu item 2'
|
},
|
||||||
,id: 'reload'
|
{
|
||||||
},{type:'-'},{
|
title: 'menu item 2',
|
||||||
title: 'menu item 3'
|
id: 'reload'
|
||||||
,id: '#3'
|
},
|
||||||
,children: [{
|
{ type: '-' },
|
||||||
title: 'menu item 3-1'
|
{
|
||||||
,id: '#1'
|
title: 'menu item 3',
|
||||||
},{
|
id: '#3',
|
||||||
title: 'menu item 3-2'
|
children: [
|
||||||
,id: '#2'
|
{
|
||||||
},{
|
title: 'menu item 3-1',
|
||||||
title: 'menu item 3-3'
|
id: '#1'
|
||||||
,id: '#3'
|
},
|
||||||
}]
|
{
|
||||||
},{type:'-'},{
|
title: 'menu item 3-2',
|
||||||
title: 'menu item 4'
|
id: '#2'
|
||||||
,id: ''
|
},
|
||||||
},{
|
{
|
||||||
title: 'menu item 5'
|
title: 'menu item 3-3',
|
||||||
,id: '#1'
|
id: '#3'
|
||||||
},{
|
}
|
||||||
title: 'menu item 6'
|
]
|
||||||
,id: '#1'
|
},
|
||||||
}]
|
{ type: '-' },
|
||||||
,click: function(obj, othis){
|
{
|
||||||
if(obj.id === 'reload'){
|
title: 'menu item 4',
|
||||||
|
id: ''
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'menu item 5',
|
||||||
|
id: '#1'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: 'menu item 6',
|
||||||
|
id: '#1'
|
||||||
|
}
|
||||||
|
],
|
||||||
|
click: function (obj, othis) {
|
||||||
|
if (obj.id === 'reload') {
|
||||||
location.reload();
|
location.reload();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|
||||||
dropdown.render({
|
dropdown.render({
|
||||||
elem: document
|
elem: document,
|
||||||
,content: '123'
|
content: '123'
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "layui",
|
"name": "layui",
|
||||||
"version": "2.9.6",
|
"version": "2.9.7",
|
||||||
"description": "Classic modular Front-End UI library",
|
"description": "Classic modular Front-End UI library",
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"layui",
|
"layui",
|
||||||
|
|||||||
@@ -85,12 +85,14 @@ html #layuicss-laydate{display: none; position: absolute; width: 1989px;}
|
|||||||
.layui-laydate .layui-laydate-list{position: absolute; left: 0; top: 0; width: 100%; height: 100%; padding: 10px; box-sizing: border-box; background-color: #fff;}
|
.layui-laydate .layui-laydate-list{position: absolute; left: 0; top: 0; width: 100%; height: 100%; padding: 10px; box-sizing: border-box; background-color: #fff;}
|
||||||
.layui-laydate .layui-laydate-list>li{position: relative; display: inline-block; width: 33.3%; height: 36px; line-height: 36px; margin: 3px 0; vertical-align: middle; text-align: center; cursor: pointer; list-style: none;}
|
.layui-laydate .layui-laydate-list>li{position: relative; display: inline-block; width: 33.3%; height: 36px; line-height: 36px; margin: 3px 0; vertical-align: middle; text-align: center; cursor: pointer; list-style: none;}
|
||||||
.layui-laydate .laydate-month-list>li{width: 25%; margin: 17px 0;}
|
.layui-laydate .laydate-month-list>li{width: 25%; margin: 17px 0;}
|
||||||
.laydate-time-list{}
|
.laydate-time-list{display: table;}
|
||||||
.layui-laydate .laydate-time-list>li{height: 100%; margin: 0; line-height: normal; cursor: default;}
|
.layui-laydate .laydate-time-list>li{display: table-cell; height: 100%; margin: 0; line-height: normal; cursor: default;}
|
||||||
.layui-laydate .laydate-time-list p{position: relative; top: -4px; margin: 0; line-height: 29px;}
|
.layui-laydate .laydate-time-list p{position: relative; top: -4px; margin: 0; line-height: 29px;}
|
||||||
.layui-laydate .laydate-time-list ol{height: 181px; overflow: hidden;}
|
.layui-laydate .laydate-time-list ol{height: 181px; overflow: hidden;}
|
||||||
.layui-laydate .laydate-time-list>li:hover ol{overflow-y: auto;}
|
.layui-laydate .laydate-time-list>li:hover ol{overflow-y: auto;}
|
||||||
.layui-laydate .laydate-time-list ol li{width: 130%; padding-left: 33px; height: 30px; line-height: 30px; text-align: left; cursor: pointer;}
|
.layui-laydate .laydate-time-list ol li{width: 130%; padding-left: 33px; height: 30px; line-height: 30px; text-align: left; cursor: pointer;}
|
||||||
|
.layui-laydate .laydate-time-list-hide-1 ol li{padding-left: 53px;}
|
||||||
|
.layui-laydate .laydate-time-list-hide-2 ol li{padding-left: 117px;}
|
||||||
|
|
||||||
/* 提示 */
|
/* 提示 */
|
||||||
.layui-laydate-hint{position: absolute; top: 115px; left: 50%; width: 250px; margin-left: -125px; line-height: 20px; padding: 15px; text-align: center; font-size: 12px; color: #FF5722;}
|
.layui-laydate-hint{position: absolute; top: 115px; left: 50%; width: 250px; margin-left: -125px; line-height: 20px; padding: 15px; text-align: center; font-size: 12px; color: #FF5722;}
|
||||||
@@ -183,3 +185,5 @@ html #layuicss-laydate{display: none; position: absolute; width: 1989px;}
|
|||||||
.laydate-theme-fullpanel .laydate-time-show .laydate-set-ym span[lay-type="year"],
|
.laydate-theme-fullpanel .laydate-time-show .laydate-set-ym span[lay-type="year"],
|
||||||
.laydate-theme-fullpanel .laydate-time-show .laydate-set-ym span[lay-type="month"] {display: inline-block !important;}
|
.laydate-theme-fullpanel .laydate-time-show .laydate-set-ym span[lay-type="month"] {display: inline-block !important;}
|
||||||
.laydate-theme-fullpanel .laydate-btns-time{display: none;}
|
.laydate-theme-fullpanel .laydate-btns-time{display: none;}
|
||||||
|
.laydate-theme-fullpanel .laydate-time-list-hide-1 ol li{padding-left: 49px;}
|
||||||
|
.laydate-theme-fullpanel .laydate-time-list-hide-2 ol li{padding-left: 107px;}
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ html #layuicss-layer{display: none; position: absolute; width: 1989px;}
|
|||||||
|
|
||||||
/* common */
|
/* common */
|
||||||
.layui-layer-shade, .layui-layer{position:fixed; _position:absolute; pointer-events: auto;}
|
.layui-layer-shade, .layui-layer{position:fixed; _position:absolute; pointer-events: auto;}
|
||||||
.layui-layer-shade{top:0; left:0; width:100%; height:100%; _height:expression(document.body.offsetHeight+"px");}
|
.layui-layer-shade{opacity: 0; transition: opacity .35s cubic-bezier(0.34, 0.69, 0.1, 1); top:0; left:0; width:100%; height:100%; _height:expression(document.body.offsetHeight+"px");}
|
||||||
.layui-layer{-webkit-overflow-scrolling: touch;}
|
.layui-layer{-webkit-overflow-scrolling: touch;}
|
||||||
.layui-layer{top:150px; left: 0; margin:0; padding:0; background-color:#fff; -webkit-background-clip: content; border-radius: 2px; box-shadow: 1px 1px 50px rgba(0,0,0,.3);}
|
.layui-layer{top:150px; left: 0; margin:0; padding:0; background-color:#fff; -webkit-background-clip: content; border-radius: 2px; box-shadow: 1px 1px 50px rgba(0,0,0,.3);}
|
||||||
.layui-layer-close{position:absolute;}
|
.layui-layer-close{position:absolute;}
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
};
|
};
|
||||||
|
|
||||||
var Layui = function(){
|
var Layui = function(){
|
||||||
this.v = '2.9.6'; // Layui 版本号
|
this.v = '2.9.7'; // Layui 版本号
|
||||||
};
|
};
|
||||||
|
|
||||||
// 识别预先可能定义的指定全局对象
|
// 识别预先可能定义的指定全局对象
|
||||||
|
|||||||
@@ -377,14 +377,19 @@ layui.define(['jquery', 'laytpl', 'lay', 'util'], function(exports){
|
|||||||
Class.prototype.remove = function(){
|
Class.prototype.remove = function(){
|
||||||
var that = this;
|
var that = this;
|
||||||
var options = that.config;
|
var options = that.config;
|
||||||
var elemPrev = thisModule.prevElem;
|
var prevContentElem = thisModule.prevElem;
|
||||||
|
|
||||||
// 若存在已打开的面板元素,则移除
|
// 若存在已打开的面板元素,则移除
|
||||||
if(elemPrev){
|
if(prevContentElem){
|
||||||
elemPrev.data('prevElem') && (
|
var prevId = prevContentElem.attr('lay-id');
|
||||||
elemPrev.data('prevElem').data(MOD_INDEX +'_opened', false)
|
var prevTriggerElem = prevContentElem.data('prevElem');
|
||||||
);
|
var prevInstance = thisModule.getThis(prevId);
|
||||||
elemPrev.remove();
|
var prevOnClose = prevInstance.config.close;
|
||||||
|
|
||||||
|
prevTriggerElem && prevTriggerElem.data(MOD_INDEX +'_opened', false);
|
||||||
|
prevContentElem.remove();
|
||||||
|
delete thisModule.prevElem;
|
||||||
|
typeof prevOnClose === 'function' && prevOnClose.call(prevInstance.config, prevTriggerElem);
|
||||||
}
|
}
|
||||||
lay('.' + STR_ELEM_SHADE).remove();
|
lay('.' + STR_ELEM_SHADE).remove();
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -16,10 +16,12 @@ layui.define('jquery', function(exports){
|
|||||||
options = options || {};
|
options = options || {};
|
||||||
|
|
||||||
var elem = $(options.elem); if(!elem[0]) return;
|
var elem = $(options.elem); if(!elem[0]) return;
|
||||||
var scrollElem = $(options.scrollElem || document); //滚动条所在元素
|
var scrollElem = $(options.scrollElem || document); // 滚动条所在元素
|
||||||
var mb = options.mb || 50; //与底部的临界距离
|
var threshold = 'mb' in options ? options.mb : 50; // 临界距离
|
||||||
var isAuto = 'isAuto' in options ? options.isAuto : true; //是否自动滚动加载
|
var isAuto = 'isAuto' in options ? options.isAuto : true; // 否自动滚动加载
|
||||||
var end = options.end || '没有更多了'; //“末页”显示文案
|
var end = options.end || '没有更多了'; // “末页”显示文案
|
||||||
|
var direction = options.direction || 'bottom';
|
||||||
|
var isTop = direction === 'top';
|
||||||
|
|
||||||
//滚动条所在元素是否为document
|
//滚动条所在元素是否为document
|
||||||
var notDocument = options.scrollElem && options.scrollElem !== document;
|
var notDocument = options.scrollElem && options.scrollElem !== document;
|
||||||
@@ -29,18 +31,30 @@ layui.define('jquery', function(exports){
|
|||||||
,more = $('<div class="layui-flow-more"><a href="javascript:;">'+ ELEM_TEXT +'</a></div>');
|
,more = $('<div class="layui-flow-more"><a href="javascript:;">'+ ELEM_TEXT +'</a></div>');
|
||||||
|
|
||||||
if(!elem.find('.layui-flow-more')[0]){
|
if(!elem.find('.layui-flow-more')[0]){
|
||||||
elem.append(more);
|
elem[isTop ? 'prepend' : 'append'](more);
|
||||||
}
|
}
|
||||||
|
|
||||||
//加载下一个元素
|
//加载下一个元素
|
||||||
var next = function(html, over){
|
var next = function(html, over){
|
||||||
|
var scrollHeightStart = notDocument ? scrollElem.prop('scrollHeight') : document.documentElement.scrollHeight;
|
||||||
|
var scrollTopStart = scrollElem.scrollTop();
|
||||||
html = $(html);
|
html = $(html);
|
||||||
more.before(html);
|
more[isTop ? 'after' : 'before'](html);
|
||||||
over = over == 0 ? true : null;
|
over = over == 0 ? true : null;
|
||||||
over ? more.html(end) : more.find('a').html(ELEM_TEXT);
|
over ? more.html(end) : more.find('a').html(ELEM_TEXT);
|
||||||
isOver = over;
|
isOver = over;
|
||||||
lock = null;
|
lock = null;
|
||||||
lazyimg && lazyimg();
|
lazyimg && lazyimg();
|
||||||
|
if(isTop){
|
||||||
|
var scrollHeightEnd = notDocument ? scrollElem.prop('scrollHeight') : document.documentElement.scrollHeight;
|
||||||
|
if(page === 1){
|
||||||
|
// 首次渲染后滑动到底部
|
||||||
|
scrollElem.scrollTop(scrollHeightEnd);
|
||||||
|
}else if(page > 1){
|
||||||
|
var nextElementHeight = scrollHeightEnd - scrollHeightStart;
|
||||||
|
scrollElem.scrollTop(scrollTopStart + nextElementHeight);
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
//触发请求
|
//触发请求
|
||||||
@@ -64,6 +78,7 @@ layui.define('jquery', function(exports){
|
|||||||
lazyimg = that.lazyimg({
|
lazyimg = that.lazyimg({
|
||||||
elem: options.elem + ' img'
|
elem: options.elem + ' img'
|
||||||
,scrollElem: options.scrollElem
|
,scrollElem: options.scrollElem
|
||||||
|
,direction: options.direction
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -85,7 +100,7 @@ layui.define('jquery', function(exports){
|
|||||||
: document.documentElement.scrollHeight;
|
: document.documentElement.scrollHeight;
|
||||||
|
|
||||||
//临界点
|
//临界点
|
||||||
if(scrollHeight - top - height <= mb){
|
if(!isTop ? scrollHeight - top - height <= threshold : top <= threshold){
|
||||||
lock || done();
|
lock || done();
|
||||||
}
|
}
|
||||||
}, 100);
|
}, 100);
|
||||||
@@ -101,6 +116,8 @@ layui.define('jquery', function(exports){
|
|||||||
|
|
||||||
var scrollElem = $(options.scrollElem || document); //滚动条所在元素
|
var scrollElem = $(options.scrollElem || document); //滚动条所在元素
|
||||||
var elem = options.elem || 'img';
|
var elem = options.elem || 'img';
|
||||||
|
var direction = options.direction || 'bottom';
|
||||||
|
var isTop = direction === 'top';
|
||||||
|
|
||||||
//滚动条所在元素是否为document
|
//滚动条所在元素是否为document
|
||||||
var notDocument = options.scrollElem && options.scrollElem !== document;
|
var notDocument = options.scrollElem && options.scrollElem !== document;
|
||||||
@@ -113,7 +130,7 @@ layui.define('jquery', function(exports){
|
|||||||
}() : item.offset().top;
|
}() : item.offset().top;
|
||||||
|
|
||||||
/* 始终只加载在当前屏范围内的图片 */
|
/* 始终只加载在当前屏范围内的图片 */
|
||||||
if(elemTop >= start && elemTop <= end){
|
if((isTop ? elemTop + item.height() : elemTop) >= start && elemTop <= end){
|
||||||
if(item.attr('lay-src')){
|
if(item.attr('lay-src')){
|
||||||
var src = item.attr('lay-src');
|
var src = item.attr('lay-src');
|
||||||
layui.img(src, function(){
|
layui.img(src, function(){
|
||||||
|
|||||||
@@ -375,6 +375,7 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
|||||||
var CLASS = 'layui-form-select';
|
var CLASS = 'layui-form-select';
|
||||||
var TITLE = 'layui-select-title';
|
var TITLE = 'layui-select-title';
|
||||||
var NONE = 'layui-select-none';
|
var NONE = 'layui-select-none';
|
||||||
|
var CREATE_OPTION = 'layui-select-create-option';
|
||||||
var initValue = '';
|
var initValue = '';
|
||||||
var thatInput;
|
var thatInput;
|
||||||
var selects = elem || elemForm.find('select');
|
var selects = elem || elemForm.find('select');
|
||||||
@@ -382,14 +383,18 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
|||||||
// 隐藏 select
|
// 隐藏 select
|
||||||
var hide = function(e, clear){
|
var hide = function(e, clear){
|
||||||
if(!$(e.target).parent().hasClass(TITLE) || clear){
|
if(!$(e.target).parent().hasClass(TITLE) || clear){
|
||||||
$('.'+CLASS).removeClass(CLASS+'ed ' + CLASS+'up');
|
var elem = $('.' + CLASS);
|
||||||
|
elem.removeClass(CLASS+'ed ' + CLASS+'up');
|
||||||
|
if(elem.hasClass('layui-select-creatable')){
|
||||||
|
elem.children('dl').children('.' + CREATE_OPTION).remove();
|
||||||
|
}
|
||||||
thatInput && initValue && thatInput.val(initValue);
|
thatInput && initValue && thatInput.val(initValue);
|
||||||
}
|
}
|
||||||
thatInput = null;
|
thatInput = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
// 各种事件
|
// 各种事件
|
||||||
var events = function(reElem, disabled, isSearch){
|
var events = function(reElem, disabled, isSearch, isCreatable){
|
||||||
var select = $(this);
|
var select = $(this);
|
||||||
var title = reElem.find('.' + TITLE);
|
var title = reElem.find('.' + TITLE);
|
||||||
var input = title.find('input');
|
var input = title.find('input');
|
||||||
@@ -408,6 +413,7 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
|||||||
var showDown = function(){
|
var showDown = function(){
|
||||||
var top = reElem.offset().top + reElem.outerHeight() + 5 - $win.scrollTop();
|
var top = reElem.offset().top + reElem.outerHeight() + 5 - $win.scrollTop();
|
||||||
var dlHeight = dl.outerHeight();
|
var dlHeight = dl.outerHeight();
|
||||||
|
var dds = dl.children('dd');
|
||||||
|
|
||||||
index = select[0].selectedIndex; // 获取最新的 selectedIndex
|
index = select[0].selectedIndex; // 获取最新的 selectedIndex
|
||||||
reElem.addClass(CLASS+'ed');
|
reElem.addClass(CLASS+'ed');
|
||||||
@@ -432,6 +438,7 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
|||||||
reElem.removeClass(CLASS+'ed ' + CLASS+'up');
|
reElem.removeClass(CLASS+'ed ' + CLASS+'up');
|
||||||
input.blur();
|
input.blur();
|
||||||
nearElem = null;
|
nearElem = null;
|
||||||
|
isCreatable && dl.children('.' + CREATE_OPTION).remove();
|
||||||
|
|
||||||
if(choose) return;
|
if(choose) return;
|
||||||
|
|
||||||
@@ -569,10 +576,18 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
|||||||
// 检测值是否不属于 select 项
|
// 检测值是否不属于 select 项
|
||||||
var notOption = function(value, callback, origin){
|
var notOption = function(value, callback, origin){
|
||||||
var num = 0;
|
var num = 0;
|
||||||
|
var dds = dl.children('dd');
|
||||||
|
var hasEquals = false;
|
||||||
|
var rawValue = value;
|
||||||
layui.each(dds, function(){
|
layui.each(dds, function(){
|
||||||
var othis = $(this);
|
var othis = $(this);
|
||||||
var text = othis.text();
|
var text = othis.text();
|
||||||
|
|
||||||
|
// 需要区分大小写
|
||||||
|
if(isCreatable && text === rawValue){
|
||||||
|
hasEquals = true;
|
||||||
|
}
|
||||||
|
|
||||||
// 是否区分大小写
|
// 是否区分大小写
|
||||||
if(laySearch !== 'cs'){
|
if(laySearch !== 'cs'){
|
||||||
text = text.toLowerCase();
|
text = text.toLowerCase();
|
||||||
@@ -583,17 +598,18 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
|||||||
var not = text.indexOf(value) === -1;
|
var not = text.indexOf(value) === -1;
|
||||||
|
|
||||||
if(value === '' || (origin === 'blur') ? value !== text : not) num++;
|
if(value === '' || (origin === 'blur') ? value !== text : not) num++;
|
||||||
origin === 'keyup' && othis[not ? 'addClass' : 'removeClass'](HIDE);
|
origin === 'keyup' && othis[(not && (isCreatable ? !othis.hasClass(CREATE_OPTION) : true)) ? 'addClass' : 'removeClass'](HIDE);
|
||||||
});
|
});
|
||||||
// 处理 select 分组元素
|
// 处理 select 分组元素
|
||||||
origin === 'keyup' && layui.each(dts, function(){
|
origin === 'keyup' && layui.each(dts, function(){
|
||||||
var othis = $(this)
|
var othis = $(this);
|
||||||
,thisDds = othis.nextUntil('dt').filter('dd') // 当前分组下的dd元素
|
var thisDds = othis.nextUntil('dt').filter('dd'); // 当前分组下的dd元素
|
||||||
,allHide = thisDds.length == thisDds.filter('.' + HIDE).length; // 当前分组下所有dd元素都隐藏了
|
if(isCreatable) thisDds = thisDds.not('.' + CREATE_OPTION);
|
||||||
|
var allHide = thisDds.length == thisDds.filter('.' + HIDE).length; // 当前分组下所有dd元素都隐藏了
|
||||||
othis[allHide ? 'addClass' : 'removeClass'](HIDE);
|
othis[allHide ? 'addClass' : 'removeClass'](HIDE);
|
||||||
});
|
});
|
||||||
var none = num === dds.length;
|
var none = num === dds.length;
|
||||||
return callback(none), none;
|
return callback(none, hasEquals), none;
|
||||||
};
|
};
|
||||||
|
|
||||||
// 搜索匹配
|
// 搜索匹配
|
||||||
@@ -607,11 +623,27 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
notOption(value, function(none){
|
notOption(value, function(none, hasEquals){
|
||||||
if(none){
|
if(isCreatable){
|
||||||
dl.find('.'+NONE)[0] || dl.append('<p class="'+ NONE +'">无匹配项</p>');
|
if(hasEquals){
|
||||||
} else {
|
dl.children('.' + CREATE_OPTION).remove();
|
||||||
dl.find('.'+NONE).remove();
|
}else{
|
||||||
|
// 和初始渲染保持行为一致
|
||||||
|
var textVal = $('<div>' + value +'</div>').text();
|
||||||
|
var createOptionElem = dl.children('.' + CREATE_OPTION);
|
||||||
|
if(createOptionElem[0]){
|
||||||
|
createOptionElem.attr('lay-value', value);
|
||||||
|
createOptionElem.text(textVal);
|
||||||
|
}else{
|
||||||
|
dl.append('<dd class="' + CREATE_OPTION + '" lay-value="'+ value +'">' + textVal + '</dd>');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if(none){
|
||||||
|
dl.find('.'+NONE)[0] || dl.append('<p class="'+ NONE +'">无匹配项</p>');
|
||||||
|
} else {
|
||||||
|
dl.find('.'+NONE).remove();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}, 'keyup');
|
}, 'keyup');
|
||||||
|
|
||||||
@@ -622,6 +654,7 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
|||||||
dl.find('.'+ THIS).removeClass(THIS);
|
dl.find('.'+ THIS).removeClass(THIS);
|
||||||
(select[0].options[0] || {}).value || dl.children('dd:eq(0)').addClass(THIS);
|
(select[0].options[0] || {}).value || dl.children('dd:eq(0)').addClass(THIS);
|
||||||
dl.find('.'+ NONE).remove();
|
dl.find('.'+ NONE).remove();
|
||||||
|
isCreatable && dl.children('.' + CREATE_OPTION).remove();
|
||||||
}
|
}
|
||||||
|
|
||||||
followScroll(); // 定位滚动条
|
followScroll(); // 定位滚动条
|
||||||
@@ -653,7 +686,7 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
|||||||
}
|
}
|
||||||
|
|
||||||
// 选择
|
// 选择
|
||||||
dds.on('click', function(){
|
dl.on('click', 'dd', function(){
|
||||||
var othis = $(this), value = othis.attr('lay-value');
|
var othis = $(this), value = othis.attr('lay-value');
|
||||||
var filter = select.attr('lay-filter'); // 获取过滤器
|
var filter = select.attr('lay-filter'); // 获取过滤器
|
||||||
|
|
||||||
@@ -666,6 +699,11 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
|||||||
othis.addClass(THIS);
|
othis.addClass(THIS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(isCreatable && othis.hasClass(CREATE_OPTION)){
|
||||||
|
othis.removeClass(CREATE_OPTION);
|
||||||
|
select.append('<option value="' + value + '">' + value + '</option>');
|
||||||
|
}
|
||||||
|
|
||||||
othis.siblings().removeClass(THIS);
|
othis.siblings().removeClass(THIS);
|
||||||
select.val(value).removeClass('layui-form-danger');
|
select.val(value).removeClass('layui-form-danger');
|
||||||
|
|
||||||
@@ -698,13 +736,15 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
|||||||
if(typeof othis.attr('lay-ignore') === 'string') return othis.show();
|
if(typeof othis.attr('lay-ignore') === 'string') return othis.show();
|
||||||
|
|
||||||
var isSearch = typeof othis.attr('lay-search') === 'string'
|
var isSearch = typeof othis.attr('lay-search') === 'string'
|
||||||
|
,isCreatable = typeof othis.attr('lay-creatable') === 'string' && isSearch
|
||||||
,placeholder = optionsFirst ? (
|
,placeholder = optionsFirst ? (
|
||||||
optionsFirst.value ? TIPS : (optionsFirst.innerHTML || TIPS)
|
optionsFirst.value ? TIPS : (optionsFirst.innerHTML || TIPS)
|
||||||
) : TIPS;
|
) : TIPS;
|
||||||
|
|
||||||
// 替代元素
|
// 替代元素
|
||||||
var reElem = $(['<div class="'+ (isSearch ? '' : 'layui-unselect ') + CLASS
|
var reElem = $(['<div class="'+ (isSearch ? '' : 'layui-unselect ') + CLASS
|
||||||
,(disabled ? ' layui-select-disabled' : '') +'">'
|
,(disabled ? ' layui-select-disabled' : '')
|
||||||
|
,(isCreatable ? ' layui-select-creatable' : '') + '">'
|
||||||
,'<div class="'+ TITLE +'">'
|
,'<div class="'+ TITLE +'">'
|
||||||
,('<input type="text" placeholder="'+ util.escape($.trim(placeholder)) +'" '
|
,('<input type="text" placeholder="'+ util.escape($.trim(placeholder)) +'" '
|
||||||
+('value="'+ util.escape($.trim(value ? selected.html() : '')) +'"') // 默认值
|
+('value="'+ util.escape($.trim(value ? selected.html() : '')) +'"') // 默认值
|
||||||
@@ -734,7 +774,7 @@ layui.define(['lay', 'layer', 'util'], function(exports){
|
|||||||
|
|
||||||
hasRender[0] && hasRender.remove(); // 如果已经渲染,则Rerender
|
hasRender[0] && hasRender.remove(); // 如果已经渲染,则Rerender
|
||||||
othis.after(reElem);
|
othis.after(reElem);
|
||||||
events.call(this, reElem, disabled, isSearch);
|
events.call(this, reElem, disabled, isSearch, isCreatable);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1410,6 +1410,22 @@
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
var setTimeListVisibility = function(){
|
||||||
|
var showHour = options.format.indexOf('H') !== -1;
|
||||||
|
var showMinute = options.format.indexOf('m') !== -1;
|
||||||
|
var showSecond = options.format.indexOf('s') !== -1;
|
||||||
|
var liElem = ul.children;
|
||||||
|
var hideCount = 0;
|
||||||
|
|
||||||
|
lay.each([showHour, showMinute, showSecond], function(i, isShow){
|
||||||
|
if(!isShow){
|
||||||
|
liElem[i].className += ' layui-hide';
|
||||||
|
hideCount++;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
ul.className += (' laydate-time-list-hide-' + hideCount);
|
||||||
|
}
|
||||||
|
|
||||||
//初始化时间对象
|
//初始化时间对象
|
||||||
if(options.range){
|
if(options.range){
|
||||||
if(!that[startEnd]){
|
if(!that[startEnd]){
|
||||||
@@ -1429,6 +1445,7 @@
|
|||||||
ul.appendChild(li);
|
ul.appendChild(li);
|
||||||
});
|
});
|
||||||
setTimeStatus();
|
setTimeStatus();
|
||||||
|
setTimeListVisibility();
|
||||||
}
|
}
|
||||||
|
|
||||||
//插入容器
|
//插入容器
|
||||||
|
|||||||
@@ -258,6 +258,9 @@ doms.anim = {
|
|||||||
doms.SHADE = 'layui-layer-shade';
|
doms.SHADE = 'layui-layer-shade';
|
||||||
doms.MOVE = 'layui-layer-move';
|
doms.MOVE = 'layui-layer-move';
|
||||||
|
|
||||||
|
var SHADE_KEY = 'LAYUI-LAYER-SHADE-KEY';
|
||||||
|
var RECORD_HEIGHT_KEY = 'LAYUI_LAYER_CONTENT_RECORD_HEIGHT';
|
||||||
|
|
||||||
// 默认配置
|
// 默认配置
|
||||||
Class.pt.config = {
|
Class.pt.config = {
|
||||||
type: 0,
|
type: 0,
|
||||||
@@ -397,7 +400,22 @@ Class.pt.creat = function(){
|
|||||||
var content = config.content;
|
var content = config.content;
|
||||||
var conType = typeof content === 'object';
|
var conType = typeof content === 'object';
|
||||||
var body = $('body');
|
var body = $('body');
|
||||||
|
|
||||||
|
var setAnim = function(layero){
|
||||||
|
// anim 兼容旧版 shift
|
||||||
|
if(config.shift){
|
||||||
|
config.anim = config.shift;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 为兼容 jQuery3.0 的 css 动画影响元素尺寸计算
|
||||||
|
if(doms.anim[config.anim]){
|
||||||
|
var animClass = 'layer-anim '+ doms.anim[config.anim];
|
||||||
|
layero.addClass(animClass).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){
|
||||||
|
$(this).removeClass(animClass);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// 若 id 对应的弹层已经存在,则不重新创建
|
// 若 id 对应的弹层已经存在,则不重新创建
|
||||||
if(config.id && $('.'+ doms[0]).find('#'+ config.id)[0]){
|
if(config.id && $('.'+ doms[0]).find('#'+ config.id)[0]){
|
||||||
return (function(){
|
return (function(){
|
||||||
@@ -413,6 +431,10 @@ Class.pt.creat = function(){
|
|||||||
} else if(options.hideOnClose){
|
} else if(options.hideOnClose){
|
||||||
elemShade.show();
|
elemShade.show();
|
||||||
layero.show();
|
layero.show();
|
||||||
|
setAnim(layero);
|
||||||
|
setTimeout(function(){
|
||||||
|
elemShade.css({opacity: elemShade.data(SHADE_KEY)});
|
||||||
|
}, 10);
|
||||||
}
|
}
|
||||||
})();
|
})();
|
||||||
}
|
}
|
||||||
@@ -427,11 +449,6 @@ Class.pt.creat = function(){
|
|||||||
config.area = config.area === 'auto' ? ['', ''] : [config.area, ''];
|
config.area = config.area === 'auto' ? ['', ''] : [config.area, ''];
|
||||||
}
|
}
|
||||||
|
|
||||||
// anim 兼容旧版 shift
|
|
||||||
if(config.shift){
|
|
||||||
config.anim = config.shift;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(layer.ie == 6){
|
if(layer.ie == 6){
|
||||||
config.fixed = false;
|
config.fixed = false;
|
||||||
}
|
}
|
||||||
@@ -486,7 +503,9 @@ Class.pt.creat = function(){
|
|||||||
that.shadeo.css({
|
that.shadeo.css({
|
||||||
'background-color': config.shade[1] || '#000'
|
'background-color': config.shade[1] || '#000'
|
||||||
,'opacity': config.shade[0] || config.shade
|
,'opacity': config.shade[0] || config.shade
|
||||||
|
,'transition': config.shade[2] || ''
|
||||||
});
|
});
|
||||||
|
that.shadeo.data(SHADE_KEY, config.shade[0] || config.shade);
|
||||||
|
|
||||||
config.type == 2 && layer.ie == 6 && that.layero.find('iframe').attr('src', content[0]);
|
config.type == 2 && layer.ie == 6 && that.layero.find('iframe').attr('src', content[0]);
|
||||||
|
|
||||||
@@ -518,14 +537,7 @@ Class.pt.creat = function(){
|
|||||||
layer.close(that.index);
|
layer.close(that.index);
|
||||||
}, config.time);
|
}, config.time);
|
||||||
that.move().callback();
|
that.move().callback();
|
||||||
|
setAnim(that.layero);
|
||||||
// 为兼容 jQuery3.0 的 css 动画影响元素尺寸计算
|
|
||||||
if(doms.anim[config.anim]){
|
|
||||||
var animClass = 'layer-anim '+ doms.anim[config.anim];
|
|
||||||
that.layero.addClass(animClass).one('webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend', function(){
|
|
||||||
$(this).removeClass(animClass);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
// 记录配置信息
|
// 记录配置信息
|
||||||
that.layero.data('config', config);
|
that.layero.data('config', config);
|
||||||
@@ -957,14 +969,18 @@ Class.pt.openLayer = function(){
|
|||||||
// 记录宽高坐标,用于还原
|
// 记录宽高坐标,用于还原
|
||||||
ready.record = function(layero){
|
ready.record = function(layero){
|
||||||
if(!layero[0]) return window.console && console.error('index error');
|
if(!layero[0]) return window.console && console.error('index error');
|
||||||
|
var type = layero.attr('type');
|
||||||
|
var contentElem = layero.find('.layui-layer-content');
|
||||||
|
var contentRecordHeightElem = type === ready.type[2] ? contentElem.children('iframe') : contentElem;
|
||||||
var area = [
|
var area = [
|
||||||
layero[0].style.width || layero.width(),
|
layero[0].style.width || ready.getStyle(layero[0], 'width'),
|
||||||
layero[0].style.height || layero.height(),
|
layero[0].style.height || ready.getStyle(layero[0], 'height'),
|
||||||
layero.position().top,
|
layero.position().top,
|
||||||
layero.position().left + parseFloat(layero.css('margin-left'))
|
layero.position().left + parseFloat(layero.css('margin-left'))
|
||||||
];
|
];
|
||||||
layero.find('.layui-layer-max').addClass('layui-layer-maxmin');
|
layero.find('.layui-layer-max').addClass('layui-layer-maxmin');
|
||||||
layero.attr({area: area});
|
layero.attr({area: area});
|
||||||
|
contentElem.data(RECORD_HEIGHT_KEY, ready.getStyle(contentRecordHeightElem[0], 'height'));
|
||||||
};
|
};
|
||||||
|
|
||||||
// 设置页面滚动条
|
// 设置页面滚动条
|
||||||
@@ -1016,7 +1032,7 @@ layer.iframeSrc = function(index, url){
|
|||||||
// 设定层的样式
|
// 设定层的样式
|
||||||
layer.style = function(index, options, limit){
|
layer.style = function(index, options, limit){
|
||||||
var layero = $('#'+ doms[0] + index);
|
var layero = $('#'+ doms[0] + index);
|
||||||
var contElem = layero.find('.layui-layer-content');
|
var contentElem = layero.find('.layui-layer-content');
|
||||||
var type = layero.attr('type');
|
var type = layero.attr('type');
|
||||||
var titHeight = layero.find(doms[1]).outerHeight() || 0;
|
var titHeight = layero.find(doms[1]).outerHeight() || 0;
|
||||||
var btnHeight = layero.find('.'+doms[6]).outerHeight() || 0;
|
var btnHeight = layero.find('.'+doms[6]).outerHeight() || 0;
|
||||||
@@ -1044,10 +1060,10 @@ layer.style = function(index, options, limit){
|
|||||||
height: (typeof options.height === 'number' ? options.height : layero.height()) - titHeight - btnHeight
|
height: (typeof options.height === 'number' ? options.height : layero.height()) - titHeight - btnHeight
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
contElem.css({
|
contentElem.css({
|
||||||
height: (typeof options.height === 'number' ? options.height : layero.height()) - titHeight - btnHeight
|
height: (typeof options.height === 'number' ? options.height : layero.height()) - titHeight - btnHeight
|
||||||
- parseFloat(contElem.css('padding-top'))
|
- parseFloat(contentElem.css('padding-top'))
|
||||||
- parseFloat(contElem.css('padding-bottom'))
|
- parseFloat(contentElem.css('padding-bottom'))
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -1118,9 +1134,11 @@ layer.min = function(index, options){
|
|||||||
layer.restore = function(index){
|
layer.restore = function(index){
|
||||||
var layero = $('#'+ doms[0] + index);
|
var layero = $('#'+ doms[0] + index);
|
||||||
var shadeo = $('#'+ doms.SHADE + index);
|
var shadeo = $('#'+ doms.SHADE + index);
|
||||||
|
var contentElem = layero.find('.layui-layer-content');
|
||||||
var area = layero.attr('area').split(',');
|
var area = layero.attr('area').split(',');
|
||||||
var type = layero.attr('type');
|
var type = layero.attr('type');
|
||||||
var options = layero.data('config') || {};
|
var options = layero.data('config') || {};
|
||||||
|
var contentRecordHeight = contentElem.data(RECORD_HEIGHT_KEY);
|
||||||
|
|
||||||
layero.removeData('maxminStatus'); // 移除最大最小状态
|
layero.removeData('maxminStatus'); // 移除最大最小状态
|
||||||
|
|
||||||
@@ -1140,6 +1158,13 @@ layer.restore = function(index){
|
|||||||
|
|
||||||
// 恢复页面滚动条弹层打开时的状态
|
// 恢复页面滚动条弹层打开时的状态
|
||||||
options.scrollbar ? ready.restScrollbar(index) : ready.setScrollbar(index);
|
options.scrollbar ? ready.restScrollbar(index) : ready.setScrollbar(index);
|
||||||
|
|
||||||
|
// #1604
|
||||||
|
if(contentRecordHeight !== undefined){
|
||||||
|
contentElem.removeData(RECORD_HEIGHT_KEY);
|
||||||
|
var contentRecordHeightElem = type === ready.type[2] ? contentElem.children('iframe') : contentElem;
|
||||||
|
contentRecordHeightElem.css({height: contentRecordHeight});
|
||||||
|
}
|
||||||
|
|
||||||
// 恢复遮罩
|
// 恢复遮罩
|
||||||
shadeo.show();
|
shadeo.show();
|
||||||
@@ -1245,11 +1270,15 @@ layer.close = function(index, callback){
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
// 移除遮罩
|
// 移除遮罩
|
||||||
var removeShade = (function fn(){
|
var shadeo = $('#'+ doms.SHADE + index);
|
||||||
$('#'+ doms.SHADE + index)[
|
if((layer.ie && layer.ie < 10) || !options.isOutAnim){
|
||||||
hideOnClose ? 'hide' : 'remove'
|
shadeo[hideOnClose ? 'hide' : 'remove']();
|
||||||
]();
|
}else{
|
||||||
})();
|
shadeo.css({opacity: 0});
|
||||||
|
setTimeout(function(){
|
||||||
|
shadeo[hideOnClose ? 'hide' : 'remove']();
|
||||||
|
}, 350);
|
||||||
|
}
|
||||||
|
|
||||||
// 是否允许关闭动画
|
// 是否允许关闭动画
|
||||||
if(options.isOutAnim){
|
if(options.isOutAnim){
|
||||||
@@ -1292,8 +1321,18 @@ layer.closeAll = function(type, callback){
|
|||||||
|
|
||||||
// 根据弹层类型关闭最近打开的层
|
// 根据弹层类型关闭最近打开的层
|
||||||
layer.closeLast = function(type, callback){
|
layer.closeLast = function(type, callback){
|
||||||
type = type || 'page';
|
var layerIndexList = [];
|
||||||
layer.close($('.layui-layer-'+ type +':last').attr("times"), callback);
|
var isArrayType = $.isArray(type);
|
||||||
|
$(typeof type === 'string' ? '.layui-layer-' + type : '.layui-layer').each(function(i, el){
|
||||||
|
var layero = $(el);
|
||||||
|
var shouldSkip = (isArrayType && type.indexOf(layero.attr('type')) === -1) || layero.css('display') === 'none';
|
||||||
|
if(shouldSkip) return true;
|
||||||
|
layerIndexList.push(Number(layero.attr('times')));
|
||||||
|
});
|
||||||
|
if(layerIndexList.length > 0){
|
||||||
|
var layerIndexMax = Math.max.apply(null, layerIndexList);
|
||||||
|
layer.close(layerIndexMax, callback);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -1646,7 +1685,7 @@ layer.photos = function(options, loop, key){
|
|||||||
}
|
}
|
||||||
|
|
||||||
dict.loadi = layer.load(1, {
|
dict.loadi = layer.load(1, {
|
||||||
shade: 'shade' in options ? false : 0.9,
|
shade: 'shade' in options ? false : [0.9, undefined, 'unset'],
|
||||||
scrollbar: false
|
scrollbar: false
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1681,7 +1720,7 @@ layer.photos = function(options, loop, key){
|
|||||||
return [imgarea[0]+'px', imgarea[1]+'px'];
|
return [imgarea[0]+'px', imgarea[1]+'px'];
|
||||||
}(),
|
}(),
|
||||||
title: false,
|
title: false,
|
||||||
shade: 0.9,
|
shade: [0.9, undefined, 'unset'],
|
||||||
shadeClose: true,
|
shadeClose: true,
|
||||||
closeBtn: false,
|
closeBtn: false,
|
||||||
move: '.layer-layer-photos-main img',
|
move: '.layer-layer-photos-main img',
|
||||||
|
|||||||
Reference in New Issue
Block a user