Browse Source
feat: add function support for formItemClass prop (#6511 )
* feat: add function support for formItemClass prop
* feat: add try-catch to formItemClass function
* fix: formItemClass function ts error
---------
Co-authored-by: sqchen <chenshiqi@sshlx.com>
pull/6538/head
panda7
10 months ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with
21 additions and
5 deletions
docs/src/components/common-ui/vben-form.md
packages/@core/ui-kit/form-ui/src/form-render/form.vue
packages/@core/ui-kit/form-ui/src/types.ts
@ -395,7 +395,7 @@ export interface FormCommonConfig {
* 所有表单项的栅格布局
* @default ""
*/
formItemClass?: string;
formItemClass?: (() => string) | string;
/**
* 隐藏所有表单项label
* @default false
@ -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 ;
/ / 处 理 函 数 形 式 的 f o r m I t e m C l a s s
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 . f ormItemClass,
resolvedSchemaF ormItemClass,
) ,
labelClass : cn ( labelClass , schema . labelClass ) ,
} ;
@ -174,10 +174,10 @@ export interface FormCommonConfig {
* /
formFieldProps? : FormFieldOptions ;
/ * *
* 所 有 表 单 项 的 栅 格 布 局
* 所 有 表 单 项 的 栅 格 布 局 , 支 持 函 数 形 式
* @default ""
* /
formItemClass? : string ;
formItemClass ? : ( ( ) = > string ) | string ;
/ * *
* 隐 藏 所 有 表 单 项 label
* @default false