From 0b0adf48ff2eca5ee004c98133d97ef9ab2ba2ae Mon Sep 17 00:00:00 2001 From: Ilia Miheev Date: Sat, 7 Mar 2026 22:38:06 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9E=D1=81=D1=82=D0=B0=D0=B2=D0=B8=D0=BB=20on?= =?UTF-8?q?ContextMenu=20=D0=B2=20App?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 51 ++++++++++- src/components/MyDialog.vue | 165 +++++++++++++++++++----------------- src/shared/ContextMenu.js | 51 ----------- 3 files changed, 136 insertions(+), 131 deletions(-) delete mode 100644 src/shared/ContextMenu.js diff --git a/src/App.vue b/src/App.vue index e02466f..98c372f 100644 --- a/src/App.vue +++ b/src/App.vue @@ -5,7 +5,7 @@ import {useEventListener} from "@vueuse/core"; import MyDialog from "./components/MyDialog.vue"; import MyDropMenu from "./components/MyDropMenu.vue"; import copyToclipboard from "./shared/copyToclipboard"; -import onContextMenu from './shared/ContextMenu' +import ContextMenu from "@imengyu/vue3-context-menu"; const numbers = ref([]); // Инициализируем массив с пустыми строками const clickCount = ref(1); // Счетчик нажатий @@ -159,6 +159,55 @@ function deletePlatform(item) { clickCount.value-- } +function onContextMenu(e, item) { + ContextMenu.showContextMenu({ + theme: 'mac dark', + x: e.x, + y: e.y, + items: [ + { + label: "Платформы", + children: [ + { + label: "Белая", + onClick: () => createPlatform(item, 'white'), + }, + { + label: "Синяя", + onClick: () => createPlatform(item, 'blue'), + }, + { + label: "Красная", + onClick: () => createPlatform(item, 'red'), + }, + { + label: "Удалить", + onClick: () => deletePlatform(item), + }, + ] + }, + { + label: "QR код", + children: [ + { + label: "Добавить", + onClick: () => alert('Здесь ещё предстоит написать код') + }, + { + label: "Удалить", + onClick: () => alert('Здесь ещё предстоит написать код') + }, + ], + }, + { + label: "Отмена", + onClick: () => { + alert('Здесь ещё предстоит написать код') + } + }, + ] + }); +}