From 2a4a54a49567007787295769e3f8d05e3e8a30e0 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Wed, 9 Sep 2026 11:14:52 +0800 Subject: [PATCH] =?UTF-8?q?feat(form):=20group-list=20=E6=A0=87=E9=A2=98?= =?UTF-8?q?=E5=90=B8=E9=A1=B6=E6=94=B9=E4=B8=BA=E6=8C=89=20header.sticky?= =?UTF-8?q?=20=E6=98=BE=E5=BC=8F=E5=BC=80=E5=90=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 默认关闭避免长列表误吸顶,嵌套层按外层真实标题/吸底按钮高度让位;属性面板列表通过 stickyAddButton 保持原表现。 --- docs/form-config/layout.md | 25 ++- .../src/fields/configs/stickyAddButton.ts | 5 +- .../tests/unit/fields/CodeSelect.spec.ts | 1 + .../tests/unit/fields/DisplayConds.spec.ts | 2 + .../tests/unit/fields/EventSelect.spec.ts | 2 + packages/form-schema/src/base.ts | 16 ++ packages/form/src/containers/GroupList.vue | 25 ++- packages/form/src/theme/group-list.scss | 81 +++++--- packages/form/src/utils/tableGroupList.ts | 29 ++- .../tests/unit/containers/GroupList.spec.ts | 182 ++++++++++++++++++ .../tests/unit/utils/tableGroupList.spec.ts | 46 ++++- 11 files changed, 379 insertions(+), 35 deletions(-) diff --git a/docs/form-config/layout.md b/docs/form-config/layout.md index 581c6dc2..448d15a0 100644 --- a/docs/form-config/layout.md +++ b/docs/form-config/layout.md @@ -2,7 +2,7 @@ ## 配置类型 -::: details 查看 ContainerCommonConfig / RowConfig / TabConfig / TabPaneConfig / FieldsetConfig / PanelConfig / StepConfig / FlexLayoutConfig / GroupListConfig / TableConfig / TableColumnConfig / TableGroupListCommonConfig 配置类型定义 +::: details 查看 ContainerCommonConfig / RowConfig / TabConfig / TabPaneConfig / FieldsetConfig / PanelConfig / StepConfig / FlexLayoutConfig / GroupListConfig / TableConfig / TableColumnConfig / TableGroupListCommonConfig / GroupListHeaderConfig 配置类型定义 <<< @/../packages/form-schema/src/base.ts#ContainerCommonConfig{ts} <<< @/../packages/form-schema/src/base.ts#RowConfig{ts} @@ -27,6 +27,8 @@ <<< @/../packages/form-schema/src/base.ts#TableGroupListCommonConfig{ts} +<<< @/../packages/form-schema/src/base.ts#GroupListHeaderConfig{ts} + <<< @/../packages/form-schema/src/base.ts#FormItem{ts} ::: @@ -211,6 +213,27 @@ }] }]"> +#### 标题吸顶 + +列表项较多、需要边滚动边看清当前编辑的是哪一项时,可以用 `header.sticky` 让卡片标题吸顶: + +```ts +{ + type: 'groupList', + name: 'group', + header: { sticky: true }, + items: [/* ... */], +} +``` + +吸顶默认关闭,需要逐层显式开启:外层开了不会带动内层,嵌套列表想一起吸顶就各自配一次,内层标题会自动下移让开外层标题。 + +标题让位的高度默认按 65px 计算。如果自定义了卡片标题的样式导致实际高度不同、内层标题出现重叠或空隙,用 `header.height` 告知真实高度即可(它只影响内层的让位距离,不会改变标题本身的高度)。 + +::: warning 行为变更 +1.8.0-beta.28 之前,group-list 的卡片标题在任何情况下都会吸顶。现在改为默认关闭、由 `header.sticky` 显式开启。升级后如需保持原有表现,请在对应配置上补上 `header: { sticky: true }`。 +::: + ### table +
暂无{{ config.titlePrefix || '' }}数据 @@ -34,7 +41,7 @@