diff --git a/packages/form/src/containers/Table.vue b/packages/form/src/containers/Table.vue index 4a2176e8..2a5a7f17 100644 --- a/packages/form/src/containers/Table.vue +++ b/packages/form/src/containers/Table.vue @@ -325,6 +325,15 @@ const newHandler = async (row?: any) => { return; } + if (typeof props.config.beforeAddRow === 'function') { + const beforeCheckRes = props.config.beforeAddRow(mForm, { + model: props.model[modelName.value], + formValue: mForm?.values, + prop: props.prop, + }); + if (!beforeCheckRes) return; + } + const columns = props.config.items; const enumValues = props.config.enum || []; let enumV = []; diff --git a/packages/form/src/schema.ts b/packages/form/src/schema.ts index 07635b66..4e1bcb12 100644 --- a/packages/form/src/schema.ts +++ b/packages/form/src/schema.ts @@ -669,6 +669,8 @@ export interface TableConfig extends FormItem { fixed?: boolean; itemExtra?: string | FilterFunction; rowKey?: string; + /** table 新增行时前置回调 */ + beforeAddRow?: (mForm: FormState | undefined, data: any) => boolean; } export interface GroupListConfig extends FormItem {