#8078 enable multi choice #848
|
@ -335,10 +335,13 @@ function handleScroll() {
|
||||||
function handleSelection({ evt, added, rows: selectedRows }, rows) {
|
function handleSelection({ evt, added, rows: selectedRows }, rows) {
|
||||||
if (evt?.shiftKey && added) {
|
if (evt?.shiftKey && added) {
|
||||||
const rowIndex = selectedRows[0].$index;
|
const rowIndex = selectedRows[0].$index;
|
||||||
|
|||||||
selected.value.length = 0;
|
const selectedIndexes = new Set(selected.value.map((row) => row.$index));
|
||||||
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.
|
|||||||
for (const row of rows) {
|
for (const row of rows) {
|
||||||
if (row.$index == rowIndex) break;
|
if (row.$index == rowIndex) break;
|
||||||
|
if (!selectedIndexes.has(row.$index)) {
|
||||||
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.
|
|||||||
selected.value.push(row);
|
selected.value.push(row);
|
||||||
|
selectedIndexes.add(row.$index);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
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)
😏