Fieberkurve: Einzelnes Deaktivieren durch Klick auf denselben Punkt
This commit is contained in:
parent
d0fe56ff44
commit
4e4b1c4baf
@ -81,11 +81,11 @@ const props = defineProps({
|
|||||||
defaultValues: {
|
defaultValues: {
|
||||||
type: Array,
|
type: Array,
|
||||||
default: () => [
|
default: () => [
|
||||||
{ value: 4, clicked: false },
|
{ value: 4, clicked: false, lastClickedValue: null },
|
||||||
{ value: 4, clicked: false },
|
{ value: 4, clicked: false, lastClickedValue: null },
|
||||||
{ value: 4, clicked: false },
|
{ value: 4, clicked: false, lastClickedValue: null },
|
||||||
{ value: 4, clicked: false },
|
{ value: 4, clicked: false, lastClickedValue: null },
|
||||||
{ value: 4, clicked: false },
|
{ value: 4, clicked: false, lastClickedValue: null },
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
hideText: { type: Boolean, default: false },
|
hideText: { type: Boolean, default: false },
|
||||||
@ -129,11 +129,22 @@ watch(
|
|||||||
)
|
)
|
||||||
|
|
||||||
function handleClick(index) {
|
function handleClick(index) {
|
||||||
sliders.value[index].clicked = true
|
const clickedSlider = sliders.value[index]
|
||||||
|
const currentValue = Number(clickedSlider.value)
|
||||||
|
|
||||||
|
if (clickedSlider.clicked && clickedSlider.lastClickedValue === currentValue) {
|
||||||
|
// Deaktivieren
|
||||||
|
clickedSlider.clicked = false
|
||||||
|
clickedSlider.value = 4
|
||||||
|
clickedSlider.lastClickedValue = null
|
||||||
|
} else {
|
||||||
|
clickedSlider.clicked = true
|
||||||
|
clickedSlider.lastClickedValue = currentValue
|
||||||
|
}
|
||||||
|
|
||||||
const activeFilters = sliders.value
|
const activeFilters = sliders.value
|
||||||
.map((slider, idx) =>
|
.map((slider, idx) =>
|
||||||
slider.clicked ? {rowIndex: idx, value: Number(slider.value)} : null
|
slider.clicked ? { rowIndex: idx, value: Number(slider.value) } : null
|
||||||
)
|
)
|
||||||
.filter(Boolean)
|
.filter(Boolean)
|
||||||
|
|
||||||
@ -144,17 +155,18 @@ function resetSliders() {
|
|||||||
sliders.value.forEach(slider => {
|
sliders.value.forEach(slider => {
|
||||||
slider.value = 4
|
slider.value = 4
|
||||||
slider.clicked = false
|
slider.clicked = false
|
||||||
|
slider.lastClickedValue = null
|
||||||
})
|
})
|
||||||
|
|
||||||
emit("filter-by-row", [])
|
emit("filter-by-row", [])
|
||||||
}
|
}
|
||||||
|
|
||||||
function updateLine() {
|
function updateLine() {
|
||||||
// optional: Linienanimation etc.
|
// Optional: Linienanimation
|
||||||
}
|
}
|
||||||
|
|
||||||
onMounted(() => {
|
onMounted(() => {
|
||||||
// Initial
|
// Init
|
||||||
})
|
})
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user