#8078 enable multi choice #848
|
@ -331,6 +331,16 @@ function handleScroll() {
|
|||
const isAtBottom = Math.abs(scrollHeight - scrollTop - clientHeight) <= 40;
|
||||
if (isAtBottom) CrudModelRef.value.vnPaginateRef.paginate();
|
||||
}
|
||||
|
||||
function handleSelection({ evt, added, rows: selectedRows }, rows) {
|
||||
if (evt?.shiftKey && added) {
|
||||
const rowIndex = selectedRows[0].$index;
|
||||
|
||||
for (const row of rows) {
|
||||
jorgep
commented
Podría hacer un filter, pero creo que mejor un for para no recorrerlas todas , en caso de que hayan muchos registros. Podría hacer un filter, pero creo que mejor un for para no recorrerlas todas , en caso de que hayan muchos registros.
|
||||
if (row.$index > rowIndex) break;
|
||||
selected.value.push(row);
|
||||
}
|
||||
jorgep
commented
Así se comprueba si la fila ya está seleccionada y no se recorren todas las filas. Así se comprueba si la fila ya está seleccionada y no se recorren todas las filas.
|
||||
}
|
||||
}
|
||||
</script>
|
||||
<template>
|
||||
<QDrawer
|
||||
|
@ -431,6 +441,7 @@ function handleScroll() {
|
|||
@virtual-scroll="handleScroll"
|
||||
@row-click="(_, row) => rowClickFunction && rowClickFunction(row)"
|
||||
@update:selected="emit('update:selected', $event)"
|
||||
@selection="(details) => handleSelection(details, rows)"
|
||||
>
|
||||
<template #top-left v-if="!$props.withoutHeader">
|
||||
<slot name="top-left"></slot>
|
||||
|
|
Loading…
Reference in New Issue
Solo selecciona 1, en el unico momento en que se pueden seleccionar más, es cuando le das al checkbox para seleccionarlas todas y evt es undefined. Además, quasar siempre añade la propiedad $index.
Quasar o CrudModel?
6248a4117d/src/components/CrudModel.vue (L123)
😏