mirror of
https://gitee.com/ulthon/ulthon_admin.git
synced 2026-11-09 20:40:49 +08:00
fix(table): 卡片形态实时跟随筛选列字段显隐(pro#3)
两处收集过滤 + colToggled 防抖重渲
This commit is contained in:
@@ -8,6 +8,7 @@
|
|||||||
util = window.UA_CORE.util;
|
util = window.UA_CORE.util;
|
||||||
|
|
||||||
var lastTableWhere = {};
|
var lastTableWhere = {};
|
||||||
|
var colToggledTimers = {};
|
||||||
var selectMode, selectConfirmCallback;
|
var selectMode, selectConfirmCallback;
|
||||||
|
|
||||||
// reloadData 引擎接线(加载期执行一次):受控表(UA_TABLE_STORE 已注册)的数据
|
// reloadData 引擎接线(加载期执行一次):受控表(UA_TABLE_STORE 已注册)的数据
|
||||||
@@ -86,7 +87,9 @@
|
|||||||
// controlledLayouts 的 cols(本闭包内),无任何业务字段硬编码。
|
// controlledLayouts 的 cols(本闭包内),无任何业务字段硬编码。
|
||||||
//
|
//
|
||||||
// 【与 buildLayoutContext 同规则的单元格列筛选】操作列无 field,须先于
|
// 【与 buildLayoutContext 同规则的单元格列筛选】操作列无 field,须先于
|
||||||
// field 判定识别;checkbox/radio 等无字段列跳过(勾选语义由勾位图标承接)
|
// field 判定识别;checkbox/radio 等无字段列跳过(勾选语义由勾位图标承接);
|
||||||
|
// 隐藏列(col.hide)跳过——不进卡片行、不产 _cells,与表格"隐藏列不渲染
|
||||||
|
// 单元格"语义一致
|
||||||
var builtinCardCellCols = function (tableId) {
|
var builtinCardCellCols = function (tableId) {
|
||||||
var cols = (controlledLayouts[tableId] && controlledLayouts[tableId].cols[0]) || [];
|
var cols = (controlledLayouts[tableId] && controlledLayouts[tableId].cols[0]) || [];
|
||||||
var cellCols = [];
|
var cellCols = [];
|
||||||
@@ -100,6 +103,9 @@
|
|||||||
if (!col.field) {
|
if (!col.field) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (col.hide) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
cellCols.push(col);
|
cellCols.push(col);
|
||||||
});
|
});
|
||||||
return cellCols;
|
return cellCols;
|
||||||
@@ -400,6 +406,8 @@
|
|||||||
// 读列配置);_operatHtml 走既有 ua.table.tool(按钮权限 data-* 属性原样输出,
|
// 读列配置);_operatHtml 走既有 ua.table.tool(按钮权限 data-* 属性原样输出,
|
||||||
// 事件靠页面级委托天然覆盖,无旧的"暂时隐藏按钮"逻辑);_checked/_disabled
|
// 事件靠页面级委托天然覆盖,无旧的"暂时隐藏按钮"逻辑);_checked/_disabled
|
||||||
// 数据源为 store 选中集合(selectedIds)与行 LAY_DISABLED 标记。
|
// 数据源为 store 选中集合(selectedIds)与行 LAY_DISABLED 标记。
|
||||||
|
// 隐藏列(col.hide)跳过——不产 _cells、不进卡片行,与表格"隐藏列不渲染
|
||||||
|
// 单元格"语义一致。
|
||||||
buildLayoutContext: function (tableId) {
|
buildLayoutContext: function (tableId) {
|
||||||
var layout = controlledLayouts[tableId];
|
var layout = controlledLayouts[tableId];
|
||||||
var state = window.UA_TABLE_STORE.dataProvider.getState(tableId);
|
var state = window.UA_TABLE_STORE.dataProvider.getState(tableId);
|
||||||
@@ -422,6 +430,9 @@
|
|||||||
// checkbox/radio 等无字段列:勾选语义由 _checked/_disabled 与模板作者承接
|
// checkbox/radio 等无字段列:勾选语义由 _checked/_disabled 与模板作者承接
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
if (col.hide) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
cellCols.push(col);
|
cellCols.push(col);
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -1060,6 +1071,19 @@
|
|||||||
window.UA_TABLE_STORE.selection.set(options.id, obj.data);
|
window.UA_TABLE_STORE.selection.set(options.id, obj.data);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// 列筛选勾选 → 卡片实时重渲:表格形态短路(列筛选行为完全
|
||||||
|
// 不变),卡片形态 debounce 100ms 后从 store 当页数据重渲
|
||||||
|
//(renderLayoutForm 零网络请求,连点不抖动)
|
||||||
|
table.on('colToggled(' + options.layFilter + ')', function (obj) {
|
||||||
|
if (resolveCurrentLayout(options.id).kind === 'table') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
clearTimeout(colToggledTimers[options.id]);
|
||||||
|
colToggledTimers[options.id] = setTimeout(function () {
|
||||||
|
ua.table.renderLayoutForm(options.id);
|
||||||
|
}, 100);
|
||||||
|
});
|
||||||
|
|
||||||
// 初始形态可见性:layoutDefault 非 table 时先隐引擎空视图(避免
|
// 初始形态可见性:layoutDefault 非 table 时先隐引擎空视图(避免
|
||||||
// 空表头闪烁),首个 reload 完成后 wrapper 再次同步
|
// 空表头闪烁),首个 reload 完成后 wrapper 再次同步
|
||||||
syncLayoutVisibility(options.id);
|
syncLayoutVisibility(options.id);
|
||||||
|
|||||||
Reference in New Issue
Block a user