Browse Source
fix: show validation message as tooltip in compact form (#6087)
* 紧凑模式表单的校验消息将显示为一个tooltip
pull/6088/head
Netfan
9 months ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with
25 additions and
1 deletions
-
packages/@core/ui-kit/form-ui/package.json
-
packages/@core/ui-kit/form-ui/src/form-render/form-field.vue
-
pnpm-lock.yaml
|
|
|
@ -38,6 +38,7 @@ |
|
|
|
}, |
|
|
|
"dependencies": { |
|
|
|
"@vben-core/composables": "workspace:*", |
|
|
|
"@vben-core/icons": "workspace:*", |
|
|
|
"@vben-core/shadcn-ui": "workspace:*", |
|
|
|
"@vben-core/shared": "workspace:*", |
|
|
|
"@vben-core/typings": "workspace:*", |
|
|
|
|
|
|
|
@ -5,6 +5,7 @@ import type { FormSchema, MaybeComponentProps } from '../types'; |
|
|
|
|
|
|
|
import { computed, nextTick, onUnmounted, useTemplateRef, watch } from 'vue'; |
|
|
|
|
|
|
|
import { CircleAlert } from '@vben-core/icons'; |
|
|
|
import { |
|
|
|
FormControl, |
|
|
|
FormDescription, |
|
|
|
@ -12,6 +13,7 @@ import { |
|
|
|
FormItem, |
|
|
|
FormMessage, |
|
|
|
VbenRenderContent, |
|
|
|
VbenTooltip, |
|
|
|
} from '@vben-core/shadcn-ui'; |
|
|
|
import { cn, isFunction, isObject, isString } from '@vben-core/shared/utils'; |
|
|
|
|
|
|
|
@ -354,6 +356,24 @@ onUnmounted(() => { |
|
|
|
</template> |
|
|
|
<!-- <slot></slot> --> |
|
|
|
</component> |
|
|
|
<VbenTooltip |
|
|
|
v-if="compact && isInValid" |
|
|
|
:delay-duration="300" |
|
|
|
side="left" |
|
|
|
> |
|
|
|
<template #trigger> |
|
|
|
<slot name="trigger"> |
|
|
|
<CircleAlert |
|
|
|
:class=" |
|
|
|
cn( |
|
|
|
'text-foreground/80 hover:text-foreground inline-flex size-5 cursor-pointer', |
|
|
|
) |
|
|
|
" |
|
|
|
/> |
|
|
|
</slot> |
|
|
|
</template> |
|
|
|
<FormMessage /> |
|
|
|
</VbenTooltip> |
|
|
|
</slot> |
|
|
|
</FormControl> |
|
|
|
<!-- 自定义后缀 --> |
|
|
|
@ -365,7 +385,7 @@ onUnmounted(() => { |
|
|
|
</FormDescription> |
|
|
|
</div> |
|
|
|
|
|
|
|
<Transition name="slide-up"> |
|
|
|
<Transition name="slide-up" v-if="!compact"> |
|
|
|
<FormMessage class="absolute bottom-1" /> |
|
|
|
</Transition> |
|
|
|
</div> |
|
|
|
|
|
|
|
@ -1335,6 +1335,9 @@ importers: |
|
|
|
'@vben-core/composables': |
|
|
|
specifier: workspace:* |
|
|
|
version: link:../../composables |
|
|
|
'@vben-core/icons': |
|
|
|
specifier: workspace:* |
|
|
|
version: link:../../base/icons |
|
|
|
'@vben-core/shadcn-ui': |
|
|
|
specifier: workspace:* |
|
|
|
version: link:../shadcn-ui |
|
|
|
|