test(table): 模板形态行为集成验证与行选中委托统一

This commit is contained in:
augushong
2026-09-11 12:33:29 +00:00
parent 2f8417d3b4
commit 4a047e428c

View File

@@ -147,19 +147,27 @@
return html;
};
// 内置 card 勾选交互:点卡片任意处切换选中(操作按钮/表单控件等交互元素除外),
// 禁用行(_disabled)整卡不可勾选。选择态落 store(与引擎勾选同一事实源,
// 批量删除经 ua.table.checkStatus 分发即取到),随后重渲模板管线回显勾位图标。
// 自定义模板形态的统一行选中委托是任务 18 范围,本委托只认 .ua-data-card。
$(document).on('click', '.ua-data-card', function (e) {
// 统一行选中委托(任务 18):模板渲染容器内凡带 data-table-id + data-id 属性
// 的行元素——内置 card 的 .ua-data-card 与自定义 laytpl/Vue 模板的卡片/勾位
// 元素——点击即切换选中,全部走本委托,无任何形态专用事件。模板作者契约:
// 给行根元素(或勾位元素)加这两属性即获得点选交互,无需页面级监听。
// 交互元素(按钮/表单控件/layui 美化层)豁免不触发勾选;禁用行
// (ua-data-card-disabled 标记或行 LAY_DISABLED)整元素不可勾选。选择态落
// store(与引擎勾选同一事实源,批量删除经 ua.table.checkStatus 分发即取到),
// 随后重渲模板管线回显勾位标记。
$(document).on('click', '[data-table-id][data-id]', function (e) {
var $card = $(this);
var tableId = $card.attr('data-table-id');
// 仅模板渲染容器内的行元素生效(页面其他区域的 data-id 元素不受影响)
if ($card.closest('#ua-layout-' + tableId).length === 0) {
return;
}
if ($card.hasClass('ua-data-card-disabled')) {
return;
}
if ($(e.target).closest('a,button,input,select,textarea,label,.layui-form-switch,.layui-form-checkbox,.layui-form-radio').length) {
return;
}
var tableId = $card.attr('data-table-id');
var state = window.UA_TABLE_STORE && window.UA_TABLE_STORE.dataProvider.getState(tableId);
if (!state) {
return;