Повторный выбор аруко маркеров

Сделали возможным повторное нажатие на уже выбранный аруко маркер
This commit is contained in:
alisagerasimova
2026-02-17 12:38:20 +03:00
parent dc8bef100f
commit 62d295c430
+20 -13
View File
@@ -11,7 +11,7 @@ onMounted(()=>{
for (let i = 0; i < 100; i++) { for (let i = 0; i < 100; i++) {
numbers.value.push({ numbers.value.push({
variable: '', variable: [],
x: i % 10, x: i % 10,
y: 9 - Math.floor(i / 10), y: 9 - Math.floor(i / 10),
index: i index: i
@@ -20,26 +20,31 @@ onMounted(()=>{
}) })
function setNumber(item) { function setNumber(item) {
let valueOfMarker = item.variable; let valueOfMarker = item.variable[0];
//если в клетке нет числа, то оно поставится
if (valueOfMarker === '') { if (valueOfMarker === '') {
// Добавляем выбранную клетку item.variable.push(String(clickCount.value));
item.variable = clickCount.value;
listOfTrips.value.push(item); listOfTrips.value.push(item);
clickCount.value++; clickCount.value++;
} else if (valueOfMarker === clickCount.value - 1) { } else if (valueOfMarker === clickCount.value - 1) {
// Удаляем последнюю выбранную клетку //если мы нажимаем на последнюю выбранную клетку, то у неё удаляется число
item.variable = ''; item.variable.splice(0, 1) ;
// Удаляем из списка по совпадению
const index = listOfTrips.value.indexOf(item); const index = listOfTrips.value.indexOf(item);
if (index !== -1) { if (index !== -1) {
listOfTrips.value.splice(index, 1); listOfTrips.value.splice(index, 1);
} }
clickCount.value--; clickCount.value--;
} else { } else {
izitoast.info({ //если нажимаем на ранее отмеченную клетку (не последнюю), то вывбодится ошибка
title: 'Информация', listOfTrips.value.push(item)
message: "Удалять можно только последний пункт маршрута" if (numbers.value[item.index].variable.at(-1) === clickCount.value-1) {
}); izitoast.error({title:'Ошибка', message:'Нельзя выбирать один и тот же aruco маркер 2 раза подряд'})
return
}
// numbers.value[item.index].variable = `${item.variable}, ${clickCount.value}`
numbers.value[item.index].variable.push(clickCount.value)
clickCount.value++;
} }
} }
@@ -56,10 +61,12 @@ function saveResult() {
} }
function cleanResult() { function cleanResult() {
clickCount.value = 1
numbers.value = [] numbers.value = []
listOfTrips.value = []
for (let i = 0; i < 100; i++) { for (let i = 0; i < 100; i++) {
numbers.value.push({ numbers.value.push({
variable: '', variable: [],
x: i % 10, x: i % 10,
y: 9 - Math.floor(i / 10), y: 9 - Math.floor(i / 10),
index: i index: i
@@ -77,7 +84,7 @@ function cleanResult() {
:key="index" :key="index"
@click="setNumber(item)" @click="setNumber(item)"
> >
{{ item.variable }} {{ numbers[index].variable.join(', ') }}
</div> </div>
</div> </div>
<button <button