fix: show validation message as tooltip in compact form (#6087)
* 紧凑模式表单的校验消息将显示为一个tooltip
This commit is contained in:
parent
20c15f352f
commit
add1e61b6f
@ -38,6 +38,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@vben-core/composables": "workspace:*",
|
"@vben-core/composables": "workspace:*",
|
||||||
|
"@vben-core/icons": "workspace:*",
|
||||||
"@vben-core/shadcn-ui": "workspace:*",
|
"@vben-core/shadcn-ui": "workspace:*",
|
||||||
"@vben-core/shared": "workspace:*",
|
"@vben-core/shared": "workspace:*",
|
||||||
"@vben-core/typings": "workspace:*",
|
"@vben-core/typings": "workspace:*",
|
||||||
|
@ -5,6 +5,7 @@ import type { FormSchema, MaybeComponentProps } from '../types';
|
|||||||
|
|
||||||
import { computed, nextTick, onUnmounted, useTemplateRef, watch } from 'vue';
|
import { computed, nextTick, onUnmounted, useTemplateRef, watch } from 'vue';
|
||||||
|
|
||||||
|
import { CircleAlert } from '@vben-core/icons';
|
||||||
import {
|
import {
|
||||||
FormControl,
|
FormControl,
|
||||||
FormDescription,
|
FormDescription,
|
||||||
@ -12,6 +13,7 @@ import {
|
|||||||
FormItem,
|
FormItem,
|
||||||
FormMessage,
|
FormMessage,
|
||||||
VbenRenderContent,
|
VbenRenderContent,
|
||||||
|
VbenTooltip,
|
||||||
} from '@vben-core/shadcn-ui';
|
} from '@vben-core/shadcn-ui';
|
||||||
import { cn, isFunction, isObject, isString } from '@vben-core/shared/utils';
|
import { cn, isFunction, isObject, isString } from '@vben-core/shared/utils';
|
||||||
|
|
||||||
@ -354,6 +356,24 @@ onUnmounted(() => {
|
|||||||
</template>
|
</template>
|
||||||
<!-- <slot></slot> -->
|
<!-- <slot></slot> -->
|
||||||
</component>
|
</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>
|
</slot>
|
||||||
</FormControl>
|
</FormControl>
|
||||||
<!-- 自定义后缀 -->
|
<!-- 自定义后缀 -->
|
||||||
@ -365,7 +385,7 @@ onUnmounted(() => {
|
|||||||
</FormDescription>
|
</FormDescription>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<Transition name="slide-up">
|
<Transition name="slide-up" v-if="!compact">
|
||||||
<FormMessage class="absolute bottom-1" />
|
<FormMessage class="absolute bottom-1" />
|
||||||
</Transition>
|
</Transition>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1335,6 +1335,9 @@ importers:
|
|||||||
'@vben-core/composables':
|
'@vben-core/composables':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../../composables
|
version: link:../../composables
|
||||||
|
'@vben-core/icons':
|
||||||
|
specifier: workspace:*
|
||||||
|
version: link:../../base/icons
|
||||||
'@vben-core/shadcn-ui':
|
'@vben-core/shadcn-ui':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../shadcn-ui
|
version: link:../shadcn-ui
|
||||||
|
Loading…
Reference in New Issue
Block a user