From 4a047e428c6c80d44b9109cb37af2eed4d3fb862 Mon Sep 17 00:00:00 2001 From: augushong Date: Fri, 11 Sep 2026 12:33:29 +0000 Subject: [PATCH] =?UTF-8?q?test(table):=20=E6=A8=A1=E6=9D=BF=E5=BD=A2?= =?UTF-8?q?=E6=80=81=E8=A1=8C=E4=B8=BA=E9=9B=86=E6=88=90=E9=AA=8C=E8=AF=81?= =?UTF-8?q?=E4=B8=8E=E8=A1=8C=E9=80=89=E4=B8=AD=E5=A7=94=E6=89=98=E7=BB=9F?= =?UTF-8?q?=E4=B8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../static/plugs/ulthon-admin/admin-table.js | 20 +++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/public/static/plugs/ulthon-admin/admin-table.js b/public/static/plugs/ulthon-admin/admin-table.js index 66b1064..8d59921 100644 --- a/public/static/plugs/ulthon-admin/admin-table.js +++ b/public/static/plugs/ulthon-admin/admin-table.js @@ -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;