mirror of https://github.com/layui/layui
优化 laypage 代码书写规范
parent
b0eafb5e92
commit
2cd5c1a254
|
@ -5,15 +5,16 @@
|
|||
layui.define(function(exports){
|
||||
"use strict";
|
||||
|
||||
var doc = document
|
||||
,id = 'getElementById'
|
||||
,tag = 'getElementsByTagName'
|
||||
var doc = document;
|
||||
var id = 'getElementById';
|
||||
var tag = 'getElementsByTagName';
|
||||
|
||||
// 字符常量
|
||||
,MOD_NAME = 'laypage', DISABLED = 'layui-disabled'
|
||||
var MOD_NAME = 'laypage';
|
||||
var DISABLED = 'layui-disabled';
|
||||
|
||||
// 构造器
|
||||
,Class = function(options){
|
||||
var Class = function(options){
|
||||
var that = this;
|
||||
that.config = options || {};
|
||||
that.config.index = ++laypage.index;
|
||||
|
@ -77,19 +78,19 @@ layui.define(function(exports){
|
|||
// 计算当前组
|
||||
var index = config.pages > groups
|
||||
? Math.ceil( (config.curr + (groups > 1 ? 1 : 0)) / (groups > 0 ? groups : 1) )
|
||||
: 1
|
||||
: 1;
|
||||
|
||||
// 视图片段
|
||||
,views = {
|
||||
var views = {
|
||||
// 上一页
|
||||
prev: function(){
|
||||
return config.prev
|
||||
? '<a class="layui-laypage-prev'+ (config.curr == 1 ? (' ' + DISABLED) : '') +'" data-page="'+ (config.curr - 1) +'">'+ config.prev +'</a>'
|
||||
: '';
|
||||
}()
|
||||
}(),
|
||||
|
||||
// 页码
|
||||
,page: function(){
|
||||
page: function(){
|
||||
var pager = [];
|
||||
|
||||
// 数据量为0时,不输出页码
|
||||
|
@ -104,8 +105,8 @@ layui.define(function(exports){
|
|||
|
||||
// 计算当前页码组的起始页
|
||||
var halve = Math.floor((groups-1)/2) // 页码数等分
|
||||
,start = index > 1 ? config.curr - halve : 1
|
||||
,end = index > 1 ? (function(){
|
||||
var start = index > 1 ? config.curr - halve : 1;
|
||||
var end = index > 1 ? (function(){
|
||||
var max = config.curr + (groups - halve - 1);
|
||||
return max > config.pages ? config.pages : max;
|
||||
}()) : groups;
|
||||
|
@ -141,20 +142,20 @@ layui.define(function(exports){
|
|||
}
|
||||
|
||||
return pager.join('');
|
||||
}()
|
||||
}(),
|
||||
|
||||
// 下一页
|
||||
,next: function(){
|
||||
next: function(){
|
||||
return config.next
|
||||
? '<a class="layui-laypage-next'+ (config.curr == config.pages ? (' ' + DISABLED) : '') +'" data-page="'+ (config.curr + 1) +'">'+ config.next +'</a>'
|
||||
: '';
|
||||
}()
|
||||
}(),
|
||||
|
||||
// 数据总数
|
||||
,count: '<span class="layui-laypage-count">共 '+ config.count +' 条</span>'
|
||||
count: '<span class="layui-laypage-count">共 '+ config.count +' 条</span>',
|
||||
|
||||
// 每页条数
|
||||
,limit: function(){
|
||||
limit: function(){
|
||||
var options = ['<span class="layui-laypage-limits"><select lay-ignore>'];
|
||||
layui.each(config.limits, function(index, item){
|
||||
options.push(
|
||||
|
@ -164,26 +165,30 @@ layui.define(function(exports){
|
|||
);
|
||||
});
|
||||
return options.join('') +'</select></span>';
|
||||
}()
|
||||
}(),
|
||||
|
||||
// 刷新当前页
|
||||
,refresh: ['<a data-page="'+ config.curr +'" class="layui-laypage-refresh">'
|
||||
,'<i class="layui-icon layui-icon-refresh"></i>'
|
||||
,'</a>'].join('')
|
||||
refresh: [
|
||||
'<a data-page="'+ config.curr +'" class="layui-laypage-refresh">',
|
||||
'<i class="layui-icon layui-icon-refresh"></i>',
|
||||
'</a>'
|
||||
].join(''),
|
||||
|
||||
// 跳页区域
|
||||
,skip: function(){
|
||||
return ['<span class="layui-laypage-skip">到第'
|
||||
,'<input type="text" min="1" value="'+ config.curr +'" class="layui-input">'
|
||||
,'页<button type="button" class="layui-laypage-btn">确定</button>'
|
||||
,'</span>'].join('');
|
||||
skip: function(){
|
||||
return [
|
||||
'<span class="layui-laypage-skip">到第',
|
||||
'<input type="text" min="1" value="'+ config.curr +'" class="layui-input">',
|
||||
'页<button type="button" class="layui-laypage-btn">确定</button>',
|
||||
'</span>'
|
||||
].join('');
|
||||
}()
|
||||
};
|
||||
|
||||
return ['<div class="layui-box layui-laypage layui-laypage-'+ (config.theme ? (
|
||||
/^#/.test(config.theme) ? 'molv' : config.theme
|
||||
) : 'default') +'" id="layui-laypage-'+ config.index +'">'
|
||||
,function(){
|
||||
) : 'default') +'" id="layui-laypage-'+ config.index +'">',
|
||||
function(){
|
||||
var plate = [];
|
||||
layui.each(config.layout, function(index, item){
|
||||
if(views[item]){
|
||||
|
@ -191,20 +196,21 @@ layui.define(function(exports){
|
|||
}
|
||||
});
|
||||
return plate.join('');
|
||||
}()
|
||||
,'</div>'].join('');
|
||||
}(),
|
||||
'</div>'].join('');
|
||||
};
|
||||
|
||||
// 跳页的回调
|
||||
Class.prototype.jump = function(elem, isskip){
|
||||
if(!elem) return;
|
||||
var that = this
|
||||
,config = that.config
|
||||
,childs = elem.children
|
||||
,btn = elem[tag]('button')[0]
|
||||
,input = elem[tag]('input')[0]
|
||||
,select = elem[tag]('select')[0]
|
||||
,skip = function(){
|
||||
|
||||
var that = this;
|
||||
var config = that.config;
|
||||
var childs = elem.children;
|
||||
var btn = elem[tag]('button')[0];
|
||||
var input = elem[tag]('input')[0];
|
||||
var select = elem[tag]('select')[0];
|
||||
var skip = function(){
|
||||
var curr = Number(input.value.replace(/\s|\D/g, ''));
|
||||
if(curr){
|
||||
config.curr = curr;
|
||||
|
@ -249,12 +255,19 @@ layui.define(function(exports){
|
|||
// 输入页数字控制
|
||||
Class.prototype.skip = function(elem){
|
||||
if(!elem) return;
|
||||
var that = this, input = elem[tag]('input')[0];
|
||||
|
||||
var that = this;
|
||||
var input = elem[tag]('input')[0];
|
||||
|
||||
if(!input) return;
|
||||
|
||||
// 键盘事件
|
||||
laypage.on(input, 'keyup', function(e){
|
||||
var value = this.value
|
||||
,keyCode = e.keyCode;
|
||||
var value = this.value;
|
||||
var keyCode = e.keyCode;
|
||||
|
||||
if(/^(37|38|39|40)$/.test(keyCode)) return;
|
||||
|
||||
if(/\D/.test(value)){
|
||||
this.value = value.replace(/\D/, '');
|
||||
}
|
||||
|
@ -266,10 +279,10 @@ layui.define(function(exports){
|
|||
|
||||
// 渲染分页
|
||||
Class.prototype.render = function(load){
|
||||
var that = this
|
||||
,config = that.config
|
||||
,type = that.type()
|
||||
,view = that.view();
|
||||
var that = this;
|
||||
var config = that.config;
|
||||
var type = that.type();
|
||||
var view = that.view();
|
||||
|
||||
if(type === 2){
|
||||
config.elem && (config.elem.innerHTML = view);
|
||||
|
@ -299,9 +312,9 @@ layui.define(function(exports){
|
|||
render: function(options){
|
||||
var o = new Class(options);
|
||||
return o.index;
|
||||
}
|
||||
,index: layui.laypage ? (layui.laypage.index + 10000) : 0
|
||||
,on: function(elem, even, fn){
|
||||
},
|
||||
index: layui.laypage ? (layui.laypage.index + 10000) : 0,
|
||||
on: function(elem, even, fn){
|
||||
elem.attachEvent ? elem.attachEvent('on'+ even, function(e){ // for ie
|
||||
e.target = e.srcElement;
|
||||
fn.call(elem, e);
|
||||
|
|
Loading…
Reference in New Issue