mirror of https://github.com/layui/layui
table修复排序之后reloadData设置固定滚动条的情况下还是发生滚动条回零现象;新增table.refresh支持将cache信息重新渲染。
parent
f20875a2ba
commit
21f89d1d95
|
@ -1023,26 +1023,17 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// 渲染视图
|
||||||
// 数据渲染
|
Class.prototype.renderView = function (sort, type) {
|
||||||
Class.prototype.renderData = function(opts){
|
|
||||||
var that = this;
|
var that = this;
|
||||||
var options = that.config;
|
var options = that.config;
|
||||||
|
|
||||||
var res = opts.res;
|
var data = table.cache[that.key];
|
||||||
var curr = opts.curr;
|
|
||||||
var count = opts.count;
|
|
||||||
var sort = opts.sort;
|
|
||||||
|
|
||||||
var data = res[options.response.dataName] || []; //列表数据
|
|
||||||
var totalRowData = res[options.response.totalRowName]; //合计行数据
|
|
||||||
var trs = [];
|
var trs = [];
|
||||||
var trs_fixed = [];
|
var trs_fixed = [];
|
||||||
var trs_fixed_r = [];
|
var trs_fixed_r = [];
|
||||||
|
|
||||||
// 渲染视图
|
|
||||||
var render = function(){ // 后续性能提升的重点
|
|
||||||
// 同步表头父列的相关值
|
|
||||||
options.HAS_SET_COLS_PATCH || that.setColsPatch();
|
options.HAS_SET_COLS_PATCH || that.setColsPatch();
|
||||||
options.HAS_SET_COLS_PATCH = true;
|
options.HAS_SET_COLS_PATCH = true;
|
||||||
|
|
||||||
|
@ -1052,7 +1043,7 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
|
||||||
}
|
}
|
||||||
layui.each(data, function(i1, item1){
|
layui.each(data, function(i1, item1){
|
||||||
var tds = [], tds_fixed = [], tds_fixed_r = []
|
var tds = [], tds_fixed = [], tds_fixed_r = []
|
||||||
,numbers = i1 + options.limit*(curr - 1) + 1; // 序号
|
,numbers = i1 + options.limit*(that.page - 1) + 1; // 序号
|
||||||
|
|
||||||
// 数组值是否为 object,如果不是,则自动转为 object
|
// 数组值是否为 object,如果不是,则自动转为 object
|
||||||
if(typeof item1 !== 'object'){
|
if(typeof item1 !== 'object'){
|
||||||
|
@ -1173,7 +1164,7 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
|
||||||
});
|
});
|
||||||
|
|
||||||
// 容器的滚动条位置
|
// 容器的滚动条位置
|
||||||
if(!(options.scrollPos === 'fixed' && opts.type === 'reloadData')){
|
if(!(options.scrollPos === 'fixed' && type === 'reloadData')){
|
||||||
that.layBody.scrollTop(0);
|
that.layBody.scrollTop(0);
|
||||||
}
|
}
|
||||||
if(options.scrollPos === 'reset'){
|
if(options.scrollPos === 'reset'){
|
||||||
|
@ -1199,8 +1190,23 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
|
||||||
that.haveInit = true;
|
that.haveInit = true;
|
||||||
|
|
||||||
layer.close(that.tipsIndex);
|
layer.close(that.tipsIndex);
|
||||||
};
|
|
||||||
|
|
||||||
|
that.renderTotal(data, that.totalRowData); //数据合计
|
||||||
|
that.layTotal && that.layTotal.removeClass(HIDE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 数据渲染
|
||||||
|
Class.prototype.renderData = function(opts){
|
||||||
|
var that = this;
|
||||||
|
var options = that.config;
|
||||||
|
|
||||||
|
var res = opts.res;
|
||||||
|
var curr = opts.curr;
|
||||||
|
var count = opts.count;
|
||||||
|
var sort = opts.sort;
|
||||||
|
|
||||||
|
var data = res[options.response.dataName] || []; //列表数据
|
||||||
|
that.totalRowData = res[options.response.totalRowName]; //合计行数据
|
||||||
table.cache[that.key] = data; //记录数据
|
table.cache[that.key] = data; //记录数据
|
||||||
|
|
||||||
//显示隐藏合计栏
|
//显示隐藏合计栏
|
||||||
|
@ -1222,16 +1228,11 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
|
||||||
that.layFixLeft.removeClass(HIDE);
|
that.layFixLeft.removeClass(HIDE);
|
||||||
}
|
}
|
||||||
|
|
||||||
//如果执行初始排序
|
that.renderView(sort, opts.type); //渲染数据
|
||||||
if(sort){
|
if (sort) {
|
||||||
return render();
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
//正常初始化数据渲染
|
|
||||||
render(); //渲染数据
|
|
||||||
that.renderTotal(data, totalRowData); //数据合计
|
|
||||||
that.layTotal && that.layTotal.removeClass(HIDE);
|
|
||||||
|
|
||||||
//同步分页状态
|
//同步分页状态
|
||||||
if(options.page){
|
if(options.page){
|
||||||
options.page = $.extend({
|
options.page = $.extend({
|
||||||
|
@ -1447,7 +1448,8 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
|
||||||
res: res,
|
res: res,
|
||||||
curr: that.page,
|
curr: that.page,
|
||||||
count: that.count,
|
count: that.count,
|
||||||
sort: true
|
sort: true,
|
||||||
|
type: formEvent ? '' : 'reloadData' // 通过按钮触发排序会默认回滚到顶部否则根据情况处理
|
||||||
});
|
});
|
||||||
|
|
||||||
if(formEvent){
|
if(formEvent){
|
||||||
|
@ -2654,6 +2656,16 @@ layui.define(['lay', 'laytpl', 'laypage', 'form', 'util'], function(exports){
|
||||||
that.resize();
|
that.resize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 重新渲染视图
|
||||||
|
table.refresh = function (id) {
|
||||||
|
var that = getThisTable(id);
|
||||||
|
if (!that) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
that.renderView(null, 'reloadData');
|
||||||
|
}
|
||||||
|
|
||||||
// 自动完成渲染
|
// 自动完成渲染
|
||||||
$(function(){
|
$(function(){
|
||||||
table.init();
|
table.init();
|
||||||
|
|
Loading…
Reference in New Issue