mirror of https://github.com/layui/layui
commit
c3a0678403
|
@ -1,14 +1,14 @@
|
||||||
# Layui 《免责声明》
|
# Layui 《免责声明》
|
||||||
|
|
||||||
> 任何用户在使用由 layui 技术开发团队(以下简称「本团队」)研发的系列开源界面框架(以下简称「layui 开源界面框架」)前,请您仔细阅读并透彻理解本声明。您可以选择不使用 layui 开源界面框架,若您一旦使用 layui 开源界面框架,您的使用行为即被视为对本声明全部内容的认可和接受。
|
> 任何用户在使用由 layui 技术开发团队(以下简称「本团队」)研发的系列开源界面组件库(以下简称「layui 开源界面组件库」)前,请您仔细阅读并透彻理解本声明。您可以选择不使用 layui 开源界面组件库,若您一旦使用 layui 开源界面组件库,您的使用行为即被视为对本声明全部内容的认可和接受。
|
||||||
|
|
||||||
1. layui 开源界面框架是一款开源免费的 Web UI 纯静态框架 ,主要用于更高效地开发网页界面。且 layui 开源界面框架并不具备「互联网接入、网络数据存储、通讯传输以及窃取用户隐私」中的任何一项与用户数据等信息相关的动态功能,layui 开源界面框架仅是 UI 组件或素材类的本地资源。
|
1. layui 开源界面组件库是一款开源免费的 Web UI 纯静态框架 ,主要用于更高效地开发网页界面。且 layui 开源界面组件库并不具备「互联网接入、网络数据存储、通讯传输以及窃取用户隐私」中的任何一项与用户数据等信息相关的动态功能,layui 开源界面组件库仅是 UI 组件或素材类的本地资源。
|
||||||
2. layui 开源界面框架仅属于 Web 前端的 UI 组件库,并不涉及任何后台程序代码;其尊重并保护所有用户的个人隐私权,不窃取任何用户计算机中的信息。更不具备用户数据存储等网络传输功能。
|
2. layui 开源界面组件库仅属于 Web 前端的 UI 组件库,并不涉及任何后台程序代码;其尊重并保护所有用户的个人隐私权,不窃取任何用户计算机中的信息。更不具备用户数据存储等网络传输功能。
|
||||||
3. 您承诺秉着合法、合理的原则使用 layui 开源界面框架,不利用 layui 开源界面框架进行任何违法、侵害他人合法利益等恶意的行为,亦不将 layui 开源界面框架运用于任何违反我国法律法规的 Web 平台。
|
3. 您承诺秉着合法、合理的原则使用 layui 开源界面组件库,不利用 layui 开源界面组件库进行任何违法、侵害他人合法利益等恶意的行为,亦不将 layui 开源界面组件库运用于任何违反我国法律法规的 Web 平台。
|
||||||
4. 任何单位或个人因下载使用 layui 开源界面框架而产生的任何意外、疏忽、合约毁坏、诽谤、版权或知识产权侵犯及其造成的损失 (包括但不限于直接、间接、附带或衍生的损失等),本团队不承担任何法律责任。
|
4. 任何单位或个人因下载使用 layui 开源界面组件库而产生的任何意外、疏忽、合约毁坏、诽谤、版权或知识产权侵犯及其造成的损失 (包括但不限于直接、间接、附带或衍生的损失等),本团队不承担任何法律责任。
|
||||||
5. 用户明确并同意本声明条款列举的全部内容,对使用 layui 开源界面框架可能存在的风险和相关后果将完全由用户自行承担,本团队不承担任何法律责任。
|
5. 用户明确并同意本声明条款列举的全部内容,对使用 layui 开源界面组件库可能存在的风险和相关后果将完全由用户自行承担,本团队不承担任何法律责任。
|
||||||
6. 任何单位或个人在阅读本免责声明后,应在《MIT 开源许可证》所允许的范围内进行合法的发布、传播和使用 layui 开源界面框架等行为,若违反本免责声明条款或违反法律法规所造成的法律责任(包括但不限于民事赔偿和刑事责任),由违约者自行承担。
|
6. 任何单位或个人在阅读本免责声明后,应在《MIT 开源许可证》所允许的范围内进行合法的发布、传播和使用 layui 开源界面组件库等行为,若违反本免责声明条款或违反法律法规所造成的法律责任(包括但不限于民事赔偿和刑事责任),由违约者自行承担。
|
||||||
7. 本团队对 layui 开源界面框架拥有知识产权(包括但不限于商标权、专利权、著作权、商业秘密等),上述产品均受到相关法律法规的保护。
|
7. 本团队对 layui 开源界面组件库拥有知识产权(包括但不限于商标权、专利权、著作权、商业秘密等),上述产品均受到相关法律法规的保护。
|
||||||
8. 任何单位或个人不得在未经本团队书面授权的情况下对 layui 开源界面框架本身申请相关的知识产权。
|
8. 任何单位或个人不得在未经本团队书面授权的情况下对 layui 开源界面组件库本身申请相关的知识产权。
|
||||||
9. 如果本声明的任何部分被认为无效或不可执行,则该部分将被解释为反映本团队的初衷,其余部分仍具有完全效力。不可执行的部分声明,并不构成我们放弃执行该声明的权利。
|
9. 如果本声明的任何部分被认为无效或不可执行,则该部分将被解释为反映本团队的初衷,其余部分仍具有完全效力。不可执行的部分声明,并不构成我们放弃执行该声明的权利。
|
||||||
10. 本团队有权随时对本声明条款及附件内容进行单方面的变更,并以消息推送、网页公告等方式予以公布,公布后立即自动生效,无需另行单独通知;若您在本声明内容公告变更后继续使用的,表示您已充分阅读、理解并接受修改后的声明内容。
|
10. 本团队有权随时对本声明条款及附件内容进行单方面的变更,并以消息推送、网页公告等方式予以公布,公布后立即自动生效,无需另行单独通知;若您在本声明内容公告变更后继续使用的,表示您已充分阅读、理解并接受修改后的声明内容。
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,129 +1,132 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html>
|
<html>
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<meta charset="utf-8">
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
||||||
<title>代码修饰器 - layui</title>
|
<title>Code blocks adorn - Layui</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href="../src/css/layui.css">
|
<link href="../src/css/layui.css" rel="stylesheet">
|
||||||
|
<style>
|
||||||
<style>
|
body{padding: 32px;}
|
||||||
body{padding: 50px 100px;}
|
pre{margin-bottom: 20px;}
|
||||||
pre{margin-bottom: 20px;}
|
</style>
|
||||||
</style>
|
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<pre class="layui-code" lay-title="JavaScript" lay-height="300px">
|
<pre class="layui-code" lay-height="300px">
|
||||||
//路由
|
// 在里面存放任意的文本内容
|
||||||
LAY.fn.router = function(hash){
|
code line
|
||||||
var hashs = (hash || location.hash).replace(/^#/, '').split('/') || [];
|
code line
|
||||||
var item, param = {
|
code line
|
||||||
dir: []
|
code line
|
||||||
};
|
code line
|
||||||
for(var i = 0; i < hashs.length; i++){
|
code line
|
||||||
item = hashs[i].split('=');
|
code line
|
||||||
/^\w+=/.test(hashs[i]) ? function(){
|
code line
|
||||||
if(item[0] !== 'dir'){
|
code line
|
||||||
param[item[0]] = item[1];
|
code line
|
||||||
}
|
code line
|
||||||
}() : param.dir.push(hashs[i]);
|
code line
|
||||||
item = null;
|
code line
|
||||||
}
|
code line
|
||||||
return param;
|
code line
|
||||||
};
|
code line
|
||||||
|
code line
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<pre class="layui-code" lay-skin="notepad">
|
<pre class="layui-code" lay-options="{title: '不显示行号', ln: false}">
|
||||||
//路由
|
code line
|
||||||
LAY.fn.router = function(hash){
|
code line
|
||||||
var hashs = (hash || location.hash).replace(/^#/, '').split('/') || [];
|
code line
|
||||||
var item, param = {
|
code line
|
||||||
dir: []
|
code line
|
||||||
};
|
code line
|
||||||
for(var i = 0; i < hashs.length; i++){
|
|
||||||
item = hashs[i].split('=');
|
|
||||||
/^\w+=/.test(hashs[i]) ? function(){
|
|
||||||
if(item[0] !== 'dir'){
|
|
||||||
param[item[0]] = item[1];
|
|
||||||
}
|
|
||||||
}() : param.dir.push(hashs[i]);
|
|
||||||
item = null;
|
|
||||||
}
|
|
||||||
return param;
|
|
||||||
};
|
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
<pre class="layui-code" lay-options="{title: '深色风格', skin: 'dark'}">
|
||||||
|
code line
|
||||||
|
code line
|
||||||
|
code line
|
||||||
|
code line
|
||||||
|
code line
|
||||||
|
code line
|
||||||
|
</pre>
|
||||||
|
|
||||||
|
<pre class="layui-code" lay-title="嵌套">
|
||||||
|
code line
|
||||||
|
code line
|
||||||
|
code line
|
||||||
|
code line
|
||||||
|
<pre class="layui-code" lay-options="{ln: false}">
|
||||||
|
code line
|
||||||
|
code line
|
||||||
|
code line
|
||||||
<pre class="layui-code">
|
<pre class="layui-code">
|
||||||
var hashs = (hash || location.hash).replace(/^#/, '').split('/') || [];
|
code line
|
||||||
var item, param = {
|
code line
|
||||||
dir: []
|
code line
|
||||||
};
|
</pre>
|
||||||
<pre class="layui-code">
|
|
||||||
//代码中的代码
|
|
||||||
var hashs = (hash || location.hash).replace(/^#/, '').split('/') || [];
|
|
||||||
var item, param = {
|
|
||||||
dir: []
|
|
||||||
};
|
|
||||||
</pre>
|
</pre>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
<pre class="layui-code" lay-skin="notepad">
|
<pre class="layui-code" lay-options="{skin: 'dark'}">
|
||||||
//路由
|
code line
|
||||||
LAY.fn.router = function(hash){
|
code line
|
||||||
var hashs = (hash || location.hash).replace(/^#/, '').split('/') || [];
|
code line
|
||||||
var item, param = {
|
code line
|
||||||
dir: []
|
code line
|
||||||
};
|
code line
|
||||||
for(var i = 0; i < hashs.length; i++){
|
<pre class="layui-code" lay-options="{skin: 'dark'}">
|
||||||
item = hashs[i].split('=');
|
code line
|
||||||
/^\w+=/.test(hashs[i]) ? function(){
|
code line
|
||||||
if(item[0] !== 'dir'){
|
code line
|
||||||
param[item[0]] = item[1];
|
code line
|
||||||
}
|
code line
|
||||||
}() : param.dir.push(hashs[i]);
|
code line
|
||||||
item = null;
|
<pre class="layui-code" lay-options="{skin: 'dark', ln: false}">
|
||||||
}
|
code line
|
||||||
return param;
|
code line
|
||||||
};
|
code line
|
||||||
<pre class="layui-code" lay-skin="notepad">
|
code line
|
||||||
//代码中的代码
|
code line
|
||||||
var hashs = (hash || location.hash).replace(/^#/, '').split('/') || [];
|
code line
|
||||||
var item, param = {
|
|
||||||
dir: []
|
|
||||||
};
|
|
||||||
<pre class="layui-code" lay-skin="notepad">
|
|
||||||
//代码中的代码
|
|
||||||
var hashs = (hash || location.hash).replace(/^#/, '').split('/') || [];
|
|
||||||
var item, param = {
|
|
||||||
dir: []
|
|
||||||
};
|
|
||||||
<pre class="layui-code" lay-skin="notepad">
|
|
||||||
//代码中的代码
|
|
||||||
var hashs = (hash || location.hash).replace(/^#/, '').split('/') || [];
|
|
||||||
var item, param = {
|
|
||||||
dir: []
|
|
||||||
};
|
|
||||||
</pre>
|
</pre>
|
||||||
</pre>
|
</pre>
|
||||||
</pre>
|
</pre>
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
<pre class="layui-code" lay-options="{encode: true}">
|
||||||
|
<div>
|
||||||
|
123
|
||||||
|
</div>
|
||||||
|
</pre>
|
||||||
|
|
||||||
<pre class="layui-code" lay-encode="true">
|
<pre class="layui-code" lay-about="code">
|
||||||
<div>
|
About
|
||||||
123
|
</pre>
|
||||||
</div>
|
|
||||||
|
<pre id="custom1">
|
||||||
|
custom more about
|
||||||
</pre>
|
</pre>
|
||||||
|
|
||||||
|
|
||||||
<script src="../src/layui.js"></script>
|
<script src="../src/layui.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
layui.use('code', function(){
|
layui.use('code', function(){
|
||||||
layui.code();
|
// 通用实例,根据元素属性定制化参数
|
||||||
});
|
layui.code({
|
||||||
|
//about: 'code' // 右上角默认显示 code
|
||||||
|
});
|
||||||
|
|
||||||
|
// custom more about
|
||||||
|
layui.code({
|
||||||
|
elem: '#custom1',
|
||||||
|
about: [
|
||||||
|
'<a href="javascript:;">复制</a>',
|
||||||
|
'<a href="about:blank" target="_blank">跳转</a>'
|
||||||
|
].join('')
|
||||||
|
})
|
||||||
|
});
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
@ -3,7 +3,7 @@
|
||||||
,"msg": ""
|
,"msg": ""
|
||||||
,"count": 3000000
|
,"count": 3000000
|
||||||
,"totalRow": {
|
,"totalRow": {
|
||||||
"experience": "777"
|
"checkin": "777"
|
||||||
}
|
}
|
||||||
,"data": [{
|
,"data": [{
|
||||||
"id": "10001"
|
"id": "10001"
|
||||||
|
@ -11,11 +11,12 @@
|
||||||
,"email": "test1@email.com"
|
,"email": "test1@email.com"
|
||||||
,"sex": "<strong>男</strong>"
|
,"sex": "<strong>男</strong>"
|
||||||
,"city": "浙江杭州"
|
,"city": "浙江杭州"
|
||||||
,"sign": "鼠标移动到此处,可以通过点击单元格右侧的下拉图标,查看到被隐藏的全部内容。"
|
,"sign": "舍南舍北皆春水,但见群鸥日日来。花径不曾缘客扫,蓬门今始为君开。盘飧市远无兼味,樽酒家贫只旧醅。肯与邻翁相对饮,隔篱呼取尽余杯。"
|
||||||
,"experience": 7
|
,"experience": 7
|
||||||
,"ip": "192.168.0.8"
|
,"ip": "192.168.0.8"
|
||||||
,"logins": 0
|
,"checkin": 0
|
||||||
,"joinTime": "2016-10-14"
|
,"joinTime": "2016-10-14"
|
||||||
|
,"LAY_DISABLED": true
|
||||||
}, {
|
}, {
|
||||||
"id": "10002"
|
"id": "10002"
|
||||||
,"username": "李白"
|
,"username": "李白"
|
||||||
|
@ -25,19 +26,19 @@
|
||||||
,"sign": "君不见,黄河之水天上来,奔流到海不复回。 君不见,高堂明镜悲白发,朝如青丝暮成雪。 人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。 烹羊宰牛且为乐,会须一饮三百杯。 岑夫子,丹丘生,将进酒,杯莫停。 与君歌一曲,请君为我倾耳听。(倾耳听 一作:侧耳听) 钟鼓馔玉不足贵,但愿长醉不复醒。(不足贵 一作:何足贵;不复醒 一作:不愿醒/不用醒) 古来圣贤皆寂寞,惟有饮者留其名。(古来 一作:自古;惟 通:唯) 陈王昔时宴平乐,斗酒十千恣欢谑。 主人何为言少钱,径须沽取对君酌。 五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。"
|
,"sign": "君不见,黄河之水天上来,奔流到海不复回。 君不见,高堂明镜悲白发,朝如青丝暮成雪。 人生得意须尽欢,莫使金樽空对月。 天生我材必有用,千金散尽还复来。 烹羊宰牛且为乐,会须一饮三百杯。 岑夫子,丹丘生,将进酒,杯莫停。 与君歌一曲,请君为我倾耳听。(倾耳听 一作:侧耳听) 钟鼓馔玉不足贵,但愿长醉不复醒。(不足贵 一作:何足贵;不复醒 一作:不愿醒/不用醒) 古来圣贤皆寂寞,惟有饮者留其名。(古来 一作:自古;惟 通:唯) 陈王昔时宴平乐,斗酒十千恣欢谑。 主人何为言少钱,径须沽取对君酌。 五花马,千金裘,呼儿将出换美酒,与尔同销万古愁。"
|
||||||
,"experience": 9
|
,"experience": 9
|
||||||
,"ip": "192.168.0.8"
|
,"ip": "192.168.0.8"
|
||||||
,"logins": "106"
|
,"checkin": "106"
|
||||||
,"joinTime": "2016-10-14"
|
,"joinTime": "2016-10-14"
|
||||||
,"LAY_CHECKED": true
|
,"LAY_CHECKED": true
|
||||||
}, {
|
}, {
|
||||||
"id": "10003"
|
"id": "10003"
|
||||||
,"username": "苏轼"
|
,"username": "苏轼"
|
||||||
,"email": "test3@email.com"
|
,"email": "test3@email.com"
|
||||||
,"sex": "男"
|
,"sex": "男"
|
||||||
,"city": "浙江杭州"
|
,"city": "浙江杭州"
|
||||||
,"sign": "人生恰似一场修行"
|
,"sign": "大江东去,浪淘尽,千古风流人物。故垒西边,人道是,三国周郎赤壁。乱石穿空,惊涛拍岸,卷起千堆雪。江山如画,一时多少豪杰。遥想公瑾当年,小乔初嫁了,雄姿英发。羽扇纶巾,谈笑间,樯橹灰飞烟灭。故国神游,多情应笑我,早生华发。人生如梦,一尊还酹江月。"
|
||||||
,"experience": 8
|
,"experience": 8
|
||||||
,"ip": "192.168.0.8"
|
,"ip": "192.168.0.8"
|
||||||
,"logins": null
|
,"checkin": null
|
||||||
,"joinTime": "2016-10-14"
|
,"joinTime": "2016-10-14"
|
||||||
}, {
|
}, {
|
||||||
"id": "10004"
|
"id": "10004"
|
||||||
|
@ -48,7 +49,7 @@
|
||||||
,"sign": "人生恰似一场修行"
|
,"sign": "人生恰似一场修行"
|
||||||
,"experience": 6
|
,"experience": 6
|
||||||
,"ip": "192.168.0.8"
|
,"ip": "192.168.0.8"
|
||||||
,"logins": "106"
|
,"checkin": "106"
|
||||||
,"joinTime": "2016-10-14"
|
,"joinTime": "2016-10-14"
|
||||||
}, {
|
}, {
|
||||||
"id": "10005"
|
"id": "10005"
|
||||||
|
@ -59,7 +60,7 @@
|
||||||
,"sign": "人生恰似一场修行"
|
,"sign": "人生恰似一场修行"
|
||||||
,"experience": 64
|
,"experience": 64
|
||||||
,"ip": "192.168.0.8"
|
,"ip": "192.168.0.8"
|
||||||
,"logins": "106"
|
,"checkin": "106"
|
||||||
,"joinTime": "2016-10-14"
|
,"joinTime": "2016-10-14"
|
||||||
}, {
|
}, {
|
||||||
"id": "10006"
|
"id": "10006"
|
||||||
|
@ -70,7 +71,7 @@
|
||||||
,"sign": "人生恰似一场修行"
|
,"sign": "人生恰似一场修行"
|
||||||
,"experience": 65
|
,"experience": 65
|
||||||
,"ip": "192.168.0.8"
|
,"ip": "192.168.0.8"
|
||||||
,"logins": "106"
|
,"checkin": "106"
|
||||||
,"joinTime": "2016-10-14"
|
,"joinTime": "2016-10-14"
|
||||||
}, {
|
}, {
|
||||||
"id": "10007"
|
"id": "10007"
|
||||||
|
@ -81,7 +82,7 @@
|
||||||
,"sign": "人生恰似一场修行"
|
,"sign": "人生恰似一场修行"
|
||||||
,"experience": 49
|
,"experience": 49
|
||||||
,"ip": "192.168.0.8"
|
,"ip": "192.168.0.8"
|
||||||
,"logins": "106"
|
,"checkin": "106"
|
||||||
,"joinTime": "2016-10-14"
|
,"joinTime": "2016-10-14"
|
||||||
}, {
|
}, {
|
||||||
"id": "10008"
|
"id": "10008"
|
||||||
|
@ -92,7 +93,7 @@
|
||||||
,"sign": "人生恰似一场修行"
|
,"sign": "人生恰似一场修行"
|
||||||
,"experience": 5
|
,"experience": 5
|
||||||
,"ip": "192.168.0.8"
|
,"ip": "192.168.0.8"
|
||||||
,"logins": "106"
|
,"checkin": "106"
|
||||||
,"joinTime": "2016-10-14"
|
,"joinTime": "2016-10-14"
|
||||||
}]
|
}]
|
||||||
}
|
}
|
|
@ -1,51 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<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: 10px;}
|
|
||||||
</style>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
|
|
||||||
<div style="width: 800px;">
|
|
||||||
<form class="layui-form">
|
|
||||||
<div class="layui-form-item">
|
|
||||||
<textarea name="demo" id="demo" class="layui-hide">
|
|
||||||
<p><span>一个范围具有两个边界点,即一个开始点和一个结束点。每个边界点由一个节点和那个节点的偏移量指定。该节点通常是 </span><a href="http://www.w3school.com.cn/xmldom/dom_element.asp" title="XML DOM - Element 对象">Element 节点</a><span>、</span><a href="http://www.w3school.com.cn/xmldom/dom_document.asp" title="XML DOM - Document 对象">Document 节点</a><span>或 </span><a href="http://www.w3school.com.cn/xmldom/dom_text.asp" title="XML DOM - Text 对象">Text 节点</a><span>。对于 Element 节点和 Document 节点,偏移量指该节点的子节点。偏移量为 0,说明边界点位于该节点的第一个子节点之前。偏移量为 1,说明边界点位于该节点的第一个子节点之后,第二个子节点之前。但如果边界节点是 Text 节点,偏移量则指的是文本中两个字符之间的位置。</span></p>
|
|
||||||
</textarea>
|
|
||||||
</div>
|
|
||||||
<button class="layui-btn">提交</button>
|
|
||||||
<a class="layui-btn" id="getChoose">获取选中内容</a>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<script src="../src/layui.js"></script>
|
|
||||||
<script>
|
|
||||||
layui.use('layedit', function(){
|
|
||||||
var layedit = layui.layedit;
|
|
||||||
|
|
||||||
var index = layedit.build('demo', {
|
|
||||||
//hideTool: ['image']
|
|
||||||
uploadImage: {
|
|
||||||
url: 'json/upload/demoLayEdit.json'
|
|
||||||
,type: 'get'
|
|
||||||
}
|
|
||||||
//,tool: []
|
|
||||||
//,height: 100
|
|
||||||
});
|
|
||||||
|
|
||||||
getChoose.onclick = function(){
|
|
||||||
alert(layedit.getSelection(index));
|
|
||||||
};
|
|
||||||
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -21,7 +21,6 @@
|
||||||
<script type="text/html" id="toolbarDemo">
|
<script type="text/html" id="toolbarDemo">
|
||||||
<div class="layui-btn-container">
|
<div class="layui-btn-container">
|
||||||
<button class="layui-btn layui-btn-sm" lay-event="getCheckData">获取选中行数据</button>
|
<button class="layui-btn layui-btn-sm" lay-event="getCheckData">获取选中行数据</button>
|
||||||
<button class="layui-btn layui-btn-sm" lay-event="getCheckLength">获取选中数目</button>
|
|
||||||
<button class="layui-btn layui-btn-sm" lay-event="getData">获取当前页数据</button>
|
<button class="layui-btn layui-btn-sm" lay-event="getData">获取当前页数据</button>
|
||||||
<button class="layui-btn layui-btn-sm" lay-event="isAll">是否全选</button>
|
<button class="layui-btn layui-btn-sm" lay-event="isAll">是否全选</button>
|
||||||
|
|
||||||
|
@ -77,8 +76,15 @@
|
||||||
|
|
||||||
<table id="test" lay-filter="test"></table>
|
<table id="test" lay-filter="test"></table>
|
||||||
|
|
||||||
<script src="../src/layui.js"></script>
|
<script src="../src/layui.js" src1="https://cdn.staticfile.org/layui/2.6.13/layui.js"></script>
|
||||||
<script>
|
<script>
|
||||||
|
(function(off){
|
||||||
|
if(!off) return;
|
||||||
|
layui.disuse('table').extend({
|
||||||
|
table: '{/}//ww:5018/layui/2.6.13/src/modules/table'
|
||||||
|
});
|
||||||
|
})();
|
||||||
|
|
||||||
layui.use(['table', 'dropdown'], function(){
|
layui.use(['table', 'dropdown'], function(){
|
||||||
var $ = layui.$;
|
var $ = layui.$;
|
||||||
var table = layui.table;
|
var table = layui.table;
|
||||||
|
@ -86,6 +92,20 @@ layui.use(['table', 'dropdown'], function(){
|
||||||
var dropdown = layui.dropdown;
|
var dropdown = layui.dropdown;
|
||||||
var form = layui.form;
|
var form = layui.form;
|
||||||
|
|
||||||
|
|
||||||
|
// 仅用于各类测试的表头
|
||||||
|
var test_cols = [[
|
||||||
|
{type: 'checkbox', fixed: 'left'}
|
||||||
|
,{field:'id', title:'ID', width:80, fixed: 'left', unresize: true, sort: true, totalRowText: '合计:'}
|
||||||
|
,{field:'username', title:'用户名', width:120, edit: 'text'}
|
||||||
|
,{field:'email', title:'邮箱 <i class="layui-icon layui-icon-email"></i>', hide: 0, width:150, edit: 'text'}
|
||||||
|
,{field:'sex', title:'性别', width:80, edit: 'text', sort: true}
|
||||||
|
,{field:'city', title:'城市', width: 120}
|
||||||
|
,{field:'sign', title:'签名'}
|
||||||
|
,{field: 'experience', title: '积分', width:80, sort: true, align:'center', totalRow: '{{ d.TOTAL_NUMS }} 😊'}
|
||||||
|
,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}
|
||||||
|
]];
|
||||||
|
|
||||||
// 全局设定某参数
|
// 全局设定某参数
|
||||||
table.set({
|
table.set({
|
||||||
where: {
|
where: {
|
||||||
|
@ -97,30 +117,32 @@ layui.use(['table', 'dropdown'], function(){
|
||||||
//,height: 300
|
//,height: 300
|
||||||
});
|
});
|
||||||
|
|
||||||
$('#appendtest').append($('#TPL_appendtest').html())
|
|
||||||
table.init('appendtest');
|
|
||||||
|
|
||||||
//渲染
|
//渲染
|
||||||
window.ins1 = table.render({
|
window.ins1 = table.render({
|
||||||
elem: '#test'
|
elem: '#test'
|
||||||
,height: 500
|
,height: 520
|
||||||
//,width: 600
|
//,width: 600
|
||||||
,title: '用户数据表'
|
,title: '用户数据表'
|
||||||
,url: 'json/table/demo1.json'
|
,url: 'json/table/demo1.json'
|
||||||
|
//,method: 'post'
|
||||||
|
|
||||||
,pagebar: '#pagebarDemo' // 分页栏模板
|
|
||||||
,lineStyle: 'height: 100px;' // 行样式
|
//,lineStyle: 'height: 95px;' // 行样式
|
||||||
,css: [ // 自定义样式
|
,css: [ // 自定义样式
|
||||||
'.layui-table-page{text-align: right;}'
|
'.layui-table-page{text-align: right;}'
|
||||||
,'.layui-table-pagebar{float: left;}'
|
,'.layui-table-pagebar{float: left;}'
|
||||||
].join('')
|
].join('')
|
||||||
|
//,className: '.demo-table-view'
|
||||||
|
|
||||||
//,size: 'lg'
|
//,size: 'sm'
|
||||||
//,skin: 'line'
|
//,skin: 'line'
|
||||||
//,autoSort: false //是否自动排序。如果否,则由服务端排序
|
|
||||||
//,loading: false
|
//,loading: false
|
||||||
|
|
||||||
,totalRow: true
|
,totalRow: true
|
||||||
,page: true
|
,pagebar: '#pagebarDemo' // 分页栏模板
|
||||||
|
,page: !1 ? false : {
|
||||||
|
//curr: layui.data('tableCache').curr || 1 // 读取记录中的页码,赋值给起始页
|
||||||
|
}
|
||||||
,limit: 30
|
,limit: 30
|
||||||
,toolbar: '#toolbarDemo'
|
,toolbar: '#toolbarDemo'
|
||||||
,defaultToolbar: ['filter', 'exports', 'print', {
|
,defaultToolbar: ['filter', 'exports', 'print', {
|
||||||
|
@ -129,18 +151,9 @@ layui.use(['table', 'dropdown'], function(){
|
||||||
,icon: 'layui-icon-tips'
|
,icon: 'layui-icon-tips'
|
||||||
}]
|
}]
|
||||||
//,escape: false
|
//,escape: false
|
||||||
,cols: !1 ? [[ //仅用于测试
|
,cols: !1 ? test_cols : [[
|
||||||
{type: 'checkbox', fixed: 'left'}
|
|
||||||
,{field:'id', title:'ID', width:80, fixed: 'left', unresize: true, sort: true, totalRowText: '合计:'}
|
|
||||||
,{field:'username', title:'用户名', width:120, edit: 'text'}
|
|
||||||
,{field:'email', title:'邮箱 <i class="layui-icon layui-icon-email"></i>', hide: 0, width:150, edit: 'text'}
|
|
||||||
,{field:'sex', title:'性别', width:80, edit: 'text', sort: true}
|
|
||||||
,{field:'city', title:'城市', width:120}
|
|
||||||
,{field:'sign', title:'签名'}
|
|
||||||
,{field: 'experience', title: '积分', width:80, sort: true, align:'center', totalRow: '{{ d.TOTAL_NUMS }} 😊'}
|
|
||||||
,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}
|
|
||||||
]] : [[
|
|
||||||
{type: 'checkbox', fixed: 'left'}
|
{type: 'checkbox', fixed: 'left'}
|
||||||
|
//,{type: 'numbers', fixed: 'left'}
|
||||||
,{field:'id', title:'ID', width:80, fixed: 'left', unresize: true, sort: true, totalRowText: '合计:'}
|
,{field:'id', title:'ID', width:80, fixed: 'left', unresize: true, sort: true, totalRowText: '合计:'}
|
||||||
,{field:'username', title:'用户名', width:120, edit: 'text', templet: '#usernameTpl'}
|
,{field:'username', title:'用户名', width:120, edit: 'text', templet: '#usernameTpl'}
|
||||||
,{field:'email', title:'邮箱 <i class="layui-icon layui-icon-email"></i>', hide: 0, width:150, edit: 'text', templet: function(d){
|
,{field:'email', title:'邮箱 <i class="layui-icon layui-icon-email"></i>', hide: 0, width:150, edit: 'text', templet: function(d){
|
||||||
|
@ -152,15 +165,16 @@ layui.use(['table', 'dropdown'], function(){
|
||||||
var td = obj.td(this.field); //获取当前 td
|
var td = obj.td(this.field); //获取当前 td
|
||||||
return td.find('select').val();
|
return td.find('select').val();
|
||||||
}}
|
}}
|
||||||
,{field:'sign', title:'签名', edit: 'textarea'}
|
,{field:'sign', title:'签名', minWidth: 200, style:'color: #5FB878', edit: 'textarea'}
|
||||||
,{field: 'experience', title: '积分', width:80, sort: true, align:'center', totalRow: '{{ d.TOTAL_NUMS }} 😊', templet: '<div>{{ d.experience }} 分</div>'}
|
,{field: 'experience', title: '积分', width: 100, sort: true, align:'center', totalRow: !1 ? '{{=d.LAY_COL.field}}' : '{{= d.TOTAL_NUMS }} 分 😊', templet: '<div><a href="" class="layui-table-link">{{ d.experience }}</a> 分</div>'}
|
||||||
,{field:'ip', title:'IP', width: 120}
|
,{field:'ip', title:'IP', width: 120, align: 'right'}
|
||||||
,{field:'logins', title:'登入次数', width: 100, sort: true, totalRow: '{{ parseInt(d.TOTAL_NUMS) }} 次'}
|
,{field:'checkin', title:'打卡', width: 100, sort: true, totalRow: '{{= parseInt(d.TOTAL_NUMS) }} 次'}
|
||||||
,{field:'joinTime', title:'加入时间', width: 120}
|
,{field:'joinTime', title:'加入时间', width: 120}
|
||||||
,{fixed: 'right', title:'操作', toolbar: '#barDemo', width: 180}
|
,{fixed: 'right', title:'操作', toolbar: '#barDemo', width: 180}
|
||||||
]]
|
]]
|
||||||
|
|
||||||
,initSort1: {
|
//,autoSort: false // 禁用前端自动排序,由服务的完成排序
|
||||||
|
,initSort11111: { // 初始排序状态
|
||||||
field: 'experience' //排序字段,对应 cols 设定的各字段名
|
field: 'experience' //排序字段,对应 cols 设定的各字段名
|
||||||
,type: 'desc' //排序方式 asc: 升序、desc: 降序、null: 默认排序
|
,type: 'desc' //排序方式 asc: 升序、desc: 降序、null: 默认排序
|
||||||
}
|
}
|
||||||
|
@ -172,9 +186,17 @@ layui.use(['table', 'dropdown'], function(){
|
||||||
,key: 'experience'
|
,key: 'experience'
|
||||||
,order: 'asc'
|
,order: 'asc'
|
||||||
}
|
}
|
||||||
,done: function(){
|
,done: function(res, curr, count){
|
||||||
var id = this.id;
|
var id = this.id;
|
||||||
|
|
||||||
|
// 记录当前页码
|
||||||
|
/*
|
||||||
|
layui.data('tableCache', {
|
||||||
|
key: 'curr',
|
||||||
|
value: curr
|
||||||
|
});
|
||||||
|
*/
|
||||||
|
|
||||||
// 重载测试
|
// 重载测试
|
||||||
dropdown.render({
|
dropdown.render({
|
||||||
elem: '#reloadTest' //可绑定在任意元素中,此处以上述按钮为例
|
elem: '#reloadTest' //可绑定在任意元素中,此处以上述按钮为例
|
||||||
|
@ -326,19 +348,20 @@ layui.use(['table', 'dropdown'], function(){
|
||||||
|
|
||||||
//排序事件
|
//排序事件
|
||||||
table.on('sort(test)', function(obj){
|
table.on('sort(test)', function(obj){
|
||||||
console.log(obj);
|
//console.log(obj);
|
||||||
|
|
||||||
return;
|
//return;
|
||||||
layer.msg('服务端排序。order by '+ obj.field + ' ' + obj.type);
|
layer.msg('服务端排序。order by '+ obj.field + ' ' + obj.type);
|
||||||
|
|
||||||
//服务端排序
|
//服务端排序
|
||||||
table.reload('test', {
|
table.reloadData('test', {
|
||||||
initSort: obj
|
//initSort: obj,
|
||||||
//,page: {curr: 1} //重新从第一页开始
|
//page: {curr: 1}, //重新从第一页开始
|
||||||
,where: { //重新请求服务端
|
where: { // 向服务端传入排序参数
|
||||||
key: obj.field //排序字段
|
key: obj.field, //排序字段
|
||||||
,order: obj.type //排序方式
|
order: obj.type //排序方式
|
||||||
}
|
}
|
||||||
}, true);
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
// 工具栏事件
|
// 工具栏事件
|
||||||
|
@ -351,10 +374,6 @@ layui.use(['table', 'dropdown'], function(){
|
||||||
var data = checkStatus.data;
|
var data = checkStatus.data;
|
||||||
layer.alert(layui.util.escape(JSON.stringify(data)));
|
layer.alert(layui.util.escape(JSON.stringify(data)));
|
||||||
break;
|
break;
|
||||||
case 'getCheckLength':
|
|
||||||
var data = checkStatus.data;
|
|
||||||
layer.msg('选中了:'+ data.length + ' 个');
|
|
||||||
break;
|
|
||||||
case 'getData':
|
case 'getData':
|
||||||
var getData = table.getData(id);
|
var getData = table.getData(id);
|
||||||
console.log(getData);
|
console.log(getData);
|
||||||
|
|
|
@ -201,6 +201,7 @@ layui.use('table', function(){
|
||||||
//,height: 300
|
//,height: 300
|
||||||
,cellMinWidth: 80
|
,cellMinWidth: 80
|
||||||
//,skin: 'line'
|
//,skin: 'line'
|
||||||
|
//,size: 'lg'
|
||||||
,toolbar: true
|
,toolbar: true
|
||||||
,cols: [[
|
,cols: [[
|
||||||
{field: 'id', hide: true}
|
{field: 'id', hide: true}
|
||||||
|
@ -236,7 +237,7 @@ layui.use('table', function(){
|
||||||
,{field: 'sex', title: '性别', width: 80}
|
,{field: 'sex', title: '性别', width: 80}
|
||||||
,{field: 'city', title: '城市', width: 100}
|
,{field: 'city', title: '城市', width: 100}
|
||||||
// ,{field: 'experience', title: '积分', width: 80, sort: true}
|
// ,{field: 'experience', title: '积分', width: 80, sort: true}
|
||||||
,{field: 'experience', title: '积分', width: 80, sort: true, totalRow: true, totalRowDecimals: 3}
|
,{field: 'experience', title: '积分', width: 80, sort: true, totalRow: '{{= parseInt(d.TOTAL_NUMS) }}'}
|
||||||
]]
|
]]
|
||||||
,data: [{
|
,data: [{
|
||||||
"id": "10001"
|
"id": "10001"
|
||||||
|
|
|
@ -1,6 +1,4 @@
|
||||||
/**
|
'use strict';
|
||||||
* Building Layui
|
|
||||||
*/
|
|
||||||
|
|
||||||
const pkg = require('./package.json');
|
const pkg = require('./package.json');
|
||||||
const gulp = require('gulp');
|
const gulp = require('gulp');
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"name": "layui",
|
"name": "layui",
|
||||||
"realname": "layui",
|
"realname": "layui",
|
||||||
"version": "2.7.0",
|
"version": "2.7.2",
|
||||||
"description": "Classic modular Front-End UI library",
|
"description": "Classic modular Front-End UI library",
|
||||||
"main": "dist/layui.js",
|
"main": "dist/layui.js",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
|
|
|
@ -723,6 +723,7 @@ a cite{font-style: normal; *cursor:pointer;}
|
||||||
.layui-form-checkbox[lay-skin="primary"]:hover i{border-color: #5FB878; color: #fff;}
|
.layui-form-checkbox[lay-skin="primary"]:hover i{border-color: #5FB878; color: #fff;}
|
||||||
.layui-form-checked[lay-skin="primary"] i{border-color: #5FB878 !important; background-color: #5FB878; color: #fff;}
|
.layui-form-checked[lay-skin="primary"] i{border-color: #5FB878 !important; background-color: #5FB878; color: #fff;}
|
||||||
.layui-checkbox-disabled[lay-skin="primary"] span{background: none!important; color: #c2c2c2!important;}
|
.layui-checkbox-disabled[lay-skin="primary"] span{background: none!important; color: #c2c2c2!important;}
|
||||||
|
.layui-form-checked.layui-checkbox-disabled[lay-skin="primary"] i{background: #eee!important; border-color: #eee!important;}
|
||||||
.layui-checkbox-disabled[lay-skin="primary"]:hover i{border-color: #d2d2d2;}
|
.layui-checkbox-disabled[lay-skin="primary"]:hover i{border-color: #d2d2d2;}
|
||||||
.layui-form-item .layui-form-checkbox[lay-skin="primary"]{margin-top: 10px;}
|
.layui-form-item .layui-form-checkbox[lay-skin="primary"]{margin-top: 10px;}
|
||||||
|
|
||||||
|
@ -893,10 +894,10 @@ a cite{font-style: normal; *cursor:pointer;}
|
||||||
|
|
||||||
/* 大表格 */.layui-table[lay-size="lg"] th,
|
/* 大表格 */.layui-table[lay-size="lg"] th,
|
||||||
.layui-table[lay-size="lg"] td{padding-top: 15px; padding-right: 30px; padding-bottom: 15px; padding-left: 30px;}
|
.layui-table[lay-size="lg"] td{padding-top: 15px; padding-right: 30px; padding-bottom: 15px; padding-left: 30px;}
|
||||||
.layui-table-view .layui-table[lay-size="lg"] .layui-table-cell{height: 40px; line-height: 40px;}
|
.layui-table-view .layui-table[lay-size="lg"] .layui-table-cell{height: 50px; line-height: 40px;}
|
||||||
/* 小表格 */.layui-table[lay-size="sm"] th,
|
/* 小表格 */.layui-table[lay-size="sm"] th,
|
||||||
.layui-table[lay-size="sm"] td{padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; font-size: 12px;}
|
.layui-table[lay-size="sm"] td{padding-top: 5px; padding-right: 10px; padding-bottom: 5px; padding-left: 10px; font-size: 12px;}
|
||||||
.layui-table-view .layui-table[lay-size="sm"] .layui-table-cell{height: 20px; line-height: 20px;}
|
.layui-table-view .layui-table[lay-size="sm"] .layui-table-cell{height: 30px; line-height: 20px;}
|
||||||
|
|
||||||
/* 数据表格 */
|
/* 数据表格 */
|
||||||
.layui-table[lay-data]{display: none;}
|
.layui-table[lay-data]{display: none;}
|
||||||
|
@ -950,6 +951,8 @@ a cite{font-style: normal; *cursor:pointer;}
|
||||||
.layui-table-cell{height: 38px; line-height: 28px; padding: 6px 15px; position: relative; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; box-sizing: border-box;}
|
.layui-table-cell{height: 38px; line-height: 28px; padding: 6px 15px; position: relative; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; box-sizing: border-box;}
|
||||||
.layui-table-cell .layui-form-checkbox[lay-skin="primary"]{top: -1px; padding: 0;}
|
.layui-table-cell .layui-form-checkbox[lay-skin="primary"]{top: -1px; padding: 0;}
|
||||||
.layui-table-cell .layui-table-link{color: #01AAED;}
|
.layui-table-cell .layui-table-link{color: #01AAED;}
|
||||||
|
.layui-table-cell[align="center"]{-webkit-box-pack: center;}
|
||||||
|
.layui-table-cell[align="right"]{-webkit-box-pack: end;}
|
||||||
|
|
||||||
.laytable-cell-checkbox,
|
.laytable-cell-checkbox,
|
||||||
.laytable-cell-radio,
|
.laytable-cell-radio,
|
||||||
|
@ -986,13 +989,16 @@ a cite{font-style: normal; *cursor:pointer;}
|
||||||
.layui-table-page .layui-laypage input{width: 40px;}
|
.layui-table-page .layui-laypage input{width: 40px;}
|
||||||
.layui-table-page .layui-laypage button{padding: 0 10px;}
|
.layui-table-page .layui-laypage button{padding: 0 10px;}
|
||||||
.layui-table-page select{height: 18px;}
|
.layui-table-page select{height: 18px;}
|
||||||
.layui-table-pagebar{float: right; line-height: 32px;}
|
.layui-table-pagebar{float: right; line-height: 23px;}
|
||||||
|
.layui-table-pagebar .layui-btn-sm{margin-top: -1px;}
|
||||||
|
.layui-table-pagebar .layui-btn-xs{margin-top: 2px;}
|
||||||
|
|
||||||
.layui-table-view select[lay-ignore]{display: inline-block;}
|
.layui-table-view select[lay-ignore]{display: inline-block;}
|
||||||
.layui-table-patch .layui-table-cell{padding: 0; width: 30px;}
|
.layui-table-patch .layui-table-cell{padding: 0; width: 30px;}
|
||||||
|
|
||||||
.layui-table-edit{position: absolute; left: 0; top: 0; z-index: 900; min-width: 100%; min-height: 100%; padding: 0 14px 1px; border-radius: 0; box-shadow: 1px 1px 20px rgba(0,0,0,.15); background-color: #fff;}
|
.layui-table-edit{position: absolute; left: 0; top: 0; z-index: 900; min-width: 100%; min-height: 100%; padding: 5px 14px; border-radius: 0; box-shadow: 1px 1px 20px rgba(0,0,0,.15); background-color: #fff;}
|
||||||
.layui-table-edit:focus{border-color: #5FB878!important;}
|
.layui-table-edit:focus{border-color: #5FB878!important;}
|
||||||
|
input.layui-input.layui-table-edit{height: 100%;}
|
||||||
select.layui-table-edit{padding: 0 0 0 10px; border-color: #d2d2d2;}
|
select.layui-table-edit{padding: 0 0 0 10px; border-color: #d2d2d2;}
|
||||||
.layui-table-view .layui-form-switch,
|
.layui-table-view .layui-form-switch,
|
||||||
.layui-table-view .layui-form-checkbox,
|
.layui-table-view .layui-form-checkbox,
|
||||||
|
|
|
@ -1,9 +1,5 @@
|
||||||
/**
|
/**
|
||||||
|
* code
|
||||||
@Name: layui.code
|
|
||||||
@Description:Classic modular front-end UI framework
|
|
||||||
@License:MIT
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* 加载就绪标志 */
|
/* 加载就绪标志 */
|
||||||
|
@ -11,18 +7,25 @@ html #layuicss-skincodecss{display:none; position: absolute; width:1989px;}
|
||||||
|
|
||||||
/* 默认风格 */
|
/* 默认风格 */
|
||||||
.layui-code-view{display: block; position: relative; margin: 10px 0; padding: 0; border: 1px solid #eee; border-left-width: 6px; background-color: #FAFAFA; color: #333; font-family: Courier New; font-size: 13px;}
|
.layui-code-view{display: block; position: relative; margin: 10px 0; padding: 0; border: 1px solid #eee; border-left-width: 6px; background-color: #FAFAFA; color: #333; font-family: Courier New; font-size: 13px;}
|
||||||
.layui-code-h3{position: relative; padding: 0 10px; height: 40px; line-height: 40px; border-bottom: 1px solid #eee; font-size: 12px;}
|
.layui-code-title{position: relative; padding: 0 10px; height: 40px; line-height: 40px; border-bottom: 1px solid #eee; font-size: 12px;}
|
||||||
.layui-code-h3 a{position: absolute; right: 10px; top: 0; color: #999;}
|
.layui-code-title > .layui-code-about{position: absolute; right: 10px; top: 0; color: #B7B7B7;}
|
||||||
.layui-code-view .layui-code-ol{position: relative; overflow: auto;}
|
.layui-code-about > a{padding-left: 10px;}
|
||||||
.layui-code-view .layui-code-ol li{position: relative; margin-left: 45px; line-height: 20px; padding: 0 10px; border-left: 1px solid #e2e2e2; list-style-type: decimal-leading-zero; *list-style-type: decimal; background-color: #fff;}
|
.layui-code-view > .layui-code-ol,
|
||||||
.layui-code-view .layui-code-ol li:first-child{padding-top: 10px;}
|
.layui-code-view > .layui-code-ul{position: relative; overflow: auto;}
|
||||||
.layui-code-view .layui-code-ol li:last-child{padding-bottom: 10px;}
|
.layui-code-view > .layui-code-ol > li{position: relative; margin-left: 45px; line-height: 20px; padding: 0 10px; border-left: 1px solid #e2e2e2; list-style-type: decimal-leading-zero; *list-style-type: decimal; background-color: #fff;}
|
||||||
|
.layui-code-view > .layui-code-ol > li:first-child,
|
||||||
|
.layui-code-view > .layui-code-ul > li:first-child{padding-top: 10px;}
|
||||||
|
.layui-code-view > .layui-code-ol > li:last-child,
|
||||||
|
.layui-code-view > .layui-code-ul > li:last-child{padding-bottom: 10px;}
|
||||||
|
.layui-code-view > .layui-code-ul > li{position: relative; line-height: 20px; padding: 0 10px; list-style-type: none; *list-style-type: none; background-color: #fff;}
|
||||||
.layui-code-view pre{margin: 0;}
|
.layui-code-view pre{margin: 0;}
|
||||||
|
|
||||||
/* notepadd++ 风格 */
|
/* 深色风格 */
|
||||||
.layui-code-notepad{border: 1px solid #0C0C0C; border-left-color: #3F3F3F; background-color: #0C0C0C; color: #C2BE9E}
|
.layui-code-dark{border: 1px solid #0C0C0C; border-left-color: #3F3F3F; background-color: #0C0C0C; color: #C2BE9E}
|
||||||
.layui-code-notepad .layui-code-h3{border-bottom: none;}
|
.layui-code-dark > .layui-code-title{border-bottom: none;}
|
||||||
.layui-code-notepad .layui-code-ol li{background-color: #3F3F3F; border-left: none;}
|
.layui-code-dark > .layui-code-ol > li,
|
||||||
|
.layui-code-dark > .layui-code-ul > li{background-color: #3F3F3F; border-left: none;}
|
||||||
|
.layui-code-dark > .layui-code-ul > li{margin-left: 6px;}
|
||||||
|
|
||||||
/* 代码预览 */
|
/* 代码预览 */
|
||||||
.layui-code-demo .layui-code{visibility: visible !important; margin: -15px; border-top: none; border-right: none; border-bottom: none;}
|
.layui-code-demo .layui-code{visibility: visible !important; margin: -15px; border-top: none; border-right: none; border-bottom: none;}
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
}
|
}
|
||||||
|
|
||||||
,Layui = function(){
|
,Layui = function(){
|
||||||
this.v = '2.7.0'; // layui 版本号
|
this.v = '2.7.2'; // layui 版本号
|
||||||
}
|
}
|
||||||
|
|
||||||
//识别预先可能定义的指定全局对象
|
//识别预先可能定义的指定全局对象
|
||||||
|
@ -238,7 +238,7 @@
|
||||||
apps = that.isArray(apps) ? apps : [apps];
|
apps = that.isArray(apps) ? apps : [apps];
|
||||||
that.each(apps, function (index, item) {
|
that.each(apps, function (index, item) {
|
||||||
if (!config.status[item]) {
|
if (!config.status[item]) {
|
||||||
return error('module ' + item + ' is not exist');
|
//return error('module ' + item + ' is not exist');
|
||||||
}
|
}
|
||||||
delete that[item];
|
delete that[item];
|
||||||
delete modules[item];
|
delete modules[item];
|
||||||
|
@ -246,6 +246,7 @@
|
||||||
delete config.status[item];
|
delete config.status[item];
|
||||||
delete config.modules[item];
|
delete config.modules[item];
|
||||||
});
|
});
|
||||||
|
return that;
|
||||||
};
|
};
|
||||||
|
|
||||||
//获取节点的 style 属性值
|
//获取节点的 style 属性值
|
||||||
|
|
|
@ -1,63 +1,99 @@
|
||||||
/**
|
/**
|
||||||
* code
|
* code
|
||||||
* 代码区简易修饰
|
* 代码块简易修饰
|
||||||
*/
|
*/
|
||||||
|
|
||||||
layui.define(['util'], function(exports){
|
layui.define(['lay', 'util'], function(exports){
|
||||||
"use strict";
|
"use strict";
|
||||||
|
|
||||||
var $ = layui.$;
|
var $ = layui.$;
|
||||||
var util = layui.util;
|
var util = layui.util;
|
||||||
|
|
||||||
|
var ELEM_TITLE = 'layui-code-title';
|
||||||
|
|
||||||
|
// 默认参数项
|
||||||
|
var config = {
|
||||||
|
elem: '.layui-code', // 元素选择器
|
||||||
|
title: '</>', // 标题
|
||||||
|
about: '', // 右上角信息
|
||||||
|
ln: true // 是否显示行号
|
||||||
|
};
|
||||||
|
|
||||||
|
var trim = function(str){
|
||||||
|
return $.trim(str).replace(/^\n|\n$/, '');
|
||||||
|
};
|
||||||
|
|
||||||
|
// export api
|
||||||
exports('code', function(options){
|
exports('code', function(options){
|
||||||
var elems = [];
|
var opts = options = $.extend({}, config, options);
|
||||||
var trim = function(str){
|
|
||||||
return $.trim(str).replace(/^\n|\n$/, '');
|
|
||||||
}
|
|
||||||
|
|
||||||
options = options || {};
|
// 目标元素是否存在
|
||||||
options.elem = $(options.elem||'.layui-code');
|
options.elem = $(options.elem);
|
||||||
options.lang = 'lang' in options ? options.lang : 'code';
|
if(!options.elem[0]) return;
|
||||||
|
|
||||||
options.elem.each(function(){
|
// 从内至外渲染
|
||||||
elems.push(this);
|
layui.each(options.elem.get().reverse(), function(index, item){
|
||||||
});
|
|
||||||
|
|
||||||
layui.each(elems.reverse(), function(index, item){
|
|
||||||
var othis = $(item);
|
var othis = $(item);
|
||||||
var html = trim(othis.html());
|
var html = trim(othis.html());
|
||||||
|
|
||||||
|
// 合并属性上的参数,并兼容旧版本属性写法 lay-*
|
||||||
|
var options = $.extend({}, opts, lay.options(item), function(obj){
|
||||||
|
var attrs = ['title', 'height', 'encode', 'skin', 'about'];
|
||||||
|
layui.each(attrs, function(i, attr){
|
||||||
|
var value = othis.attr('lay-'+ attr);
|
||||||
|
if(typeof value === 'string'){
|
||||||
|
obj[attr] = value;
|
||||||
|
}
|
||||||
|
})
|
||||||
|
return obj;
|
||||||
|
}({}));
|
||||||
|
|
||||||
|
// 有序或无序列表
|
||||||
|
var listTag = options.ln ? 'ol' : 'ul';
|
||||||
|
var listElem = $('<'+ listTag +' class="layui-code-'+ listTag +'">');
|
||||||
|
|
||||||
|
// header
|
||||||
|
var headerElem = $('<div class="'+ ELEM_TITLE +'">');
|
||||||
|
|
||||||
|
// 添加组件 clasName
|
||||||
|
othis.addClass('layui-code-view layui-box');
|
||||||
|
|
||||||
|
// 自定义风格
|
||||||
|
if(options.skin){
|
||||||
|
if(options.skin === 'notepad') options.skin = 'dark';
|
||||||
|
othis.addClass('layui-code-'+ options.skin);
|
||||||
|
}
|
||||||
|
|
||||||
// 转义 HTML 标签
|
// 转义 HTML 标签
|
||||||
if(othis.attr('lay-encode') || options.encode){
|
if(options.encode) html = util.escape(html);
|
||||||
html = util.escape(html);
|
html = html.replace(/[\r\t\n]+/g, '</li><li>'); // 转义换行符
|
||||||
|
|
||||||
|
// 生成列表
|
||||||
|
othis.html(listElem.html('<li>' + html + '</li>'));
|
||||||
|
|
||||||
|
// 创建 header
|
||||||
|
if(!othis.children('.'+ ELEM_TITLE)[0]){
|
||||||
|
headerElem.html(options.title + (
|
||||||
|
options.about
|
||||||
|
? '<div class="layui-code-about">' + options.about + '</div>'
|
||||||
|
: ''
|
||||||
|
));
|
||||||
|
othis.prepend(headerElem);
|
||||||
}
|
}
|
||||||
|
|
||||||
othis.html('<ol class="layui-code-ol"><li>' + html.replace(/[\r\t\n]+/g, '</li><li>') + '</li></ol>')
|
// 按行数适配左边距
|
||||||
|
(function(autoIncNums){
|
||||||
|
if(autoIncNums > 0){
|
||||||
|
listElem.css('margin-left', autoIncNums + 'px');
|
||||||
|
}
|
||||||
|
})(Math.floor(listElem.find('li').length/100));
|
||||||
|
|
||||||
if(!othis.find('>.layui-code-h3')[0]){
|
// 限制最大高度
|
||||||
othis.prepend('<h3 class="layui-code-h3">'+ (othis.attr('lay-title')||options.title||'</>') + '<a href="javascript:;">'+ (othis.attr('lay-lang')||options.lang||'') +'</a>' + '</h3>');
|
if(options.height){
|
||||||
}
|
listElem.css('max-height', options.height);
|
||||||
|
|
||||||
var ol = othis.find('>.layui-code-ol');
|
|
||||||
othis.addClass('layui-box layui-code-view');
|
|
||||||
|
|
||||||
//识别皮肤
|
|
||||||
if(othis.attr('lay-skin') || options.skin){
|
|
||||||
othis.addClass('layui-code-' +(othis.attr('lay-skin') || options.skin));
|
|
||||||
}
|
|
||||||
|
|
||||||
//按行数适配左边距
|
|
||||||
if((ol.find('li').length/100|0) > 0){
|
|
||||||
ol.css('margin-left', (ol.find('li').length/100|0) + 'px');
|
|
||||||
}
|
|
||||||
|
|
||||||
//设置最大高度
|
|
||||||
if(othis.attr('lay-height') || options.height){
|
|
||||||
ol.css('max-height', othis.attr('lay-height') || options.height);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
});
|
});
|
||||||
}).addcss('modules/code.css?v=2', 'skincodecss');
|
}).addcss('modules/code.css?v=3', 'skincodecss');
|
||||||
|
|
|
@ -15,37 +15,38 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
var hint = layui.hint();
|
var hint = layui.hint();
|
||||||
var device = layui.device();
|
var device = layui.device();
|
||||||
|
|
||||||
//外部接口
|
// api
|
||||||
var table = {
|
var table = {
|
||||||
config: {
|
config: { // 全局配置项
|
||||||
checkName: 'LAY_CHECKED' //是否选中状态的字段名
|
checkName: 'LAY_CHECKED' // 是否选中状态的字段名
|
||||||
,indexName: 'LAY_TABLE_INDEX' //初始下标索引名,用于恢复排序
|
,indexName: 'LAY_TABLE_INDEX' // 初始下标索引名,用于恢复排序
|
||||||
} //全局配置项
|
,disabledName: 'LAY_DISABLED'
|
||||||
,cache: {} //数据缓存
|
}
|
||||||
|
,cache: {} // 数据缓存
|
||||||
,index: layui.table ? (layui.table.index + 10000) : 0
|
,index: layui.table ? (layui.table.index + 10000) : 0
|
||||||
|
|
||||||
//设置全局项
|
// 设置全局项
|
||||||
,set: function(options){
|
,set: function(options){
|
||||||
var that = this;
|
var that = this;
|
||||||
that.config = $.extend({}, that.config, options);
|
that.config = $.extend({}, that.config, options);
|
||||||
return that;
|
return that;
|
||||||
}
|
}
|
||||||
|
|
||||||
//事件
|
// 事件
|
||||||
,on: function(events, callback){
|
,on: function(events, callback){
|
||||||
return layui.onevent.call(this, MOD_NAME, events, callback);
|
return layui.onevent.call(this, MOD_NAME, events, callback);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//操作当前实例
|
// 操作当前实例
|
||||||
,thisTable = function(){
|
,thisTable = function(){
|
||||||
var that = this
|
var that = this
|
||||||
,options = that.config
|
,options = that.config
|
||||||
,id = options.id || options.index;
|
,id = options.id || options.index;
|
||||||
|
|
||||||
if(id){
|
if(id){
|
||||||
thisTable.that[id] = that; //记录当前实例对象
|
thisTable.that[id] = that; // 记录当前实例对象
|
||||||
thisTable.config[id] = options; //记录当前实例配置项
|
thisTable.config[id] = options; // 记录当前实例配置项
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
@ -65,44 +66,66 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//获取当前实例配置项
|
// 获取当前实例配置项
|
||||||
,getThisTableConfig = function(id){
|
,getThisTableConfig = function(id){
|
||||||
var config = thisTable.config[id];
|
var config = thisTable.config[id];
|
||||||
if(!config) hint.error(id ? ('The table instance with ID \''+ id +'\' not found') : 'ID argument required');
|
if(!config) hint.error(id ? ('The table instance with ID \''+ id +'\' not found') : 'ID argument required');
|
||||||
return config || null;
|
return config || null;
|
||||||
}
|
}
|
||||||
|
|
||||||
//解析自定义模板数据
|
// 解析自定义模板数据
|
||||||
,parseTempData = function(obj){
|
,parseTempData = function(obj){
|
||||||
obj = obj || {};
|
obj = obj || {};
|
||||||
|
|
||||||
var options = this.config || {}
|
var options = this.config || {}
|
||||||
,item3 = obj.item3 //表头数据
|
,item3 = obj.item3 // 表头数据
|
||||||
,content = obj.content; //原始内容
|
,content = obj.content; // 原始内容
|
||||||
|
|
||||||
//是否编码 HTML
|
// 是否编码 HTML
|
||||||
if(options.escape) content = util.escape(content);
|
if(options.escape) content = util.escape(content);
|
||||||
|
|
||||||
//获取模板
|
// 获取模板
|
||||||
var templet = obj.text && item3.exportTemplet || (item3.templet || item3.toolbar);
|
var templet = obj.text && item3.exportTemplet || (item3.templet || item3.toolbar);
|
||||||
|
|
||||||
//获取模板内容
|
// 获取模板内容
|
||||||
if(templet){
|
if(templet){
|
||||||
content = typeof templet === 'function'
|
content = typeof templet === 'function'
|
||||||
? templet.call(item3, obj.tplData, obj.obj)
|
? templet.call(item3, obj.tplData, obj.obj)
|
||||||
: laytpl($(templet).html() || String(content)).render(obj.tplData);
|
: laytpl($(templet).html() || String(content)).render(obj.tplData);
|
||||||
}
|
}
|
||||||
|
|
||||||
//是否只返回文本
|
// 是否只返回文本
|
||||||
return obj.text ? $('<div>'+ content +'</div>').text() : content;
|
return obj.text ? $('<div>'+ content +'</div>').text() : content;
|
||||||
}
|
}
|
||||||
|
|
||||||
//字符常量
|
// 字符
|
||||||
,MOD_NAME = 'table', ELEM = '.layui-table', THIS = 'layui-this', SHOW = 'layui-show', HIDE = 'layui-hide', HIDE_V = 'layui-hide-v', DISABLED = 'layui-disabled', NONE = 'layui-none'
|
,MOD_NAME = 'table'
|
||||||
|
,ELEM = '.layui-table'
|
||||||
|
,THIS = 'layui-this'
|
||||||
|
,SHOW = 'layui-show'
|
||||||
|
,HIDE = 'layui-hide'
|
||||||
|
,HIDE_V = 'layui-hide-v'
|
||||||
|
,DISABLED = 'layui-disabled'
|
||||||
|
,NONE = 'layui-none'
|
||||||
|
|
||||||
,ELEM_VIEW = 'layui-table-view', ELEM_TOOL = '.layui-table-tool', ELEM_BOX = '.layui-table-box', ELEM_INIT = '.layui-table-init', ELEM_HEADER = '.layui-table-header', ELEM_BODY = '.layui-table-body', ELEM_MAIN = '.layui-table-main', ELEM_FIXED = '.layui-table-fixed', ELEM_FIXL = '.layui-table-fixed-l', ELEM_FIXR = '.layui-table-fixed-r', ELEM_TOTAL = '.layui-table-total', ELEM_PAGE = '.layui-table-page', ELEM_SORT = '.layui-table-sort', ELEM_EDIT = 'layui-table-edit', ELEM_HOVER = 'layui-table-hover'
|
,ELEM_VIEW = 'layui-table-view'
|
||||||
|
,ELEM_TOOL = '.layui-table-tool'
|
||||||
|
,ELEM_BOX = '.layui-table-box'
|
||||||
|
,ELEM_INIT = '.layui-table-init'
|
||||||
|
,ELEM_HEADER = '.layui-table-header'
|
||||||
|
,ELEM_BODY = '.layui-table-body'
|
||||||
|
,ELEM_MAIN = '.layui-table-main'
|
||||||
|
,ELEM_FIXED = '.layui-table-fixed'
|
||||||
|
,ELEM_FIXL = '.layui-table-fixed-l'
|
||||||
|
,ELEM_FIXR = '.layui-table-fixed-r'
|
||||||
|
,ELEM_TOTAL = '.layui-table-total'
|
||||||
|
,ELEM_PAGE = '.layui-table-page'
|
||||||
|
,ELEM_PAGE_VIEW = '.layui-table-pageview'
|
||||||
|
,ELEM_SORT = '.layui-table-sort'
|
||||||
|
,ELEM_EDIT = 'layui-table-edit'
|
||||||
|
,ELEM_HOVER = 'layui-table-hover'
|
||||||
|
|
||||||
//thead区域模板
|
// thead 区域模板
|
||||||
,TPL_HEADER = function(options){
|
,TPL_HEADER = function(options){
|
||||||
var rowCols = '{{#if(item2.colspan){}} colspan="{{=item2.colspan}}"{{#} if(item2.rowspan){}} rowspan="{{=item2.rowspan}}"{{#}}}';
|
var rowCols = '{{#if(item2.colspan){}} colspan="{{=item2.colspan}}"{{#} if(item2.rowspan){}} rowspan="{{=item2.rowspan}}"{{#}}}';
|
||||||
|
|
||||||
|
@ -196,7 +219,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
,'{{# }; }}'
|
,'{{# }; }}'
|
||||||
|
|
||||||
,'{{# if(right){ }}'
|
,'{{# if(right){ }}'
|
||||||
,'<div class="layui-table-fixed layui-table-fixed-r">'
|
,'<div class="layui-table-fixed layui-table-fixed-r layui-hide">'
|
||||||
,'<div class="layui-table-header">'
|
,'<div class="layui-table-header">'
|
||||||
,TPL_HEADER({fixed: 'right'})
|
,TPL_HEADER({fixed: 'right'})
|
||||||
,'<div class="layui-table-mend"></div>'
|
,'<div class="layui-table-mend"></div>'
|
||||||
|
@ -217,11 +240,9 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
,'</div>'
|
,'</div>'
|
||||||
,'{{# } }}'
|
,'{{# } }}'
|
||||||
|
|
||||||
,'{{# if(d.data.page || d.data.pagebar){ }}'
|
,'<div class="layui-table-column layui-table-page layui-hide">'
|
||||||
,'<div class="layui-table-column layui-table-page">'
|
|
||||||
,'<div class="layui-inline layui-table-pageview" id="layui-table-page{{=d.index}}"></div>'
|
,'<div class="layui-inline layui-table-pageview" id="layui-table-page{{=d.index}}"></div>'
|
||||||
,'</div>'
|
,'</div>'
|
||||||
,'{{# } }}'
|
|
||||||
|
|
||||||
,'<style>'
|
,'<style>'
|
||||||
,'{{# layui.each(d.data.cols, function(i1, item1){'
|
,'{{# layui.each(d.data.cols, function(i1, item1){'
|
||||||
|
@ -233,11 +254,13 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
,' }'
|
,' }'
|
||||||
,'{{# });'
|
,'{{# });'
|
||||||
,'}); }}'
|
,'}); }}'
|
||||||
,'{{# if(d.data.lineStyle){ }}'
|
,'{{# if(d.data.lineStyle){'
|
||||||
,'.layui-table-view-{{= d.index }} .layui-table-body .layui-table .layui-table-cell{'
|
,'var cellClassName = ".layui-table-view-"+ d.index +" .layui-table-body .layui-table .layui-table-cell";'
|
||||||
,' display: -webkit-box; -webkit-box-align: center; display: -moz-box; -moz-box-align: center; white-space: normal; {{- d.data.lineStyle }} '
|
,'}}'
|
||||||
|
,'{{= cellClassName }}{'
|
||||||
|
,'display: -webkit-box; -webkit-box-align: center; white-space: normal; {{- d.data.lineStyle }} '
|
||||||
,'}'
|
,'}'
|
||||||
,'.layui-table-view-{{= d.index }} .layui-table-body .layui-table .layui-table-cell:hover{overflow: auto;}'
|
,'{{= cellClassName }}:hover{overflow: auto;}'
|
||||||
,'{{# } }}'
|
,'{{# } }}'
|
||||||
,'{{# if(d.data.css){ }}'
|
,'{{# if(d.data.css){ }}'
|
||||||
,'{{- d.data.css }}'
|
,'{{- d.data.css }}'
|
||||||
|
@ -248,7 +271,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
,_WIN = $(window)
|
,_WIN = $(window)
|
||||||
,_DOC = $(document)
|
,_DOC = $(document)
|
||||||
|
|
||||||
//构造器
|
// 构造器
|
||||||
,Class = function(options){
|
,Class = function(options){
|
||||||
var that = this;
|
var that = this;
|
||||||
that.index = ++table.index;
|
that.index = ++table.index;
|
||||||
|
@ -256,21 +279,21 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
that.render();
|
that.render();
|
||||||
};
|
};
|
||||||
|
|
||||||
//初始默认配置
|
// 初始默认配置
|
||||||
Class.prototype.config = {
|
Class.prototype.config = {
|
||||||
limit: 10 //每页显示的数量
|
limit: 10 // 每页显示的数量
|
||||||
,loading: true //请求数据时,是否显示 loading
|
,loading: true // 请求数据时,是否显示 loading
|
||||||
,escape: true // 是否开启 HTML 编码功能,即转义 html 原文
|
,escape: true // 是否开启 HTML 编码功能,即转义 html 原文
|
||||||
,cellMinWidth: 60 //所有单元格默认最小宽度
|
,cellMinWidth: 60 // 所有单元格默认最小宽度
|
||||||
,editTrigger: 'click' //单元格编辑的事件触发方式
|
,editTrigger: 'click' // 单元格编辑的事件触发方式
|
||||||
,defaultToolbar: ['filter', 'exports', 'print'] //工具栏右侧图标
|
,defaultToolbar: ['filter', 'exports', 'print'] // 工具栏右侧图标
|
||||||
,autoSort: true //是否前端自动排序。如果否,则需自主排序(通常为服务端处理好排序)
|
,autoSort: true // 是否前端自动排序。如果否,则需自主排序(通常为服务端处理好排序)
|
||||||
,text: {
|
,text: {
|
||||||
none: '无数据'
|
none: '无数据'
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
//表格渲染
|
// 表格渲染
|
||||||
Class.prototype.render = function(type){
|
Class.prototype.render = function(type){
|
||||||
var that = this
|
var that = this
|
||||||
,options = that.config;
|
,options = that.config;
|
||||||
|
@ -285,7 +308,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
,limitName: 'limit'
|
,limitName: 'limit'
|
||||||
}, options.request)
|
}, options.request)
|
||||||
|
|
||||||
//响应数据的自定义格式
|
// 响应数据的自定义格式
|
||||||
options.response = $.extend({
|
options.response = $.extend({
|
||||||
statusName: 'code' //规定数据状态的字段名称
|
statusName: 'code' //规定数据状态的字段名称
|
||||||
,statusCode: 0 //规定成功的状态码
|
,statusCode: 0 //规定成功的状态码
|
||||||
|
@ -325,10 +348,15 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
,hasRender = othis.next('.' + ELEM_VIEW)
|
,hasRender = othis.next('.' + ELEM_VIEW)
|
||||||
|
|
||||||
//主容器
|
//主容器
|
||||||
,reElem = that.elem = $('<div class="layui-form layui-border-box"></div>');
|
,reElem = that.elem = $('<div></div>');
|
||||||
|
|
||||||
reElem.addClass(function(){
|
reElem.addClass(function(){
|
||||||
var arr = [ELEM_VIEW, ELEM_VIEW +'-'+ that.index];
|
var arr = [
|
||||||
|
ELEM_VIEW,
|
||||||
|
ELEM_VIEW +'-'+ that.index,
|
||||||
|
'layui-form',
|
||||||
|
'layui-border-box'
|
||||||
|
];
|
||||||
if(options.className) arr.push(options.className);
|
if(options.className) arr.push(options.className);
|
||||||
return arr.join(' ');
|
return arr.join(' ');
|
||||||
}()).attr({
|
}()).attr({
|
||||||
|
@ -377,7 +405,12 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
if(options.cols.length > 1){
|
if(options.cols.length > 1){
|
||||||
// 补全高度
|
// 补全高度
|
||||||
var th = that.layFixed.find(ELEM_HEADER).find('th');
|
var th = that.layFixed.find(ELEM_HEADER).find('th');
|
||||||
th.height(that.layHeader.height() - 1 - parseFloat(th.css('padding-top')) - parseFloat(th.css('padding-bottom')));
|
// 固定列表头同步跟本体 th 一致高度
|
||||||
|
var headerMain = that.layHeader.first();
|
||||||
|
layui.each(th, function (thIndex, thElem) {
|
||||||
|
thElem = $(thElem);
|
||||||
|
thElem.height(headerMain.find('th[data-key="' + thElem.attr('data-key') + '"]').height() + 'px');
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
that.pullData(that.page); //请求数据
|
that.pullData(that.page); //请求数据
|
||||||
|
@ -392,7 +425,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
checkbox: 50
|
checkbox: 50
|
||||||
,radio: 50
|
,radio: 50
|
||||||
,space: 15
|
,space: 15
|
||||||
,numbers: 40
|
,numbers: 60
|
||||||
};
|
};
|
||||||
|
|
||||||
//让 type 参数兼容旧版本
|
//让 type 参数兼容旧版本
|
||||||
|
@ -429,7 +462,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
if(type === 'width') return options.clientWidth;
|
if(type === 'width') return options.clientWidth;
|
||||||
|
|
||||||
// 初始化 css 参数
|
// 初始化 css 参数
|
||||||
if(options.css){
|
if(options.css && options.css.indexOf(ELEM_VIEW) === -1){
|
||||||
var css = options.css.split('}');
|
var css = options.css.split('}');
|
||||||
layui.each(css, function(index, value){
|
layui.each(css, function(index, value){
|
||||||
if(value){
|
if(value){
|
||||||
|
@ -439,7 +472,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
options.css = css.join('}');
|
options.css = css.join('}');
|
||||||
}
|
}
|
||||||
|
|
||||||
// 封装对col的配置处理
|
// 封装对 col 的配置处理
|
||||||
var initChildCols = function (i1, item1, i2, item2) {
|
var initChildCols = function (i1, item1, i2, item2) {
|
||||||
//如果列参数为空,则移除
|
//如果列参数为空,则移除
|
||||||
if (!item2) {
|
if (!item2) {
|
||||||
|
@ -597,25 +630,25 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
|
|
||||||
//动态分配列宽
|
//动态分配列宽
|
||||||
Class.prototype.setColsWidth = function(){
|
Class.prototype.setColsWidth = function(){
|
||||||
var that = this
|
var that = this;
|
||||||
,options = that.config
|
var options = that.config;
|
||||||
,colNums = 0 //列个数
|
var colNums = 0; // 列个数
|
||||||
,autoColNums = 0 //自动列宽的列个数
|
var autoColNums = 0; // 自动列宽的列个数
|
||||||
,autoWidth = 0 //自动列分配的宽度
|
var autoWidth = 0; // 自动列分配的宽度
|
||||||
,countWidth = 0 //所有列总宽度和
|
var countWidth = 0; // 所有列总宽度和
|
||||||
,cntrWidth = that.setInit('width');
|
var cntrWidth = that.setInit('width');
|
||||||
|
|
||||||
//统计列个数
|
// 统计列个数
|
||||||
that.eachCols(function(i, item){
|
that.eachCols(function(i, item){
|
||||||
item.hide || colNums++;
|
item.hide || colNums++;
|
||||||
});
|
});
|
||||||
|
|
||||||
//减去边框差和滚动条宽
|
// 减去边框差和滚动条宽
|
||||||
cntrWidth = cntrWidth - function(){
|
cntrWidth = cntrWidth - function(){
|
||||||
return (options.skin === 'line' || options.skin === 'nob') ? 2 : colNums + 1;
|
return (options.skin === 'line' || options.skin === 'nob') ? 2 : colNums + 1;
|
||||||
}() - that.getScrollWidth(that.layMain[0]) - 1;
|
}() - that.getScrollWidth(that.layMain[0]) - 1;
|
||||||
|
|
||||||
//计算自动分配的宽度
|
// 计算自动分配的宽度
|
||||||
var getAutoWidth = function(back){
|
var getAutoWidth = function(back){
|
||||||
//遍历所有列
|
//遍历所有列
|
||||||
layui.each(options.cols, function(i1, item1){
|
layui.each(options.cols, function(i1, item1){
|
||||||
|
@ -632,10 +665,10 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
|
|
||||||
if(!back){
|
if(!back){
|
||||||
width = item2.width || 0;
|
width = item2.width || 0;
|
||||||
if(/\d+%$/.test(width)){ //列宽为百分比
|
if(/\d+%$/.test(width)){ // 列宽为百分比
|
||||||
width = Math.floor((parseFloat(width) / 100) * cntrWidth);
|
width = Math.floor((parseFloat(width) / 100) * cntrWidth);
|
||||||
width < minWidth && (width = minWidth);
|
width < minWidth && (width = minWidth);
|
||||||
} else if(!width){ //列宽未填写
|
} else if(!width){ // 列宽未填写
|
||||||
item2.width = width = 0;
|
item2.width = width = 0;
|
||||||
autoColNums++;
|
autoColNums++;
|
||||||
}
|
}
|
||||||
|
@ -649,31 +682,31 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
//如果未填充满,则将剩余宽度平分
|
// 如果未填充满,则将剩余宽度平分
|
||||||
(cntrWidth > countWidth && autoColNums) && (
|
(cntrWidth > countWidth && autoColNums) && (
|
||||||
autoWidth = (cntrWidth - countWidth) / autoColNums
|
autoWidth = (cntrWidth - countWidth) / autoColNums
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
getAutoWidth();
|
getAutoWidth();
|
||||||
getAutoWidth(true); //重新检测分配的宽度是否低于最小列宽
|
getAutoWidth(true); // 重新检测分配的宽度是否低于最小列宽
|
||||||
|
|
||||||
//记录自动列数
|
// 记录自动列数
|
||||||
that.autoColNums = autoColNums;
|
that.autoColNums = autoColNums;
|
||||||
|
|
||||||
//设置列宽
|
// 设置列宽
|
||||||
that.eachCols(function(i3, item3){
|
that.eachCols(function(i3, item3){
|
||||||
var minWidth = item3.minWidth || options.cellMinWidth;
|
var minWidth = item3.minWidth || options.cellMinWidth;
|
||||||
if(item3.colGroup || item3.hide) return;
|
if(item3.colGroup || item3.hide) return;
|
||||||
|
|
||||||
//给位分配宽的列平均分配宽
|
// 给未分配宽的列平均分配宽
|
||||||
if(item3.width === 0){
|
if(item3.width === 0){
|
||||||
that.getCssRule(options.index +'-'+ item3.key, function(item){
|
that.getCssRule(options.index +'-'+ item3.key, function(item){
|
||||||
item.style.width = Math.floor(autoWidth >= minWidth ? autoWidth : minWidth) + 'px';
|
item.style.width = Math.floor(autoWidth >= minWidth ? autoWidth : minWidth) + 'px';
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
//给设定百分比的列分配列宽
|
// 给设定百分比的列分配列宽
|
||||||
else if(/\d+%$/.test(item3.width)){
|
else if(/\d+%$/.test(item3.width)){
|
||||||
that.getCssRule(options.index +'-'+ item3.key, function(item){
|
that.getCssRule(options.index +'-'+ item3.key, function(item){
|
||||||
item.style.width = Math.floor((parseFloat(item3.width) / 100) * cntrWidth) + 'px';
|
item.style.width = Math.floor((parseFloat(item3.width) / 100) * cntrWidth) + 'px';
|
||||||
|
@ -681,7 +714,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
//填补 Math.floor 造成的数差
|
// 填补 Math.floor 造成的数差
|
||||||
var patchNums = that.layMain.width() - that.getScrollWidth(that.layMain[0])
|
var patchNums = that.layMain.width() - that.getScrollWidth(that.layMain[0])
|
||||||
- that.layMain.children('table').outerWidth();
|
- that.layMain.children('table').outerWidth();
|
||||||
|
|
||||||
|
@ -712,7 +745,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
that.loading(!0);
|
that.loading(!0);
|
||||||
};
|
};
|
||||||
|
|
||||||
//重置表格尺寸/结构
|
// 重置表格尺寸/结构
|
||||||
Class.prototype.resize = function(){
|
Class.prototype.resize = function(){
|
||||||
var that = this;
|
var that = this;
|
||||||
that.fullSize(); //让表格铺满
|
that.fullSize(); //让表格铺满
|
||||||
|
@ -720,26 +753,26 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
that.scrollPatch(); //滚动条补丁
|
that.scrollPatch(); //滚动条补丁
|
||||||
};
|
};
|
||||||
|
|
||||||
//表格重载
|
// 表格重载
|
||||||
Class.prototype.reload = function(options, deep, type){
|
Class.prototype.reload = function(options, deep, type){
|
||||||
var that = this;
|
var that = this;
|
||||||
|
|
||||||
options = options || {};
|
options = options || {};
|
||||||
delete that.haveInit;
|
delete that.haveInit;
|
||||||
|
|
||||||
//防止数组深度合并
|
// 防止数组深度合并
|
||||||
layui.each(options, function(key, item){
|
layui.each(options, function(key, item){
|
||||||
if(layui.type(item) === 'array') delete that.config[key];
|
if(layui.type(item) === 'array') delete that.config[key];
|
||||||
});
|
});
|
||||||
|
|
||||||
//对参数进行深度或浅扩展
|
// 对参数进行深度或浅扩展
|
||||||
that.config = $.extend(deep, {}, that.config, options);
|
that.config = $.extend(deep, {}, that.config, options);
|
||||||
|
|
||||||
//执行渲染
|
// 执行渲染
|
||||||
that.render(type);
|
that.render(type);
|
||||||
};
|
};
|
||||||
|
|
||||||
//异常提示
|
// 异常提示
|
||||||
Class.prototype.errorView = function(html){
|
Class.prototype.errorView = function(html){
|
||||||
var that = this
|
var that = this
|
||||||
,elemNone = that.layMain.find('.'+ NONE)
|
,elemNone = that.layMain.find('.'+ NONE)
|
||||||
|
@ -755,14 +788,14 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
|
|
||||||
that.layMain.append(that.layNone = layNone);
|
that.layMain.append(that.layNone = layNone);
|
||||||
|
|
||||||
// 异常情况下对page和total的内容处理
|
// 异常情况下对 page 和 total 的内容处理
|
||||||
that.layPage && that.layPage.addClass(HIDE).find('>div').html('');
|
that.layTotal.addClass(HIDE_V);
|
||||||
that.layTotal && that.layTotal.addClass(HIDE).find('tbody').html('');
|
that.layPage.find(ELEM_PAGE_VIEW).addClass(HIDE_V);
|
||||||
|
|
||||||
table.cache[that.key] = []; //格式化缓存数据
|
table.cache[that.key] = []; //格式化缓存数据
|
||||||
};
|
};
|
||||||
|
|
||||||
//页码
|
// 初始页码
|
||||||
Class.prototype.page = 1;
|
Class.prototype.page = 1;
|
||||||
|
|
||||||
//获得数据
|
//获得数据
|
||||||
|
@ -864,6 +897,10 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
|
|
||||||
//渲染视图
|
//渲染视图
|
||||||
,render = function(){ //后续性能提升的重点
|
,render = function(){ //后续性能提升的重点
|
||||||
|
//同步表头父列的相关值
|
||||||
|
options.HAS_SET_COLS_PATCH || that.setColsPatch();
|
||||||
|
options.HAS_SET_COLS_PATCH = true;
|
||||||
|
|
||||||
var thisCheckedRowIndex;
|
var thisCheckedRowIndex;
|
||||||
if(!sort && that.sortKey){
|
if(!sort && that.sortKey){
|
||||||
return that.sort(that.sortKey.field, that.sortKey.sort, true);
|
return that.sort(that.sortKey.field, that.sortKey.sort, true);
|
||||||
|
@ -896,7 +933,6 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
if(item3.templet) attr.push('data-content="'+ content +'"'); //自定义模板
|
if(item3.templet) attr.push('data-content="'+ content +'"'); //自定义模板
|
||||||
if(item3.toolbar) attr.push('data-off="true"'); //行工具列关闭单元格事件
|
if(item3.toolbar) attr.push('data-off="true"'); //行工具列关闭单元格事件
|
||||||
if(item3.event) attr.push('lay-event="'+ item3.event +'"'); //自定义事件
|
if(item3.event) attr.push('lay-event="'+ item3.event +'"'); //自定义事件
|
||||||
if(item3.style) attr.push('style="'+ item3.style +'"'); //自定义样式
|
|
||||||
if(item3.minWidth) attr.push('data-minwidth="'+ item3.minWidth +'"'); //单元格最小宽度
|
if(item3.minWidth) attr.push('data-minwidth="'+ item3.minWidth +'"'); //单元格最小宽度
|
||||||
return attr.join(' ');
|
return attr.join(' ');
|
||||||
}() +' class="'+ function(){ //追加样式
|
}() +' class="'+ function(){ //追加样式
|
||||||
|
@ -908,31 +944,52 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
,'<div class="layui-table-cell laytable-cell-'+ function(){ //返回对应的CSS类标识
|
,'<div class="layui-table-cell laytable-cell-'+ function(){ //返回对应的CSS类标识
|
||||||
return item3.type === 'normal' ? key
|
return item3.type === 'normal' ? key
|
||||||
: (key + ' laytable-cell-' + item3.type);
|
: (key + ' laytable-cell-' + item3.type);
|
||||||
}() +'"'+ (item3.align ? ' align="'+ item3.align +'"' : '') +'>' + function(){
|
}() +'"'
|
||||||
|
+ (item3.align ? ' align="'+ item3.align +'"' : '')
|
||||||
|
+ function(){
|
||||||
|
var attr = [];
|
||||||
|
if(item3.style) attr.push('style="'+ item3.style +'"'); //自定义单元格样式
|
||||||
|
return attr.join(' ');
|
||||||
|
}() +'>'
|
||||||
|
+ function(){
|
||||||
var tplData = $.extend(true, {
|
var tplData = $.extend(true, {
|
||||||
LAY_INDEX: numbers
|
LAY_INDEX: numbers
|
||||||
,LAY_COL: item3
|
,LAY_COL: item3
|
||||||
}, item1)
|
}, item1)
|
||||||
,checkName = table.config.checkName;
|
,checkName = table.config.checkName
|
||||||
|
,disabledName = table.config.disabledName;
|
||||||
|
|
||||||
//渲染不同风格的列
|
//渲染不同风格的列
|
||||||
switch(item3.type){
|
switch(item3.type){
|
||||||
case 'checkbox':
|
case 'checkbox': // 复选
|
||||||
return '<input type="checkbox" name="layTableCheckbox" lay-skin="primary" '+ function(){
|
return '<input type="checkbox" name="layTableCheckbox" lay-skin="primary" '+ function(){
|
||||||
|
// 其他属性
|
||||||
|
var arr = [];
|
||||||
|
|
||||||
//如果是全选
|
//如果是全选
|
||||||
if(item3[checkName]){
|
if(item3[checkName]){
|
||||||
item1[checkName] = item3[checkName];
|
item1[checkName] = item3[checkName];
|
||||||
return item3[checkName] ? 'checked' : '';
|
if(item3[checkName]) arr[0] = 'checked';
|
||||||
}
|
}
|
||||||
return tplData[checkName] ? 'checked' : '';
|
if(tplData[checkName]) arr[0] = 'checked';
|
||||||
|
|
||||||
|
// 禁选
|
||||||
|
if(tplData[disabledName]) arr.push('disabled');
|
||||||
|
|
||||||
|
return arr.join(' ');
|
||||||
}() +'>';
|
}() +'>';
|
||||||
break;
|
break;
|
||||||
case 'radio':
|
case 'radio': // 单选
|
||||||
if(tplData[checkName]){
|
if(tplData[checkName]){
|
||||||
thisCheckedRowIndex = i1;
|
thisCheckedRowIndex = i1;
|
||||||
}
|
}
|
||||||
return '<input type="radio" name="layTableRadio_'+ options.index +'" '
|
return '<input type="radio" name="layTableRadio_'+ options.index +'" '
|
||||||
+ (tplData[checkName] ? 'checked' : '') +' lay-type="layTableRadio">';
|
+ function(){
|
||||||
|
var arr = [];
|
||||||
|
if(tplData[checkName]) arr[0] = 'checked';
|
||||||
|
if(tplData[disabledName]) arr.push('disabled');
|
||||||
|
return arr.join(' ');
|
||||||
|
}() +' lay-type="layTableRadio">';
|
||||||
break;
|
break;
|
||||||
case 'numbers':
|
case 'numbers':
|
||||||
return numbers;
|
return numbers;
|
||||||
|
@ -961,7 +1018,12 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
trs_fixed_r.push('<tr data-index="'+ i1 +'">'+ tds_fixed_r.join('') + '</tr>');
|
trs_fixed_r.push('<tr data-index="'+ i1 +'">'+ tds_fixed_r.join('') + '</tr>');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 容器的滚动条位置复位
|
||||||
that.layBody.scrollTop(0);
|
that.layBody.scrollTop(0);
|
||||||
|
if(options.resetScrollbar){
|
||||||
|
that.layBody.scrollLeft(0);
|
||||||
|
}
|
||||||
|
|
||||||
that.layMain.find('.'+ NONE).remove();
|
that.layMain.find('.'+ NONE).remove();
|
||||||
that.layMain.find('tbody').html(trs.join(''));
|
that.layMain.find('tbody').html(trs.join(''));
|
||||||
that.layFixLeft.find('tbody').html(trs_fixed.join(''));
|
that.layFixLeft.find('tbody').html(trs_fixed.join(''));
|
||||||
|
@ -971,17 +1033,16 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
typeof thisCheckedRowIndex === 'number' && that.setThisRowChecked(thisCheckedRowIndex);
|
typeof thisCheckedRowIndex === 'number' && that.setThisRowChecked(thisCheckedRowIndex);
|
||||||
that.syncCheckAll();
|
that.syncCheckAll();
|
||||||
|
|
||||||
//滚动条补丁
|
// 因为 page 参数有可能发生变化 先重新铺满
|
||||||
|
that.fullSize();
|
||||||
|
|
||||||
|
// 滚动条补丁
|
||||||
that.haveInit ? that.scrollPatch() : setTimeout(function(){
|
that.haveInit ? that.scrollPatch() : setTimeout(function(){
|
||||||
that.scrollPatch();
|
that.scrollPatch();
|
||||||
}, 50);
|
}, 50);
|
||||||
that.haveInit = true;
|
that.haveInit = true;
|
||||||
|
|
||||||
layer.close(that.tipsIndex);
|
layer.close(that.tipsIndex);
|
||||||
|
|
||||||
//同步表头父列的相关值
|
|
||||||
options.HAS_SET_COLS_PATCH || that.setColsPatch();
|
|
||||||
options.HAS_SET_COLS_PATCH = true;
|
|
||||||
};
|
};
|
||||||
|
|
||||||
table.cache[that.key] = data; //记录数据
|
table.cache[that.key] = data; //记录数据
|
||||||
|
@ -990,23 +1051,22 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
//that.layPage[(count == 0 || (data.length === 0 && curr == 1)) ? 'addClass' : 'removeClass'](HIDE);
|
//that.layPage[(count == 0 || (data.length === 0 && curr == 1)) ? 'addClass' : 'removeClass'](HIDE);
|
||||||
|
|
||||||
//显示隐藏合计栏
|
//显示隐藏合计栏
|
||||||
that.layTotal[data.length == 0 ? 'addClass' : 'removeClass'](HIDE_V);;
|
that.layTotal[data.length == 0 ? 'addClass' : 'removeClass'](HIDE_V);
|
||||||
|
|
||||||
//显示隐藏分页栏
|
//显示隐藏分页栏
|
||||||
if(!options.pagebar){
|
that.layPage[(options.page || options.pagebar) ? 'removeClass' : 'addClass'](HIDE);
|
||||||
that.layPage[
|
that.layPage.find(ELEM_PAGE_VIEW)[
|
||||||
(count == 0 || (data.length === 0 && curr == 1))
|
(!options.page || count == 0 || (data.length === 0 && curr == 1))
|
||||||
? 'addClass'
|
? 'addClass'
|
||||||
: 'removeClass'
|
: 'removeClass'
|
||||||
](HIDE_V);
|
](HIDE_V);
|
||||||
}
|
|
||||||
|
|
||||||
//如果无数据
|
//如果无数据
|
||||||
if(data.length === 0){
|
if(data.length === 0){
|
||||||
that.renderForm();
|
that.renderForm();
|
||||||
return that.errorView(options.text.none);
|
return that.errorView(options.text.none);
|
||||||
} else {
|
} else {
|
||||||
that.layFixed.removeClass(HIDE);
|
that.layFixLeft.removeClass(HIDE);
|
||||||
}
|
}
|
||||||
|
|
||||||
//如果执行初始排序
|
//如果执行初始排序
|
||||||
|
@ -1077,9 +1137,11 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
//td 内容
|
//td 内容
|
||||||
var content = function(){
|
var content = function(){
|
||||||
var text = item3.totalRowText || ''
|
var text = item3.totalRowText || ''
|
||||||
,decimals = item3.totalRowDecimals || 2
|
,decimals = 'totalRowDecimals' in item3 ? item3.totalRowDecimals : 2
|
||||||
,thisTotalNum = parseFloat(totalNums[field]).toFixed(decimals)
|
,thisTotalNum = parseFloat(totalNums[field]).toFixed(decimals)
|
||||||
,tplData = {}
|
,tplData = {
|
||||||
|
LAY_COL: item3
|
||||||
|
}
|
||||||
,getContent;
|
,getContent;
|
||||||
|
|
||||||
tplData[field] = thisTotalNum;
|
tplData[field] = thisTotalNum;
|
||||||
|
@ -1097,7 +1159,6 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
,td = ['<td data-field="'+ field +'" data-key="'+ options.index + '-'+ item3.key +'" '+ function(){
|
,td = ['<td data-field="'+ field +'" data-key="'+ options.index + '-'+ item3.key +'" '+ function(){
|
||||||
var attr = [];
|
var attr = [];
|
||||||
if(item3.align) attr.push('align="'+ item3.align +'"'); //对齐方式
|
if(item3.align) attr.push('align="'+ item3.align +'"'); //对齐方式
|
||||||
if(item3.style) attr.push('style="'+ item3.style +'"'); //自定义样式
|
|
||||||
if(item3.minWidth) attr.push('data-minwidth="'+ item3.minWidth +'"'); //单元格最小宽度
|
if(item3.minWidth) attr.push('data-minwidth="'+ item3.minWidth +'"'); //单元格最小宽度
|
||||||
return attr.join(' ');
|
return attr.join(' ');
|
||||||
}() +' class="'+ function(){ //追加样式
|
}() +' class="'+ function(){ //追加样式
|
||||||
|
@ -1110,13 +1171,19 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
var str = (options.index + '-' + item3.key);
|
var str = (options.index + '-' + item3.key);
|
||||||
return item3.type === 'normal' ? str
|
return item3.type === 'normal' ? str
|
||||||
: (str + ' laytable-cell-' + item3.type);
|
: (str + ' laytable-cell-' + item3.type);
|
||||||
}() +'">' + function(){
|
}() +'"'+ function(){
|
||||||
|
var attr = [];
|
||||||
|
if(item3.style) attr.push('style="'+ item3.style +'"'); //自定义单元格样式
|
||||||
|
return attr.join(' ');
|
||||||
|
}() +'>' + function(){
|
||||||
var totalRow = item3.totalRow || options.totalRow;
|
var totalRow = item3.totalRow || options.totalRow;
|
||||||
|
|
||||||
//如果 totalRow 参数为字符类型,则解析为自定义模版
|
//如果 totalRow 参数为字符类型,则解析为自定义模版
|
||||||
if(typeof totalRow === 'string'){
|
if(typeof totalRow === 'string'){
|
||||||
return laytpl(totalRow).render($.extend({
|
return laytpl(totalRow).render($.extend({
|
||||||
TOTAL_NUMS: content
|
TOTAL_NUMS: totalNums[field]
|
||||||
}, item3))
|
,LAY_COL: item3
|
||||||
|
}, item3));
|
||||||
}
|
}
|
||||||
return content;
|
return content;
|
||||||
}()
|
}()
|
||||||
|
@ -1218,10 +1285,11 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
that.renderData(res, that.page, that.count, true);
|
that.renderData(res, that.page, that.count, true);
|
||||||
|
|
||||||
if(formEvent){
|
if(formEvent){
|
||||||
layui.event.call(th, MOD_NAME, 'sort('+ filter +')', {
|
options.initSort = {
|
||||||
field: field
|
field: field
|
||||||
,type: type
|
,type: type
|
||||||
});
|
};
|
||||||
|
layui.event.call(th, MOD_NAME, 'sort('+ filter +')', options.initSort);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -1253,7 +1321,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
thisData[index][options.checkName] = checked;
|
thisData[index][options.checkName] = checked;
|
||||||
};
|
};
|
||||||
|
|
||||||
//同步全选按钮状态
|
// 同步全选按钮状态
|
||||||
Class.prototype.syncCheckAll = function(){
|
Class.prototype.syncCheckAll = function(){
|
||||||
var that = this
|
var that = this
|
||||||
,options = that.config
|
,options = that.config
|
||||||
|
@ -1284,7 +1352,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
//获取cssRule
|
// 获取 cssRule
|
||||||
Class.prototype.getCssRule = function(key, callback){
|
Class.prototype.getCssRule = function(key, callback){
|
||||||
var that = this
|
var that = this
|
||||||
,style = that.elem.find('style')[0]
|
,style = that.elem.find('style')[0]
|
||||||
|
@ -1320,17 +1388,17 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
bodyHeight -= (that.layTool.outerHeight() || 50);
|
bodyHeight -= (that.layTool.outerHeight() || 50);
|
||||||
}
|
}
|
||||||
|
|
||||||
//减去统计朗的高度
|
//减去统计栏的高度
|
||||||
if(options.totalRow){
|
if(options.totalRow){
|
||||||
bodyHeight -= (that.layTotal.outerHeight() || 40);
|
bodyHeight -= (that.layTotal.outerHeight() || 40);
|
||||||
}
|
}
|
||||||
|
|
||||||
//减去分页栏的高度
|
//减去分页栏的高度
|
||||||
if(options.page){
|
if(options.page || options.pagebar){
|
||||||
bodyHeight -= (that.layPage.outerHeight() || 41);
|
bodyHeight -= (that.layPage.outerHeight() || 43);
|
||||||
}
|
}
|
||||||
|
|
||||||
that.layMain.css('height', bodyHeight - 2);
|
that.layMain.outerHeight(bodyHeight);
|
||||||
};
|
};
|
||||||
|
|
||||||
//获取滚动条宽度
|
//获取滚动条宽度
|
||||||
|
@ -1643,7 +1711,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
fields = fields || {};
|
fields = fields || {};
|
||||||
layui.each(fields, function(key, value){
|
layui.each(fields, function(key, value){
|
||||||
var td = tr.children('td[data-field="'+ key +'"]')
|
var td = tr.children('td[data-field="'+ key +'"]')
|
||||||
,cell = td.children(ELEM_CELL); //获取当前修改的列
|
,cell = td.children(ELEM_CELL); //获取当前修改的列
|
||||||
|
|
||||||
//更新缓存中的数据
|
//更新缓存中的数据
|
||||||
if(key in data) data[key] = value;
|
if(key in data) data[key] = value;
|
||||||
|
@ -1660,7 +1728,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
item3.templet && that.renderForm();
|
item3.templet && that.renderForm();
|
||||||
} else if(item3.templet || item3.toolbar){ //更新所有其他列的模板
|
} else if(item3.templet || item3.toolbar){ //更新所有其他列的模板
|
||||||
var thisTd = tr.children('td[data-field="'+ (item3.field || i) +'"]')
|
var thisTd = tr.children('td[data-field="'+ (item3.field || i) +'"]')
|
||||||
,content = data[item3.field];
|
,content = data[item3.field];
|
||||||
thisTd.children(ELEM_CELL).html(parseTempData.call(that, {
|
thisTd.children(ELEM_CELL).html(parseTempData.call(that, {
|
||||||
item3: item3
|
item3: item3
|
||||||
,content: content
|
,content: content
|
||||||
|
@ -1671,6 +1739,8 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
that.renderForm();
|
||||||
}
|
}
|
||||||
}, sets);
|
}, sets);
|
||||||
};
|
};
|
||||||
|
@ -1678,14 +1748,16 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
//复选框选择
|
//复选框选择
|
||||||
that.elem.on('click', 'input[name="layTableCheckbox"]+', function(){ //替代元素的 click 事件
|
that.elem.on('click', 'input[name="layTableCheckbox"]+', function(){ //替代元素的 click 事件
|
||||||
var checkbox = $(this).prev()
|
var checkbox = $(this).prev()
|
||||||
,childs = that.layBody.find('input[name="layTableCheckbox"]')
|
,children = that.layBody.find('input[name="layTableCheckbox"]')
|
||||||
,index = checkbox.parents('tr').eq(0).data('index')
|
,index = checkbox.parents('tr').eq(0).data('index')
|
||||||
,checked = checkbox[0].checked
|
,checked = checkbox[0].checked
|
||||||
,isAll = checkbox.attr('lay-filter') === 'layTableAllChoose';
|
,isAll = checkbox.attr('lay-filter') === 'layTableAllChoose';
|
||||||
|
|
||||||
|
if(checkbox[0].disabled) return;
|
||||||
|
|
||||||
//全选
|
//全选
|
||||||
if(isAll){
|
if(isAll){
|
||||||
childs.each(function(i, item){
|
children.each(function(i, item){
|
||||||
item.checked = checked;
|
item.checked = checked;
|
||||||
that.setCheckData(i, checked);
|
that.setCheckData(i, checked);
|
||||||
});
|
});
|
||||||
|
@ -1696,10 +1768,15 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
that.syncCheckAll();
|
that.syncCheckAll();
|
||||||
}
|
}
|
||||||
|
|
||||||
layui.event.call(checkbox[0], MOD_NAME, 'checkbox('+ filter +')', commonMember.call(checkbox[0], {
|
// 事件
|
||||||
checked: checked
|
layui.event.call(
|
||||||
,type: isAll ? 'all' : 'one'
|
checkbox[0],
|
||||||
}));
|
MOD_NAME, 'checkbox('+ filter +')',
|
||||||
|
commonMember.call(checkbox[0], {
|
||||||
|
checked: checked,
|
||||||
|
type: isAll ? 'all' : 'one'
|
||||||
|
})
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
//单选框选择
|
//单选框选择
|
||||||
|
@ -1760,7 +1837,6 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
,data = table.cache[that.key][index];
|
,data = table.cache[that.key][index];
|
||||||
|
|
||||||
data[field] = value; //更新缓存中的值
|
data[field] = value; //更新缓存中的值
|
||||||
|
|
||||||
layui.event.call(this, MOD_NAME, 'edit('+ filter +')', commonMember.call(this, {
|
layui.event.call(this, MOD_NAME, 'edit('+ filter +')', commonMember.call(this, {
|
||||||
value: value
|
value: value
|
||||||
,field: field
|
,field: field
|
||||||
|
@ -2022,13 +2098,21 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
// 找到它的子列所在cols的下标
|
// 找到它的子列所在cols的下标
|
||||||
var i2 = i1 + (parseInt(item2.rowspan) || 1);
|
var i2 = i1 + (parseInt(item2.rowspan) || 1);
|
||||||
layui.each(cols[i2], function (i22, item22) {
|
layui.each(cols[i2], function (i22, item22) {
|
||||||
//如果子列已经被标注为{PARENT_COL_INDEX},或者子列累计 colspan 数等于父列定义的 colspan,则跳出当前子列循环
|
if (item22.parentKey) { // 如果字段信息中包含了parentKey和key信息
|
||||||
if (item22.PARENT_COL_INDEX || (childIndex >= 1 && childIndex == (item2.colspan || 1))) return;
|
if (item22.parentKey === item2.key) {
|
||||||
item22.PARENT_COL_INDEX = index;
|
item22.PARENT_COL_INDEX = index;
|
||||||
|
item2.CHILD_COLS.push(item22);
|
||||||
item2.CHILD_COLS.push(item22);
|
eachChildCols(index, cols, i2, item22);
|
||||||
childIndex = childIndex + (item22.hide ? 0 : parseInt(item22.colspan > 1 ? item22.colspan : 1));
|
}
|
||||||
eachChildCols(index, cols, i2, item22);
|
} else {
|
||||||
|
// 没有key信息以colspan数量所谓判断标准
|
||||||
|
//如果子列已经被标注为{PARENT_COL_INDEX},或者子列累计 colspan 数等于父列定义的 colspan,则跳出当前子列循环
|
||||||
|
if (item22.PARENT_COL_INDEX || (childIndex >= 1 && childIndex == (item2.colspan || 1))) return;
|
||||||
|
item22.PARENT_COL_INDEX = index;
|
||||||
|
item2.CHILD_COLS.push(item22);
|
||||||
|
childIndex = childIndex + (item22.hide ? 0 : parseInt(item22.colspan > 1 ? item22.colspan : 1));
|
||||||
|
eachChildCols(index, cols, i2, item22);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
@ -2064,9 +2148,10 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
// 表格选中状态
|
// 表格选中状态
|
||||||
table.checkStatus = function(id){
|
table.checkStatus = function(id){
|
||||||
var nums = 0
|
var nums = 0
|
||||||
,invalidNum = 0
|
,invalidNum = 0
|
||||||
,arr = []
|
,arr = []
|
||||||
,data = table.cache[id] || [];
|
,data = table.cache[id] || [];
|
||||||
|
|
||||||
//计算全选个数
|
//计算全选个数
|
||||||
layui.each(data, function(i, item){
|
layui.each(data, function(i, item){
|
||||||
if(layui.type(item) === 'array'){
|
if(layui.type(item) === 'array'){
|
||||||
|
@ -2075,7 +2160,9 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
}
|
}
|
||||||
if(item[table.config.checkName]){
|
if(item[table.config.checkName]){
|
||||||
nums++;
|
nums++;
|
||||||
arr.push(table.clearCacheKey(item));
|
if(!item[table.config.disabledName]){
|
||||||
|
arr.push(table.clearCacheKey(item));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return {
|
return {
|
||||||
|
@ -2212,12 +2299,14 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
args[3] = 'reloadData';
|
args[3] = 'reloadData';
|
||||||
|
|
||||||
// 过滤与数据无关的参数
|
// 过滤与数据无关的参数
|
||||||
var dataParams = [
|
var dataParams = new RegExp('^('+ [
|
||||||
'data', 'url', 'where', 'page', 'limit',
|
'data', 'url', 'method', 'contentType',
|
||||||
|
'headers', 'where', 'page', 'limit',
|
||||||
'request', 'response', 'parseData'
|
'request', 'response', 'parseData'
|
||||||
];
|
].join('|') + ')$');
|
||||||
|
|
||||||
layui.each(args[1], function (key, value) {
|
layui.each(args[1], function (key, value) {
|
||||||
if(dataParams.indexOf(key) === -1){
|
if(!dataParams.test(key)){
|
||||||
delete args[1][key];
|
delete args[1][key];
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -2236,6 +2325,7 @@ layui.define(['laytpl', 'laypage', 'layer', 'form', 'util'], function(exports){
|
||||||
data = $.extend({}, data);
|
data = $.extend({}, data);
|
||||||
delete data[table.config.checkName];
|
delete data[table.config.checkName];
|
||||||
delete data[table.config.indexName];
|
delete data[table.config.indexName];
|
||||||
|
delete data[table.config.disabledName];
|
||||||
return data;
|
return data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue