|
@@ -12,7 +12,12 @@ import type {
|
|
|
import { computed } from 'vue';
|
|
|
|
|
|
import { Form } from '@vben-core/shadcn-ui';
|
|
|
-import { cn, isString, mergeWithArrayOverride } from '@vben-core/shared/utils';
|
|
|
+import {
|
|
|
+ cn,
|
|
|
+ isFunction,
|
|
|
+ isString,
|
|
|
+ mergeWithArrayOverride,
|
|
|
+} from '@vben-core/shared/utils';
|
|
|
|
|
|
import { provideFormRenderProps } from './context';
|
|
|
import { useExpandable } from './expandable';
|
|
@@ -110,6 +115,17 @@ const computedSchema = computed(
|
|
|
? keepIndex <= index
|
|
|
: false;
|
|
|
|
|
|
+ // 处理函数形式的formItemClass
|
|
|
+ let resolvedSchemaFormItemClass = schema.formItemClass;
|
|
|
+ if (isFunction(schema.formItemClass)) {
|
|
|
+ try {
|
|
|
+ resolvedSchemaFormItemClass = schema.formItemClass();
|
|
|
+ } catch (error) {
|
|
|
+ console.error('Error calling formItemClass function:', error);
|
|
|
+ resolvedSchemaFormItemClass = '';
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return {
|
|
|
colon,
|
|
|
disabled,
|
|
@@ -133,7 +149,7 @@ const computedSchema = computed(
|
|
|
'flex-shrink-0',
|
|
|
{ hidden },
|
|
|
formItemClass,
|
|
|
- schema.formItemClass,
|
|
|
+ resolvedSchemaFormItemClass,
|
|
|
),
|
|
|
labelClass: cn(labelClass, schema.labelClass),
|
|
|
};
|