Browse Source
* feat: 新增 PreferenceCheckboxItem 组件 * feat(preferences): 添加侧边栏按钮配置功能 * feat: 新增按钮点击事件触发功能 * feat(SidebarPreferences): 新增侧边栏折叠按钮与固定按钮配置 * feat(ui): 新增侧边栏固定按钮及配置选项 * fix(test): 修正侧边栏配置项缺失问题pull/5825/head
committed by
GitHub
11 changed files with 138 additions and 6 deletions
@ -0,0 +1,63 @@ |
|||
<script setup lang="ts"> |
|||
import type { SelectOption } from '@vben/types'; |
|||
|
|||
import { useSlots } from 'vue'; |
|||
|
|||
import { CircleHelp } from '@vben/icons'; |
|||
|
|||
import { VbenCheckButtonGroup, VbenTooltip } from '@vben-core/shadcn-ui'; |
|||
|
|||
defineOptions({ |
|||
name: 'PreferenceCheckboxItem', |
|||
}); |
|||
|
|||
withDefaults( |
|||
defineProps<{ |
|||
disabled?: boolean; |
|||
items: SelectOption[]; |
|||
multiple?: boolean; |
|||
onBtnClick?: (value: string) => void; |
|||
placeholder?: string; |
|||
}>(), |
|||
{ |
|||
disabled: false, |
|||
placeholder: '', |
|||
items: () => [], |
|||
onBtnClick: () => {}, |
|||
multiple: false, |
|||
}, |
|||
); |
|||
|
|||
const inputValue = defineModel<string[]>(); |
|||
|
|||
const slots = useSlots(); |
|||
</script> |
|||
|
|||
<template> |
|||
<div |
|||
:class="{ |
|||
'hover:bg-accent': !slots.tip, |
|||
'pointer-events-none opacity-50': disabled, |
|||
}" |
|||
class="my-1 flex w-full items-center justify-between rounded-md px-2 py-1" |
|||
> |
|||
<span class="flex items-center text-sm"> |
|||
<slot></slot> |
|||
|
|||
<VbenTooltip v-if="slots.tip" side="bottom"> |
|||
<template #trigger> |
|||
<CircleHelp class="ml-1 size-3 cursor-help" /> |
|||
</template> |
|||
<slot name="tip"></slot> |
|||
</VbenTooltip> |
|||
</span> |
|||
<VbenCheckButtonGroup |
|||
v-model="inputValue" |
|||
class="h-8 w-[165px]" |
|||
:options="items" |
|||
:disabled="disabled" |
|||
:multiple="multiple" |
|||
@btn-click="onBtnClick" |
|||
/> |
|||
</div> |
|||
</template> |
|||
Loading…
Reference in new issue