HFish/static/libs/page/jquery.sPage.js
SanJin b97dae897a ~ 上钩列表分页优化
~ 上钩列表支持批量删除
~ 上钩列表长度展示
~ 上钩列表支持集群筛选
~ 集群页面支持删除
~ 改用 IPIP 本地库获取地理信息
~ 支持 WebHook Api 通知
~ 提供获取上钩列表 API
~ WEB,暗网蜜罐 API 移到各种服务上,抛开 Admin
~ 修复暗网蜜罐使用问题
~ 修复集群取 IP 错误问题
~ SSH 高交互支持
2019-08-25 01:00:42 +08:00

158 lines
6.8 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
* jQuery分页插件sPage
* by 凌晨四点半
* 20190729
* v1.2.0
* https://github.com/jvbei/sPage
*/
; (function ($, window, document, undefined) {
'use strict';
var defaults = {
page: 1,//当前页
pageSize: 10,//每页显示多少条
total: 0,//数据总条数
showTotal: false,//是否显示总条数
totalTxt: "共{total}条",//数据总条数文字描述
noData: false,//没有数据时是否显示分页默认false不显示true显示第一页
showSkip: false,//是否显示跳页
showPN: true,//是否显示上下翻页
prevPage: "上一页",//上翻页按钮文字
nextPage: "下一页",//下翻页按钮文字
backFun: function (page) {
//点击分页按钮回调函数,返回当前页码
}
};
function Plugin(element, options) {
this.element = $(element);
this.settings = $.extend({}, defaults, options);
this.pageNum = 1, //记录当前页码
this.pageList = [], //页码集合
this.pageTatol = 0; //记录总页数
this.init();
}
$.extend(Plugin.prototype, {
init: function () {
this.element.empty();
this.viewHtml();
},
creatHtml: function (i) {
i == this.settings.page ? this.pageList.push('<span class="active" data-page=' + i + '>' + i + '</span>') : this.pageList.push('<span data-page=' + i + '>' + i + '</span>');
},
viewHtml: function () {
var settings = this.settings;
var pageTatol = 0;
if (settings.total > 0) {
pageTatol = Math.ceil(settings.total / settings.pageSize);
} else {
if (settings.noData) {
pageTatol = 1;
settings.page = 1;
settings.total = 0;
} else {
return;
}
}
this.pageTatol = pageTatol;
var pageArr = [];//分页元素集合减少dom重绘次数
this.pageNum = settings.page;
if (settings.showTotal) {
pageArr.push('<div class="spage-total">' + settings.totalTxt.replace(/\{(\w+)\}/gi, settings.total) + '</div>');
}
pageArr.push('<div class="spage-number">');
this.pageList = [];//页码元素集合,包括上下页
if (settings.showPN) {
settings.page == 1 ? this.pageList.push('<span class="span-disabled" data-page="prev">' + settings.prevPage + '</span>') : this.pageList.push('<span data-page="prev">' + settings.prevPage + '</span>');
}
if (pageTatol <= 6) {
for (var i = 1; i < pageTatol + 1; i++) {
this.creatHtml(i);
}
} else {
if (settings.page < 5) {
for (var i = 1; i <= 5; i++) {
this.creatHtml(i);
}
this.pageList.push('<span data-page="none">...</span><span data-page=' + pageTatol + '>' + pageTatol + '</span>');
} else if (settings.page > pageTatol - 4) {
this.pageList.push('<span data-page="1">1</span><span data-page="none">...</span>');
for (var i = pageTatol - 4; i <= pageTatol; i++) {
this.creatHtml(i);
}
} else {
this.pageList.push('<span data-page="1">1</span><span data-page="none">...</span>');
for (var i = settings.page - 2; i <= Number(settings.page) + 2; i++) {
this.creatHtml(i);
}
this.pageList.push('<span data-page="none">...</span><span data-page=' + pageTatol + '>' + pageTatol + '</span>');
}
}
if (settings.showPN) {
settings.page == pageTatol ? this.pageList.push('<span class="span-disabled" data-page="next">' + settings.nextPage + '</span>') : this.pageList.push('<span data-page="next">' + settings.nextPage + '</span>');
}
pageArr.push(this.pageList.join(''));
pageArr.push('</div>');
if (settings.showSkip) {
pageArr.push('<div class="spage-skip">跳至&nbsp;<input type="text" value="' + settings.page + '"/>&nbsp;&nbsp;&nbsp;<span data-page="go">确定</span></div>');
}
this.element.html(pageArr.join(''));
this.clickBtn();
},
clickBtn: function () {
var that = this;
var settings = this.settings;
var ele = this.element;
var pageTatol = this.pageTatol;
this.element.off("click", "span");
this.element.on("click", "span", function () {
var pageText = $(this).data("page");
switch (pageText) {
case "prev":
settings.page = settings.page - 1 >= 1 ? settings.page - 1 : 1;
pageText = settings.page;
break;
case "next":
settings.page = Number(settings.page) + 1 <= pageTatol ? Number(settings.page) + 1 : pageTatol;
pageText = settings.page;
break;
case "none":
return;
case "go":
var p = parseInt(ele.find("input").val());
if (/^[0-9]*$/.test(p) && p >= 1 && p <= pageTatol) {
settings.page = p;
pageText = p;
} else {
return;
}
break;
default:
settings.page = pageText;
}
// 点击或跳转当前页码不执行任何操作
if (pageText == that.pageNum) {
return;
}
that.pageNum = settings.page;
that.viewHtml();
settings.backFun(pageText);
});
this.element.on("keyup", "input", function (event) {
if (event.keyCode == 13) {
var p = parseInt(ele.find("input").val());
if (/^[0-9]*$/.test(p) && p >= 1 && p <= pageTatol && p != that.pageNum) {
settings.page = p;
that.pageNum = p;
that.viewHtml();
settings.backFun(p);
} else {
return;
}
}
});
}
});
$.fn.sPage = function (options) {
return new Plugin(this, options);
}
})(jQuery, window, document);