Netfan
10 months ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with
22 additions and
4 deletions
-
packages/@core/ui-kit/shadcn-ui/src/components/select/select.vue
|
|
|
@ -1,4 +1,6 @@ |
|
|
|
<script lang="ts" setup> |
|
|
|
import { CircleX } from '@vben-core/icons'; |
|
|
|
|
|
|
|
import { |
|
|
|
Select, |
|
|
|
SelectContent, |
|
|
|
@ -8,17 +10,33 @@ import { |
|
|
|
} from '../../ui'; |
|
|
|
|
|
|
|
interface Props { |
|
|
|
allowClear?: boolean; |
|
|
|
class?: any; |
|
|
|
options?: Array<{ label: string; value: string }>; |
|
|
|
placeholder?: string; |
|
|
|
} |
|
|
|
|
|
|
|
const props = defineProps<Props>(); |
|
|
|
const props = withDefaults(defineProps<Props>(), { |
|
|
|
allowClear: false, |
|
|
|
}); |
|
|
|
|
|
|
|
const modelValue = defineModel<string>(); |
|
|
|
|
|
|
|
function handleClear() { |
|
|
|
modelValue.value = undefined; |
|
|
|
} |
|
|
|
</script> |
|
|
|
<template> |
|
|
|
<Select> |
|
|
|
<SelectTrigger :class="props.class"> |
|
|
|
<SelectValue :placeholder="placeholder" /> |
|
|
|
<Select v-model="modelValue"> |
|
|
|
<SelectTrigger :class="props.class" class="flex w-full items-center"> |
|
|
|
<SelectValue class="flex-auto text-left" :placeholder="placeholder" /> |
|
|
|
<CircleX |
|
|
|
@pointerdown.stop |
|
|
|
@click.stop.prevent="handleClear" |
|
|
|
v-if="allowClear && modelValue" |
|
|
|
data-clear-button |
|
|
|
class="mr-1 size-4 cursor-pointer opacity-50 hover:opacity-100" |
|
|
|
/> |
|
|
|
</SelectTrigger> |
|
|
|
<SelectContent> |
|
|
|
<template v-for="item in options" :key="item.value"> |
|
|
|
|