mirror of
https://github.com/certd/certd.git
synced 2026-07-10 15:17:32 +08:00
335d175d57
chore: Merge branch 'vben' # Conflicts: # package.json perf: antdv示例改成使用vben框架 chore: vben chore: vben chore: vben
56 lines
1.2 KiB
Vue
56 lines
1.2 KiB
Vue
<script setup lang="ts">
|
|
import type {
|
|
HoverCardContentProps,
|
|
HoverCardRootEmits,
|
|
HoverCardRootProps,
|
|
} from 'radix-vue';
|
|
|
|
import type { ClassType } from '/@/vben/typings';
|
|
|
|
import { computed } from 'vue';
|
|
|
|
import { useForwardPropsEmits } from 'radix-vue';
|
|
|
|
import { HoverCard, HoverCardContent, HoverCardTrigger } from '../../ui';
|
|
|
|
interface Props extends HoverCardRootProps {
|
|
class?: ClassType;
|
|
contentClass?: ClassType;
|
|
contentProps?: HoverCardContentProps;
|
|
}
|
|
|
|
const props = defineProps<Props>();
|
|
|
|
const emits = defineEmits<HoverCardRootEmits>();
|
|
|
|
const delegatedProps = computed(() => {
|
|
const {
|
|
class: _cls,
|
|
contentClass: _,
|
|
contentProps: _cProps,
|
|
...delegated
|
|
} = props;
|
|
|
|
return delegated;
|
|
});
|
|
|
|
const forwarded = useForwardPropsEmits(delegatedProps, emits);
|
|
</script>
|
|
|
|
<template>
|
|
<HoverCard v-bind="forwarded">
|
|
<HoverCardTrigger as-child class="h-full">
|
|
<div class="h-full cursor-pointer">
|
|
<slot name="trigger"></slot>
|
|
</div>
|
|
</HoverCardTrigger>
|
|
<HoverCardContent
|
|
:class="contentClass"
|
|
v-bind="contentProps"
|
|
class="side-content z-popup"
|
|
>
|
|
<slot></slot>
|
|
</HoverCardContent>
|
|
</HoverCard>
|
|
</template>
|