From 1c5c284492627d4aa8ec0eb6982546af3e6f6f14 Mon Sep 17 00:00:00 2001 From: augushong Date: Fri, 11 Sep 2026 16:06:27 +0000 Subject: [PATCH] =?UTF-8?q?fix(table):=20=E6=89=8B=E6=9C=BA=E7=AB=AF?= =?UTF-8?q?=E6=9C=AA=E9=85=8D=E7=BD=AE=E9=A1=B5=E9=9D=A2=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=90=AF=E7=94=A8=E5=86=85=E7=BD=AE=E5=8D=A1=E7=89=87=E5=BD=A2?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../static/plugs/ulthon-admin/admin-table.js | 31 +++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/public/static/plugs/ulthon-admin/admin-table.js b/public/static/plugs/ulthon-admin/admin-table.js index ae073be..0cff24c 100644 --- a/public/static/plugs/ulthon-admin/admin-table.js +++ b/public/static/plugs/ulthon-admin/admin-table.js @@ -736,7 +736,18 @@ // 受控表形态清单规范化须先于引擎渲染:视图切换按钮的注入条件 // (条目数>1)依赖它,受控分支直接复用。非受控表不 normalize。 var layoutEntries = []; + var mobileLayoutInjected = false; if (options.controlled === true) { + // 手机端未配置 layoutList 时自动启用内置 card(计划 + // table-multiform-rendering Success criteria 2):内置 card + // 无需页面模板(数据全来自渲染上下文),自动注入可行。 + // 显式配置优先不注入(含 usercard 示例页等存量配置);桌面端 + // 不注入,未配置页桌面恒 table 零变化。注入后条目数>1,手机 + // 端工具栏自动出现"视图"按钮,可切回 table。 + if ((!options.layoutList || !options.layoutList.length) && ua.checkMobile()) { + options.layoutList = ['table', 'card']; + mobileLayoutInjected = true; + } layoutEntries = normalizeLayoutList(options.layoutList); if (layoutEntries.length > 1) { // 视图切换按钮(任务 15 (b),交互结构参照旧 TABLE_LAYOUT @@ -752,6 +763,26 @@ if (options.defaultToolbar === undefined) { options.defaultToolbar = defaultToolbar; + } else if (mobileLayoutInjected) { + // 手机自动注入 card 且页面显式配置了 defaultToolbar 时,上方 + // push 视图按钮的 defaultToolbar 数组被整体丢弃,"默认 card + // 且可切回 table"会落空,这里对最终配置去重追加(仅注入场景 + // 触发;桌面与显式 layoutList 页均不受影响) + var hasLayoutBtn = false; + $.each(options.defaultToolbar, function (i, btn) { + if (btn && typeof btn === 'object' && btn.layEvent === 'TABLE_LAYOUT') { + hasLayoutBtn = true; + return false; + } + }); + if (!hasLayoutBtn) { + options.defaultToolbar.push({ + title: '视图', + layEvent: 'TABLE_LAYOUT', + icon: 'layui-icon-template-1', + extend: 'data-table-id="' + options.id + '"' + }); + } }