You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

185 lines
6.1 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

/*
create by yangjinhua
data:2016-11-04
*/
define(function(require, exports, module) {
require('./pagination.css')
var tpl = require('./pagination.tpl')
function Pagination(args) {
this.$container = args.container;
this.$container.append(tpl);
this.actions = args.actions;
this.pageSize = args.pageSize;
this.totalRows = args.totalRows;
this.pageIndex = 1;
this.pageCount = Math.ceil(args.totalRows / args.pageSize);
this.init();
this.addEvents();
}
Pagination.prototype.init = function() {
var self = this;
var container = this.$container.find('.fdpr-pagination-container');
//初始化页码
self.setRefreshPages(0, self.pageSize, self.totalRows)
//首页
var $btnFirstPage = container.find('.edp-first');
$btnFirstPage.on('click', function() {
if ($(this).hasClass('pagi-button-disabled')) return;
if (self.actions.click && typeof self.actions.click == 'function') {
self.pageIndex = 1;
self.actions.click('firstPage', self.pageIndex - 1);
}
});
//上一页
var $btnPrevPage = container.find('.edp-previous');
$btnPrevPage.on('click', function() {
if ($(this).hasClass('pagi-button-disabled')) return;
if (self.actions.click && typeof self.actions.click == 'function') {
self.pageIndex = parseInt(self.pageIndex - 1);
self.actions.click('prevPage', self.pageIndex - 1);
}
});
//下一页
var $btnNextPage = container.find('.edp-next');
$btnNextPage.on('click', function() {
if ($(this).hasClass('pagi-button-disabled')) return;
if (self.actions.click && typeof self.actions.click == 'function') {
self.pageIndex = parseInt(self.pageIndex + 1);
self.actions.click('nextPage', self.pageIndex - 1);
}
});
//末页
var $btnLastPage = container.find('.edp-last');
$btnLastPage.on('click', function() {
if ($(this).hasClass('pagi-button-disabled')) return;
if (self.actions.click && typeof self.actions.click == 'function') {
self.pageIndex = parseInt(self.pageCount);
self.actions.click('lastPage', self.pageCount - 1);
}
});
//跳转
var $btnLinkPage = container.find('.edp-link');
$btnLinkPage.on('click', function() {
if ($(this).hasClass('pagi-button-disabled')) return;
var linkPage = parseInt(container.find('.edp-pagination').val());
if ( isNaN(linkPage) ) {
ER.messager.err('必须输入数字!');
container.find('.edp-pagination').val('');
return;
}
if (linkPage === self.pageIndex) return;
if (linkPage === NaN || container.find('.edp-pagination').val() === '') {
ER.messager.tip('跳转页码不能为空 ,请输入。');
return;
}
if (linkPage < 1) {
ER.messager.tip('跳转页码不能小于1 ,请重新输入。');
return;
}
if (linkPage > self.pageCount) {
ER.messager.tip('跳转页码不能大于最大页数 ,请重新输入。');
return;
}
if (self.actions.click && typeof self.actions.click == 'function') {
self.pageIndex = linkPage;
self.actions.click('linkPage', self.pageIndex - 1);
}
});
};
Pagination.prototype.addEvents = function() {
var container = this.$container.find('.fdpr-pagination-container');
ER.bindVKEvents(container.find('.edp-pagination')[0]);
};
/**
* 初始化按钮可用性
* @return {[type]} [description]
*/
Pagination.prototype.initBtnDisable = function() {
var self = this;
var pageContainer = this.$container.find('.fdpr-pagination-container');
if (self.pageIndex === 1 && (self.pageCount === 0 || self.pageCount === 1)) {
pageContainer.find('.edp-first').addClass('pagi-button-disabled');
pageContainer.find('.edp-previous').addClass('pagi-button-disabled');
pageContainer.find('.edp-next').addClass('pagi-button-disabled');
pageContainer.find('.edp-last').addClass('pagi-button-disabled');
pageContainer.find('.edp-link').addClass('pagi-button-disabled');
} else if (self.pageIndex === 1) {
pageContainer.find('.edp-first').addClass('pagi-button-disabled');
pageContainer.find('.edp-previous').addClass('pagi-button-disabled');
pageContainer.find('.edp-next').removeClass('pagi-button-disabled');
pageContainer.find('.edp-last').removeClass('pagi-button-disabled');
pageContainer.find('.edp-link').removeClass('pagi-button-disabled');
} else if (self.pageIndex === self.pageCount) {
pageContainer.find('.edp-first').removeClass('pagi-button-disabled');
pageContainer.find('.edp-previous').removeClass('pagi-button-disabled');
pageContainer.find('.edp-next').addClass('pagi-button-disabled');
pageContainer.find('.edp-last').addClass('pagi-button-disabled');
pageContainer.find('.edp-link').removeClass('pagi-button-disabled');
} else {
pageContainer.find('.edp-first').removeClass('pagi-button-disabled');
pageContainer.find('.edp-previous').removeClass('pagi-button-disabled');
pageContainer.find('.edp-next').removeClass('pagi-button-disabled');
pageContainer.find('.edp-last').removeClass('pagi-button-disabled');
pageContainer.find('.edp-link').removeClass('pagi-button-disabled');
}
}
/**
* [初始化页码及按钮可用性]
* @param {[type]} 页码从0开始 [description]
* @param {[type]} 每页显示数 [description]
* @param {[type]} 总数据条数 [description]
*/
Pagination.prototype.setRefreshPages = function(pageIndex, pageSize, totalRows) {
var self = this;
var pageContainer = this.$container.find('.fdpr-pagination-container');
var pageCount = Math.ceil(totalRows / pageSize)
var $pagesize = pageContainer.find('.edp-pageNumber');
$pagesize.text(pageSize);
var $totalRows = pageContainer.find('.edp-allNum');
$totalRows.text(totalRows);
var $pageIndex = pageContainer.find('.edp-currentPage');
$pageIndex.text(pageIndex + 1);
self.pageIndex = pageIndex + 1;
var $pageCount = pageContainer.find('.edp-allPage');
$pageCount.text(pageCount);
self.pageCount = pageCount;
this.initBtnDisable();
}
/**
* [获取分页信息]
* @return {[type]} [description]
*/
Pagination.prototype.getPageInfo = function() {
return {
pageIndex: this.pageIndex,
pageCount: this.pageCount,
pagesize: this.pagesize,
totalRows: this.totalRows
};
};
return Pagination;
});