From 6b4ca4b83a1a0a36ff94c30feb1845d957377b47 Mon Sep 17 00:00:00 2001 From: roymondchen Date: Fri, 6 Jun 2025 20:13:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(form,form-schema):=20group=20list=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E9=85=8D=E7=BD=AE=E9=BB=98=E8=AE=A4=E5=B1=95=E5=BC=80?= =?UTF-8?q?=E6=95=B0=E9=87=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/form-schema/src/base.ts | 6 ++++++ packages/form/src/containers/GroupListItem.vue | 4 +++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/packages/form-schema/src/base.ts b/packages/form-schema/src/base.ts index e429baa2..e2326be4 100644 --- a/packages/form-schema/src/base.ts +++ b/packages/form-schema/src/base.ts @@ -720,6 +720,12 @@ export interface GroupListConfig extends FormItem { title?: string | FilterFunction; itemExtra?: string | FilterFunction; expandAll?: boolean; + /** + * 默认展开的数量,用于控制分组列表默认展示的项数 + * 当设置为数字时,表示默认展开指定数量的项 + * 当未设置时,默认展开第一项 + */ + defaultExpandQuantity?: number; addable?: (mForm: FormState | undefined, data: any) => boolean | 'undefined' | boolean; defaultAdd?: (mForm: FormState | undefined, data: any) => any; delete?: (model: any, index: number | string | symbol, values: any) => boolean | boolean; diff --git a/packages/form/src/containers/GroupListItem.vue b/packages/form/src/containers/GroupListItem.vue index 765cc1a2..e609bdcd 100644 --- a/packages/form/src/containers/GroupListItem.vue +++ b/packages/form/src/containers/GroupListItem.vue @@ -133,7 +133,9 @@ const props = defineProps<{ const emit = defineEmits(['swap-item', 'remove-item', 'change', 'addDiffCount', 'copy-item']); const mForm = inject('mForm'); -const expand = ref(props.config.expandAll || !props.index); + +const defaultExpandQuantity = props.config.defaultExpandQuantity ?? 7; +const expand = ref(props.config.expandAll || defaultExpandQuantity > props.index); const rowConfig = computed(() => ({ type: 'row',