<script lang="ts" setup>
|
import { ChevronDown } from '@vben-core/icons';
|
import { cn } from '@vben-core/shared/utils';
|
|
const props = defineProps<{
|
class?: string;
|
}>();
|
|
// 控制箭头展开/收起状态
|
const collapsed = defineModel({ default: false });
|
</script>
|
|
<template>
|
<div :class="cn('vben-link inline-flex items-center', props.class)" @click="collapsed = !collapsed">
|
<slot :is-expanded="collapsed">
|
{{ collapsed }}
|
<!-- <span>{{ isExpanded ? '收起' : '展开' }}</span> -->
|
</slot>
|
<div :class="{ 'rotate-180': !collapsed }" class="transition-transform duration-300">
|
<slot name="icon">
|
<ChevronDown class="size-4" />
|
</slot>
|
</div>
|
</div>
|
</template>
|