Skip to content

Commit fc9ea34

Browse files
authored
Merge branch 'main' into feat/add-vben-modal-animation
2 parents 1a9b050 + 07b64ad commit fc9ea34

File tree

3 files changed

+21
-5
lines changed

3 files changed

+21
-5
lines changed

docs/src/components/common-ui/vben-form.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -395,7 +395,7 @@ export interface FormCommonConfig {
395395
* 所有表单项的栅格布局
396396
* @default ""
397397
*/
398-
formItemClass?: string;
398+
formItemClass?: (() => string) | string;
399399
/**
400400
* 隐藏所有表单项label
401401
* @default false

packages/@core/ui-kit/form-ui/src/form-render/form.vue

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,12 @@ import type {
1212
import { computed } from 'vue';
1313
1414
import { Form } from '@vben-core/shadcn-ui';
15-
import { cn, isString, mergeWithArrayOverride } from '@vben-core/shared/utils';
15+
import {
16+
cn,
17+
isFunction,
18+
isString,
19+
mergeWithArrayOverride,
20+
} from '@vben-core/shared/utils';
1621
1722
import { provideFormRenderProps } from './context';
1823
import { useExpandable } from './expandable';
@@ -110,6 +115,17 @@ const computedSchema = computed(
110115
? keepIndex <= index
111116
: false;
112117
118+
// 处理函数形式的formItemClass
119+
let resolvedSchemaFormItemClass = schema.formItemClass;
120+
if (isFunction(schema.formItemClass)) {
121+
try {
122+
resolvedSchemaFormItemClass = schema.formItemClass();
123+
} catch (error) {
124+
console.error('Error calling formItemClass function:', error);
125+
resolvedSchemaFormItemClass = '';
126+
}
127+
}
128+
113129
return {
114130
colon,
115131
disabled,
@@ -133,7 +149,7 @@ const computedSchema = computed(
133149
'flex-shrink-0',
134150
{ hidden },
135151
formItemClass,
136-
schema.formItemClass,
152+
resolvedSchemaFormItemClass,
137153
),
138154
labelClass: cn(labelClass, schema.labelClass),
139155
};

packages/@core/ui-kit/form-ui/src/types.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,10 +174,10 @@ export interface FormCommonConfig {
174174
*/
175175
formFieldProps?: FormFieldOptions;
176176
/**
177-
* 所有表单项的栅格布局
177+
* 所有表单项的栅格布局,支持函数形式
178178
* @default ""
179179
*/
180-
formItemClass?: string;
180+
formItemClass?: (() => string) | string;
181181
/**
182182
* 隐藏所有表单项label
183183
* @default false

0 commit comments

Comments
 (0)