From 62d295c430492e2b3b96b88f1b8e4015f186b33c Mon Sep 17 00:00:00 2001 From: alisagerasimova Date: Tue, 17 Feb 2026 12:38:20 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=B2=D1=82=D0=BE=D1=80=D0=BD?= =?UTF-8?q?=D1=8B=D0=B9=20=D0=B2=D1=8B=D0=B1=D0=BE=D1=80=20=D0=B0=D1=80?= =?UTF-8?q?=D1=83=D0=BA=D0=BE=20=D0=BC=D0=B0=D1=80=D0=BA=D0=B5=D1=80=D0=BE?= =?UTF-8?q?=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Сделали возможным повторное нажатие на уже выбранный аруко маркер --- src/App.vue | 33 ++++++++++++++++++++------------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/App.vue b/src/App.vue index 6b3995c..73d85ad 100644 --- a/src/App.vue +++ b/src/App.vue @@ -11,7 +11,7 @@ onMounted(()=>{ for (let i = 0; i < 100; i++) { numbers.value.push({ - variable: '', + variable: [], x: i % 10, y: 9 - Math.floor(i / 10), index: i @@ -20,26 +20,31 @@ onMounted(()=>{ }) function setNumber(item) { - let valueOfMarker = item.variable; + let valueOfMarker = item.variable[0]; + //если в клетке нет числа, то оно поставится if (valueOfMarker === '') { - // Добавляем выбранную клетку - item.variable = clickCount.value; + item.variable.push(String(clickCount.value)); listOfTrips.value.push(item); clickCount.value++; } else if (valueOfMarker === clickCount.value - 1) { - // Удаляем последнюю выбранную клетку - item.variable = ''; - // Удаляем из списка по совпадению + //если мы нажимаем на последнюю выбранную клетку, то у неё удаляется число + item.variable.splice(0, 1) ; const index = listOfTrips.value.indexOf(item); if (index !== -1) { listOfTrips.value.splice(index, 1); } clickCount.value--; } else { - izitoast.info({ - title: 'Информация', - message: "Удалять можно только последний пункт маршрута" - }); + //если нажимаем на ранее отмеченную клетку (не последнюю), то вывбодится ошибка + listOfTrips.value.push(item) + 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() { + clickCount.value = 1 numbers.value = [] + listOfTrips.value = [] for (let i = 0; i < 100; i++) { numbers.value.push({ - variable: '', + variable: [], x: i % 10, y: 9 - Math.floor(i / 10), index: i @@ -77,7 +84,7 @@ function cleanResult() { :key="index" @click="setNumber(item)" > - {{ item.variable }} + {{ numbers[index].variable.join(', ') }}