DemoAutocompleteSlots.vue
1.61 KB
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<script setup lang="ts">
import avatar1 from '@images/avatars/avatar-1.png'
import avatar2 from '@images/avatars/avatar-2.png'
import avatar3 from '@images/avatars/avatar-3.png'
import avatar4 from '@images/avatars/avatar-4.png'
import avatar5 from '@images/avatars/avatar-5.png'
import avatar6 from '@images/avatars/avatar-6.png'
import avatar7 from '@images/avatars/avatar-7.png'
import avatar8 from '@images/avatars/avatar-8.png'
const friends = ref(['Sandra Adams', 'Britta Holt'])
const people = [
{ name: 'Sandra Adams', group: 'Group 1', avatar: avatar1 },
{ name: 'Ali Connors', group: 'Group 1', avatar: avatar2 },
{ name: 'Trevor Hansen', group: 'Group 1', avatar: avatar3 },
{ name: 'Tucker Smith', group: 'Group 1', avatar: avatar4 },
{ name: 'Britta Holt', group: 'Group 2', avatar: avatar5 },
{ name: 'Jane Smith ', group: 'Group 2', avatar: avatar6 },
{ name: 'John Smith', group: 'Group 2', avatar: avatar7 },
{ name: 'Sandra Williams', group: 'Group 2', avatar: avatar8 },
]
</script>
<template>
<VAutocomplete
v-model="friends"
chips
closable-chips
multiple
:items="people"
item-title="name"
item-value="name"
placeholder="Select User"
label="Select"
>
<template #chip="{ props, item }">
<VChip
v-bind="props"
:prepend-avatar="item.raw.avatar"
:text="item.raw.name"
/>
</template>
<template #item="{ props, item }">
<VListItem
v-bind="props"
:prepend-avatar="item?.raw?.avatar"
:title="item?.raw?.name"
:subtitle="item?.raw?.group"
/>
</template>
</VAutocomplete>
</template>