3
3
:items =" items"
4
4
clearable
5
5
multiple
6
- v-model =" localValue "
6
+ v-model =" model "
7
7
>
8
8
<template #prepend-item >
9
- <v-list-item
10
- @click =" selectAll"
11
- >
12
- Select All
13
- </v-list-item >
9
+ <v-select-actions >
10
+ <v-btn
11
+ @click =" selectAll()"
12
+ data-cy =" task-filter-select-all"
13
+ >
14
+ Select All
15
+ </v-btn >
16
+ </v-select-actions >
17
+ <v-divider />
14
18
</template >
15
19
16
20
<template #item =" { item , props } " >
33
37
<v-chip
34
38
v-if =" index < maxVisibleStates"
35
39
closable
36
- @click:close =" removeItem(item.raw )"
40
+ @click:close =" removeItem(index )"
37
41
size =" small"
38
42
:close-icon =" mdiClose"
39
43
>
55
59
v-if =" index === maxVisibleStates"
56
60
class =" text-grey text-caption"
57
61
>
58
- (+{{ localValue .length - maxVisibleStates }})
62
+ (+{{ model .length - maxVisibleStates }})
59
63
</span >
60
64
</template >
61
65
</v-select >
62
66
</template >
63
67
64
68
<script setup>
65
- import { computed } from ' vue'
66
69
import { mdiClose } from ' @mdi/js'
67
70
import Task from ' @/components/cylc/Task.vue'
68
71
import Workflowicon from ' @/components/cylc/gscan/WorkflowIcon.vue'
69
72
70
73
const props = defineProps ({
71
- /** Array of selected states */
72
- modelValue: {
73
- type: Array ,
74
- default : () => [],
75
- },
76
74
items: {
77
75
type: Array ,
78
76
required: true ,
@@ -83,24 +81,16 @@ const props = defineProps({
83
81
},
84
82
})
85
83
86
- const emit = defineEmits ([' update:modelValue' ])
87
-
88
- const localValue = computed ({
89
- get () {
90
- return props .modelValue
91
- },
92
- set (val) {
93
- emit (' update:modelValue' , val)
94
- }
95
- })
84
+ /** Array of selected states */
85
+ const model = defineModel ({ type: Array })
96
86
97
87
const maxVisibleStates = 4
98
88
99
- function removeItem (key ) {
100
- localValue .value = localValue . value . filter ( item => item !== key )
89
+ function removeItem (index ) {
90
+ model .value . splice (index, 1 )
101
91
}
102
92
103
93
function selectAll () {
104
- localValue .value = props .items
94
+ model .value = props .items
105
95
}
106
96
</script >
0 commit comments