initFlowLoadMore(options) {
var defaults = {
end: function () { }, // 数据全部加载完毕后的回调函数
setData: function (data) {//处理返回数据
},
elem: '', // 内容列表的选择器
isAuto: false,// 是否自动加载(默认为 false)
pageNo: 1,//搜索提示页码
pageSize: 10,//搜索每页数
total: 0,//总数
url: "",//请求地址
json: "",//请求参数
laytempl: "",//样式模板
};
var settings = $.extend({}, defaults, options);
flow.load({
elem: settings.elem, // 内容容器的选择器
isAuto: settings.isAuto, // 是否自动加载
done: async function (page, next) {
try {
settings.pageNo = page;
const html = await func();
next(html, page < Math.ceil(settings.total / settings.pageSize));
} catch (error) {
console.error('请求失败:', error);
}
}
});
function func() {
var defaults_json = {
"pageNo": settings.pageNo,
"pageSize": settings.pageSize,
};
var json = $.extend({}, defaults_json, settings.json);
return new Promise(resolve => {
$.ajax({
type: "post",
beforeSend: function (request) {
request.setRequestHeader(constant.token, theRequest.token);
},
contentType: "application/json;charset=utf-8",
dataType: "json",
url: settings.url,
data: JSON.stringify(json),
success: function (result) {
if (result.code == constant.success) {
var data = settings.setData(result.data.records);
settings.total = result.data.total ? result.data.total : 0;
settings.laytempl.render(data, function (htmlStr) {
resolve(htmlStr);
})
}
},
error: function (data) {
}
});
});
}
}
将layui的流加载封装成组件
于 2025-01-10 11:32:51 首次发布