fix: the mobile terminal can wrap lines and expand slot attributes (#6165)

Co-authored-by: sqchen <chenshiqi@sshlx.com>
This commit is contained in:
panda7 2025-05-16 09:40:05 +08:00 committed by GitHub
parent cf17a45d8d
commit a23bc4cb5c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 19 additions and 4 deletions

View File

@ -36,7 +36,7 @@ export interface VbenButtonGroupProps
btnClass?: any; btnClass?: any;
gap?: number; gap?: number;
multiple?: boolean; multiple?: boolean;
options?: { label: CustomRenderType; value: ValueType }[]; options?: { [key: string]: any; label: CustomRenderType; value: ValueType }[];
showIcon?: boolean; showIcon?: boolean;
size?: 'large' | 'middle' | 'small'; size?: 'large' | 'middle' | 'small';
} }

View File

@ -119,7 +119,7 @@ async function onBtnClick(value: ValueType) {
<CircleCheckBig v-else-if="innerValue.includes(btn.value)" /> <CircleCheckBig v-else-if="innerValue.includes(btn.value)" />
<Circle v-else /> <Circle v-else />
</div> </div>
<slot name="option" :label="btn.label" :value="btn.value"> <slot name="option" :label="btn.label" :value="btn.value" :data="btn">
<VbenRenderContent :content="btn.label" /> <VbenRenderContent :content="btn.label" />
</slot> </slot>
</Button> </Button>
@ -127,6 +127,9 @@ async function onBtnClick(value: ValueType) {
</template> </template>
<style lang="scss" scoped> <style lang="scss" scoped>
.vben-check-button-group { .vben-check-button-group {
display: flex;
flex-wrap: wrap;
&:deep(.size-large) button { &:deep(.size-large) button {
.icon-wrapper { .icon-wrapper {
margin-right: 0.3rem; margin-right: 0.3rem;
@ -159,5 +162,16 @@ async function onBtnClick(value: ValueType) {
} }
} }
} }
&.no-gap > :deep(button):nth-of-type(1) {
border-right-width: 0;
}
&.no-gap {
:deep(button + button) {
margin-right: -1px;
border-left-width: 1px;
}
}
} }
</style> </style>

View File

@ -19,7 +19,7 @@ const checkValue = ref(['a', 'b']);
const options = [ const options = [
{ label: '选项1', value: 'a' }, { label: '选项1', value: 'a' },
{ label: '选项2', value: 'b' }, { label: '选项2', value: 'b', num: 999 },
{ label: '选项3', value: 'c' }, { label: '选项3', value: 'c' },
{ label: '选项4', value: 'd' }, { label: '选项4', value: 'd' },
{ label: '选项5', value: 'e' }, { label: '选项5', value: 'e' },
@ -168,10 +168,11 @@ function onBtnClick(value: any) {
:options="options" :options="options"
v-bind="compProps" v-bind="compProps"
> >
<template #option="{ label, value }"> <template #option="{ label, value, data }">
<div class="flex items-center"> <div class="flex items-center">
<span>{{ label }}</span> <span>{{ label }}</span>
<span class="ml-2 text-gray-400">{{ value }}</span> <span class="ml-2 text-gray-400">{{ value }}</span>
<span v-if="data.num" class="white ml-2">{{ data.num }}</span>
</div> </div>
</template> </template>
</VbenCheckButtonGroup> </VbenCheckButtonGroup>