diff --git a/packages/form/src/containers/GroupList.vue b/packages/form/src/containers/GroupList.vue index b40cf014..89a2a97e 100644 --- a/packages/form/src/containers/GroupList.vue +++ b/packages/form/src/containers/GroupList.vue @@ -132,6 +132,7 @@ const toggleMode = () => { text: null, }))) as any; }; + const onAddDiffCount = () => emit('addDiffCount'); const getLastValues = (item: any, index: number) => item?.[index] || {}; diff --git a/packages/form/src/containers/GroupListItem.vue b/packages/form/src/containers/GroupListItem.vue index dd274bbe..c4888adc 100644 --- a/packages/form/src/containers/GroupListItem.vue +++ b/packages/form/src/containers/GroupListItem.vue @@ -88,7 +88,13 @@ const title = computed(() => { return props.model[props.config.titleKey]; } - return `组 ${String(props.index)}`; + if (props.config.title) { + return filterFunction(mForm, props.config.title, props); + } + + const titlePrefix = props.config.titlePrefix || '组'; + + return `${titlePrefix} ${String(props.index + 1)}`; }); const length = computed(() => props.groupModel?.length || 0); @@ -113,7 +119,7 @@ const showDelete = (index: number) => { }; // 调换顺序 -const changeOrder = (offset = 0) => emit('swap-item', props.index, `${String(props.index)}${offset}`); +const changeOrder = (offset = 0) => emit('swap-item', props.index, props.index + offset); const movable = () => { const { movable } = props.config; diff --git a/packages/form/src/schema.ts b/packages/form/src/schema.ts index 281d625b..1bd5d514 100644 --- a/packages/form/src/schema.ts +++ b/packages/form/src/schema.ts @@ -680,6 +680,8 @@ export interface GroupListConfig extends FormItem { groupItems?: FormConfig; tableItems?: FormConfig; titleKey?: string; + titlePrefix?: string; + title?: string | FilterFunction; itemExtra?: string | FilterFunction; expandAll?: boolean; addable?: (mForm: FormState | undefined, data: any) => boolean | 'undefined' | boolean; diff --git a/packages/form/src/utils/form.ts b/packages/form/src/utils/form.ts index 42f4873d..1e045fcc 100644 --- a/packages/form/src/utils/form.ts +++ b/packages/form/src/utils/form.ts @@ -193,6 +193,7 @@ export const filterFunction = (mForm: FormState | undefined, config: any, props: formValue: mForm?.values || props.model, prop: props.prop, config: props.config, + index: props.index, }); };