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