1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
| <!-- 标签选项 -->
| <script setup lang="ts">
| const props = withDefaults(
| defineProps<{
| [k: string]: any;
| modelValue: string;
| tags?: { label: string; value: string }[];
| }>(),
| {
| tags: () => [],
| },
| );
|
| const emits = defineEmits<{
| (e: 'update:modelValue', value: string): void;
| }>();
| </script>
|
| <template>
| <div class="flex flex-wrap gap-2">
| <span
| v-for="tag in props.tags"
| :key="tag.value"
| class="border-card-100 mb-2 cursor-pointer rounded border-2 border-solid bg-card px-1 text-xs leading-6"
| :class="
| modelValue === tag.value && '!border-primary-500 !text-primary-500'
| "
| @click="emits('update:modelValue', tag.value)"
| >
| {{ tag.label }}
| </span>
| </div>
| </template>
|
|