/**
* layui分页列表模板引擎(使用时请使用new Pagelist(), 将每个分页模板当成一个独立的实例)
* @param tplid 模板id
* @param viewid 渲染模板容器的id
* @param pageid 分页容器id
* @param httpurl 请求接口的url
* @param param 请求接口的参数
* @param method 接口请求方式(get、post)
*/
function Pagelist(tplid, viewid, pageid, httpurl, param, method) {
if (!method) {
method = "GET";
}
if (!param) {
param = {};
}
var _this = this;
this.page = 1;
this.limit = 10;
this.theme = '#0092fa';
this.paramType = 1; // 1: 'JSON', 2:JSON.stringify
this.renderPage = function (totalCount, currPage) {
laypage.render({
elem: pageid,
count: totalCount,
curr: currPage,
theme: _this.theme,
jump: function (obj, first) {
//首次不执行
if (!first) {
_this.page = obj.curr;
_this.limit = obj.limit;
// document.body.scrollTop = $('#' + viewid).offset().top - 100;
_this.request(obj.curr, obj.limit);
}
}
});
};
this.renderTpl = function (data) {
if (!data) {
data = [];
}
var getTpl = document.getElementById(tplid).innerHTML,
view = document.getElementById(viewid);
laytpl(getTpl).render(data, function (html) {
view.innerHTML = html;
});
};
this.request = function () {
document.getElementById(viewid).innerHTML = '
param['page'] = _this.page;
param['limit'] = _this.limit;
new ajaxRequest({
type: method,
url: httpurl,
data: _this.paramType === 1 ? param : JSON.stringify(param),
dataType: "json",
contentType: "application/json",
success: function (data) {
if (data.code === 0) {
_this.renderPage(data.total, data.pageNum);
_this.renderTpl(data.list);
} else {
_this.renderTpl([]);
}
},
error: function (jqXHR) {
_this.renderTpl([]);
}
});
};
this.init = function () {
_this.page = 1;
_this.request();
};
this.refresh = function () {
_this.request();
};
setTimeout(function () {
_this.init();
}, 0);
}