From 76bda1c0ee35aa77c3247c5de37ce67379a54c56 Mon Sep 17 00:00:00 2001 From: Ilia Miheev Date: Thu, 12 Mar 2026 21:51:23 +0300 Subject: [PATCH 01/20] =?UTF-8?q?=D0=9F=D1=80=D0=B5=D0=B4=D0=B2=D0=B0?= =?UTF-8?q?=D1=80=D0=B8=D1=82=D0=B5=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BC=D0=BC=D0=B8=D1=82=20=D0=BF=D0=BE=20=D0=BD=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D0=B3=D0=B0=D1=86=D0=B8=D0=B8=20=D0=B2=20=D0=B1?= =?UTF-8?q?=D0=BE=D0=BA=D0=BE=D0=B2=D0=BE=D0=B9=20=D0=BF=D0=B0=D0=BD=D0=B5?= =?UTF-8?q?=D0=BB=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 45 ++--- src/components/MyDialog.vue | 19 ++- src/components/MyDropMenu.vue | 260 ++++++++++++++++++++--------- src/components/UI/CustomButton.vue | 35 ++++ 4 files changed, 249 insertions(+), 110 deletions(-) create mode 100644 src/components/UI/CustomButton.vue diff --git a/src/App.vue b/src/App.vue index 8650d0d..910121b 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,11 +1,12 @@ diff --git a/src/components/UI/CustomButton.vue b/src/components/UI/CustomButton.vue new file mode 100644 index 0000000..153626e --- /dev/null +++ b/src/components/UI/CustomButton.vue @@ -0,0 +1,35 @@ + + + + + \ No newline at end of file -- 2.52.0 From ed5d626f24bda8065a1451efe672592fe5f1f36b Mon Sep 17 00:00:00 2001 From: alisagerasimova Date: Sat, 14 Mar 2026 11:24:50 +0300 Subject: [PATCH 02/20] =?UTF-8?q?=D0=BD=D0=B0=D0=B7=D0=BD=D0=B0=D1=87?= =?UTF-8?q?=D0=B8=D0=BB=D0=B0=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D1=8E?= =?UTF-8?q?=20=D0=BA=D0=BD=D0=BE=D0=BF=D0=BA=D0=B5=20=D1=81=D0=BE=D1=85?= =?UTF-8?q?=D1=80=D0=B0=D0=BD=D0=B8=D1=82=D1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/App.vue b/src/App.vue index 910121b..a5f196a 100644 --- a/src/App.vue +++ b/src/App.vue @@ -296,7 +296,7 @@ function onContextMenu(e, item) {
- Сохранить + Сохранить Очистить Отменить
@@ -396,6 +396,6 @@ html { .actions button { padding: 20px 35px; - //background-color: red; + /* background-color: red; */ } -- 2.52.0 From f7ae74dd9b49bdff8fafa931807db21fc31a02a9 Mon Sep 17 00:00:00 2001 From: alisagerasimova Date: Sun, 15 Mar 2026 14:35:29 +0300 Subject: [PATCH 03/20] =?UTF-8?q?=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=D0=B0=20=D0=BC=D0=B0=D0=BB=D0=B5=D0=BD=D1=8C=D0=BA?= =?UTF-8?q?=D1=83=D1=8E=20=D0=BE=D0=BF=D0=B5=D1=87=D0=B0=D1=82=D0=BA=D1=83?= =?UTF-8?q?=20=D0=B2=20=D1=88=D0=B0=D0=B1=D0=BB=D0=BE=D0=BD=D0=B5=20=D0=BE?= =?UTF-8?q?=D0=BF=D1=80=D0=B5=D0=B4=D0=B5=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20?= =?UTF-8?q?=D1=86=D0=B2=D0=B5=D1=82=D0=B0=20=D0=B8=20=D0=B8=D0=B7=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=BB=D0=B0=20=D1=88=D0=B8=D1=80=D0=B8=D0=BD?= =?UTF-8?q?=D1=83=20=D0=BF=D0=B0=D0=BD=D0=B5=D0=BB=D0=B8=20=D0=BD=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D0=B3=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/shablons/color.txt | 2 +- src/components/MyDropMenu.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/public/shablons/color.txt b/public/shablons/color.txt index b61e0f9..71cdb2c 100644 --- a/public/shablons/color.txt +++ b/public/shablons/color.txt @@ -34,7 +34,7 @@ def color_detection(data, print_type='str'): color = 'green' elif r > b + 20 and r > g + 20 and r > 100: color = 'red' - elif r > 150 and g > 150 and g > 150: + elif r > 150 and g > 150 and b > 150: color= 'white' else: color = None diff --git a/src/components/MyDropMenu.vue b/src/components/MyDropMenu.vue index 9f5fec6..d848f09 100644 --- a/src/components/MyDropMenu.vue +++ b/src/components/MyDropMenu.vue @@ -183,7 +183,7 @@ h1 { position: fixed; top: 0; left: 0; - width: 300px; + width: 240px; height: 100%; background: white; z-index: 1000; -- 2.52.0 From b43057e750efeb33420dfcc5554e273b91213441 Mon Sep 17 00:00:00 2001 From: alisagerasimova Date: Mon, 16 Mar 2026 14:59:27 +0300 Subject: [PATCH 04/20] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D0=BB=D0=B8=20=D0=BE=D1=88=D0=B8=D0=B1=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=BD=D0=B0=20=D0=BA=D0=BE=D1=82=D0=BE=D1=80=D1=8B=D0=B5=20?= =?UTF-8?q?=D1=83=D0=BA=D0=B0=D0=B7=D0=B0=D0=BB=20=D1=82=D0=B5=D1=81=D1=82?= =?UTF-8?q?=D0=B8=D1=80=D0=BE=D0=B2=D1=89=D0=B8=D0=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 52 +++++++++++----------- src/components/MyDialog.vue | 19 +++++--- src/components/MyDropMenu.vue | 69 +++++++++++++++++++----------- src/components/UI/CustomButton.vue | 12 ++++-- 4 files changed, 92 insertions(+), 60 deletions(-) diff --git a/src/App.vue b/src/App.vue index a5f196a..333ad51 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,7 +1,7 @@ \ No newline at end of file + \ No newline at end of file diff --git a/src/components/MyDropMenu.vue b/src/components/MyDropMenu.vue index d848f09..5ee4948 100644 --- a/src/components/MyDropMenu.vue +++ b/src/components/MyDropMenu.vue @@ -1,12 +1,7 @@ diff --git a/src/components/UI/CustomButton.vue b/src/components/UI/CustomButton.vue index 153626e..b77c445 100644 --- a/src/components/UI/CustomButton.vue +++ b/src/components/UI/CustomButton.vue @@ -13,11 +13,11 @@ const props = defineProps({ @@ -31,5 +31,11 @@ const props = defineProps({ color: white; width: 100%; font-size: 17px; + + text-decoration: none; + box-sizing: border-box; + text-align: center; + font-family: 'Courier New', Courier, monospace; + margin: 0; } \ No newline at end of file -- 2.52.0 From fb5ec5e23882be408c414dc288b50828a466bf1d Mon Sep 17 00:00:00 2001 From: alisagerasimova Date: Mon, 16 Mar 2026 17:56:24 +0300 Subject: [PATCH 05/20] =?UTF-8?q?=D0=97=D0=B0=D0=BF=D0=BE=D0=BB=D0=BD?= =?UTF-8?q?=D0=B8=D0=BB=D0=B0=20=D0=BD=D0=B0=D0=B2=D0=B8=D0=B3=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/MyDropMenu.vue | 72 ++++++++++++++++------------------- 1 file changed, 33 insertions(+), 39 deletions(-) diff --git a/src/components/MyDropMenu.vue b/src/components/MyDropMenu.vue index 5ee4948..8402735 100644 --- a/src/components/MyDropMenu.vue +++ b/src/components/MyDropMenu.vue @@ -72,59 +72,53 @@ const links = [ hrefToCourse: 'https://stepik.org/lesson/2260739/step/1?unit=2294748' }, { - title: '2', - body: 'Информация для учащихся 2', - hrefToDoc: 'https://clover.coex.tech/ru/simple_offboard.html', - hrefToCourse: 'https://stepic.org' + title: 'Что такое нода?', + body: 'Нода в ROS - исполняемая программа, которая выполняет одну задачу. ', + hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', + hrefToCourse: 'https://stepik.org/lesson/2261765/step/1?unit=2295758' }, { - title: '3', - body: 'Информация для учащихся 3', - hrefToDoc: 'https://clover.coex.tech/ru/simple_offboard.html', - hrefToCourse: 'https://stepic.org' + title: 'Что такое topic?', + body: 'Топик (Topic) в ROS — это именованный канал передачи данных, через который ноды обмениваются сообщениями.', + hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', + hrefToCourse: 'https://stepik.org/lesson/2262844/step/1?unit=2296866' }, { - title: '4', - body: 'Информация для учащихся 4', - hrefToDoc: 'https://clover.coex.tech/ru/simple_offboard.html', - hrefToCourse: 'https://stepic.org' + title: 'Что такое издатель?', + body: 'Издатель (Publisher) в ROS — это узел, который производит данные. Он может публиковать сообщения определённого типа в заданной теме и делать их доступными для других узлов (подписчиков). ', + hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', + hrefToCourse: 'https://stepik.org/lesson/2262844/step/1?unit=2296866' }, { - title: '5', - body: 'Информация для учащихся 5', - hrefToDoc: 'https://clover.coex.tech/ru/simple_offboard.html', - hrefToCourse: 'https://stepic.org' + title: 'Что такое подписчик?', + body: 'Подписчик (Subscriber) в ROS — это узел, который получает сообщения и информацию, публикуемые в определённой теме (канале) ROS.', + hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', + hrefToCourse: 'https://stepik.org/lesson/2262844/step/1?unit=2296866' }, { - title: '6', - body: 'Информация для учащихся 6', - hrefToDoc: 'https://clover.coex.tech/ru/simple_offboard.html', - hrefToCourse: 'https://stepic.org' + title: 'Что такое сервис?', + body: 'Сервис в ROS - это функция, которую мы можем вызвать, чтобы либо дать команду роботу,либо получить от него какую-то информацию.', + hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', + hrefToCourse: 'https://stepik.org/lesson/2263182/step/1?unit=2297206' }, { - title: '7', - body: 'Информация для учащихся 7', - hrefToDoc: 'https://clover.coex.tech/ru/simple_offboard.html', - hrefToCourse: 'https://stepic.org' + title: 'navigate_wait', + body: 'Navigate_wait — функция в библиотеке CLOVER, которая ожидает, пока дрон долетит до целевой точки, перед выполнением следующей команды. Это полезно, так как функция navigate сразу возвращает управление: скрипт продолжает выполняться, даже если дрон ещё летит к цели. ', + hrefToDoc: 'https://clover.coex.tech/ru/snippets.html', + hrefToCourse: 'https://stepik.org/lesson/2264712/step/1?unit=2298803' }, { - title: '8', - body: 'Информация для учащихся 8', - hrefToDoc: 'https://clover.coex.tech/ru/simple_offboard.html', - hrefToCourse: 'https://stepic.org' + title: 'Системы координат', + body: 'Системы координат в Clover позволяют определять местоположение дрона относительно разных точек отсчёта, что важно для автономного полёта, навигации и других задач. Наиболее часто используемые: aruco_map и body', + hrefToCourse: 'https://stepik.org/lesson/2264336/step/1?unit=2298407', + hrefToDoc: 'https://clover.coex.tech/ru/frames.html' }, { - title: '9', - body: 'Информация для учащихся 9', - hrefToDoc: 'https://clover.coex.tech/ru/simple_offboard.html', - hrefToCourse: 'https://stepic.org' - }, - { - title: '0', - body: 'Информация для учащихся 0', - hrefToDoc: 'https://clover.coex.tech/ru/simple_offboard.html', - hrefToCourse: 'https://stepic.org' - }, + title: 'OpenCV', + body: 'OpenCV (Open Source Computer Vision Library) — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом.', + hrefToDoc: 'https://opencv.org/', + hrefToCourse: 'https://stepik.org/lesson/2272700/step/1?unit=2306893' + } ] // Экспортируем методы, если захотим управлять меню извне -- 2.52.0 From 0d85ac597b001e8cbc9f9d760429b8a7c34f49b6 Mon Sep 17 00:00:00 2001 From: alisagerasimova Date: Tue, 17 Mar 2026 13:47:52 +0300 Subject: [PATCH 06/20] =?UTF-8?q?=D0=9F=D0=B5=D1=80=D0=B5=D0=B8=D0=BC?= =?UTF-8?q?=D0=B5=D0=BD=D0=BE=D0=B2=D0=B0=D0=BB=20=D0=BF=D1=80=D0=BE=D0=B5?= =?UTF-8?q?=D0=BA=D1=82=20=D0=B8=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BB=D0=BE=D0=B3=D0=BE=D1=82=D0=B8=D0=BF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 2 +- package-lock.json | 4 +- package.json | 4 +- public/images/logo.jpg | Bin 0 -> 5415 bytes src/components/MyDialog.vue | 2 +- src/components/MyDropMenu.vue | 75 +++++++++++++++-------------- src/components/UI/CustomButton.vue | 6 ++- src/main.js | 2 + 8 files changed, 51 insertions(+), 44 deletions(-) create mode 100644 public/images/logo.jpg diff --git a/index.html b/index.html index 0694331..98f3860 100644 --- a/index.html +++ b/index.html @@ -2,7 +2,7 @@ - Probody + SkyVue diff --git a/package-lock.json b/package-lock.json index 2c416e6..71ba7c7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,11 +1,11 @@ { - "name": "probody", + "name": "SkyVue", "version": "1.0.0", "lockfileVersion": 3, "requires": true, "packages": { "": { - "name": "probody", + "name": "SkyVue", "version": "1.0.0", "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index dceac85..f1915ab 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { - "name": "probody", - "productName": "probody", + "name": "SkyVue", + "productName": "SkyVue", "version": "1.0.0", "description": "My Electron application description", "main": ".vite/build/main.js", diff --git a/public/images/logo.jpg b/public/images/logo.jpg new file mode 100644 index 0000000000000000000000000000000000000000..be449f01fa12456d7aadce0e2c2906f8ab03dd44 GIT binary patch literal 5415 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 literal 0 HcmV?d00001 diff --git a/src/components/MyDialog.vue b/src/components/MyDialog.vue index d3bafa2..7d0ce6f 100644 --- a/src/components/MyDialog.vue +++ b/src/components/MyDialog.vue @@ -28,7 +28,7 @@ const props = defineProps({ isSuccess: { type: Boolean, - required: true + default: true, }, show: { type: Boolean, diff --git a/src/components/MyDropMenu.vue b/src/components/MyDropMenu.vue index 8402735..b255953 100644 --- a/src/components/MyDropMenu.vue +++ b/src/components/MyDropMenu.vue @@ -34,7 +34,8 @@ @@ -66,40 +67,16 @@ function openInfoCard(obj) { const links = [ { - title: 'Что такое ROS?', + title: 'ROS', body: 'ROS (Robot Operating System) — экосистема для программирования роботов с открытым исходным кодом', hrefToDoc: 'https://www.ros.org/', hrefToCourse: 'https://stepik.org/lesson/2260739/step/1?unit=2294748' }, { - title: 'Что такое нода?', - body: 'Нода в ROS - исполняемая программа, которая выполняет одну задачу. ', - hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', - hrefToCourse: 'https://stepik.org/lesson/2261765/step/1?unit=2295758' - }, - { - title: 'Что такое topic?', - body: 'Топик (Topic) в ROS — это именованный канал передачи данных, через который ноды обмениваются сообщениями.', - hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', - hrefToCourse: 'https://stepik.org/lesson/2262844/step/1?unit=2296866' - }, - { - title: 'Что такое издатель?', - body: 'Издатель (Publisher) в ROS — это узел, который производит данные. Он может публиковать сообщения определённого типа в заданной теме и делать их доступными для других узлов (подписчиков). ', - hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', - hrefToCourse: 'https://stepik.org/lesson/2262844/step/1?unit=2296866' - }, - { - title: 'Что такое подписчик?', - body: 'Подписчик (Subscriber) в ROS — это узел, который получает сообщения и информацию, публикуемые в определённой теме (канале) ROS.', - hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', - hrefToCourse: 'https://stepik.org/lesson/2262844/step/1?unit=2296866' - }, - { - title: 'Что такое сервис?', - body: 'Сервис в ROS - это функция, которую мы можем вызвать, чтобы либо дать команду роботу,либо получить от него какую-то информацию.', - hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', - hrefToCourse: 'https://stepik.org/lesson/2263182/step/1?unit=2297206' + title: 'OpenCV', + body: 'OpenCV (Open Source Computer Vision Library) — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом.', + hrefToDoc: 'https://opencv.org/', + hrefToCourse: 'https://stepik.org/lesson/2272700/step/1?unit=2306893' }, { title: 'navigate_wait', @@ -107,18 +84,42 @@ const links = [ hrefToDoc: 'https://clover.coex.tech/ru/snippets.html', hrefToCourse: 'https://stepik.org/lesson/2264712/step/1?unit=2298803' }, + { + title: 'Topic', + body: 'Топик (Topic) в ROS — это именованный канал передачи данных, через который ноды обмениваются сообщениями.', + hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', + hrefToCourse: 'https://stepik.org/lesson/2262844/step/1?unit=2296866' + }, + { + title: 'Нода', + body: 'Нода в ROS - исполняемая программа, которая выполняет одну задачу. ', + hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', + hrefToCourse: 'https://stepik.org/lesson/2261765/step/1?unit=2295758' + }, + { + title: 'Издатель', + body: 'Издатель (Publisher) в ROS — это узел, который производит данные. Он может публиковать сообщения определённого типа в заданной теме и делать их доступными для других узлов (подписчиков). ', + hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', + hrefToCourse: 'https://stepik.org/lesson/2262844/step/1?unit=2296866' + }, + { + title: 'Подписчик', + body: 'Подписчик (Subscriber) в ROS — это узел, который получает сообщения и информацию, публикуемые в определённой теме (канале) ROS.', + hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', + hrefToCourse: 'https://stepik.org/lesson/2262844/step/1?unit=2296866' + }, + { + title: 'Сервис', + body: 'Сервис в ROS - это функция, которую мы можем вызвать, чтобы либо дать команду роботу,либо получить от него какую-то информацию.', + hrefToDoc: 'https://docs.voltbro.ru/starting-ros/basics.html', + hrefToCourse: 'https://stepik.org/lesson/2263182/step/1?unit=2297206' + }, { title: 'Системы координат', body: 'Системы координат в Clover позволяют определять местоположение дрона относительно разных точек отсчёта, что важно для автономного полёта, навигации и других задач. Наиболее часто используемые: aruco_map и body', hrefToCourse: 'https://stepik.org/lesson/2264336/step/1?unit=2298407', hrefToDoc: 'https://clover.coex.tech/ru/frames.html' }, - { - title: 'OpenCV', - body: 'OpenCV (Open Source Computer Vision Library) — библиотека алгоритмов компьютерного зрения, обработки изображений и численных алгоритмов общего назначения с открытым кодом.', - hrefToDoc: 'https://opencv.org/', - hrefToCourse: 'https://stepik.org/lesson/2272700/step/1?unit=2306893' - } ] // Экспортируем методы, если захотим управлять меню извне @@ -187,6 +188,8 @@ h1 { z-index: 1000; padding: 0 20px 20px; overflow-y: scroll; + overflow: auto; + border-right: white 2px solid; } /* Затемнение фона */ diff --git a/src/components/UI/CustomButton.vue b/src/components/UI/CustomButton.vue index b77c445..1552730 100644 --- a/src/components/UI/CustomButton.vue +++ b/src/components/UI/CustomButton.vue @@ -9,7 +9,6 @@ const props = defineProps({ default: null } }) - @@ -52,6 +52,10 @@ const isOpen = ref(false); const isModalVisible = ref(false); const infoCard = ref({}) +function handleOkBtn() { + isModalVisible.value = false + isOpen.value = true +} const toggleMenu = () => { isOpen.value = !isOpen.value; }; @@ -62,6 +66,7 @@ const closeMenu = () => { function openInfoCard(obj) { isModalVisible.value = true + isOpen.value = false infoCard.value = obj } @@ -129,11 +134,9 @@ defineExpose({ open: () => (isOpen.value = true), close: closeMenu }); \ No newline at end of file diff --git a/src/components/MyDialog.vue b/src/components/MyDialog.vue index 1c54557..68f556a 100644 --- a/src/components/MyDialog.vue +++ b/src/components/MyDialog.vue @@ -52,7 +52,7 @@ const props = defineProps({ display: flex; justify-content: center; align-items: center; - z-index: 999; + z-index: 998; } .modal { -- 2.52.0 From ad78917e914444a0be4bf2a3c38846099d564e6e Mon Sep 17 00:00:00 2001 From: Ilia Miheev Date: Sun, 22 Mar 2026 14:05:38 +0300 Subject: [PATCH 10/20] =?UTF-8?q?=D0=A4=D0=B8=D0=BA=D1=81=20=D0=B1=D0=B0?= =?UTF-8?q?=D0=B3=D0=B0=20=D0=B8=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=B0=D0=BD=D0=B8=D0=BC=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/CodeView.vue | 11 +++++--- src/components/MyDialog.vue | 47 ++++++++++++++++++++++++++++++++--- src/components/MyDropMenu.vue | 15 +++++------ 3 files changed, 59 insertions(+), 14 deletions(-) diff --git a/src/components/CodeView.vue b/src/components/CodeView.vue index 983c728..9649103 100644 --- a/src/components/CodeView.vue +++ b/src/components/CodeView.vue @@ -16,11 +16,17 @@ console.log(props.code) @@ -29,7 +35,6 @@ console.log(props.code) position: fixed; top: 0; left: 0; - //background-image: radial-gradient(#23aae3e2, #222222); background-color: #222222; overflow: auto; color: #eeeeee; diff --git a/src/components/MyDialog.vue b/src/components/MyDialog.vue index 68f556a..ad73a14 100644 --- a/src/components/MyDialog.vue +++ b/src/components/MyDialog.vue @@ -1,12 +1,12 @@ \ No newline at end of file diff --git a/src/components/MyDropMenu.vue b/src/components/MyDropMenu.vue index 024a21c..97160d1 100644 --- a/src/components/MyDropMenu.vue +++ b/src/components/MyDropMenu.vue @@ -24,7 +24,7 @@ - + @@ -34,8 +34,8 @@ @@ -44,7 +44,7 @@ \ No newline at end of file diff --git a/src/components/UI/CustomButton.vue b/src/components/UI/CustomButton.vue index 1552730..cf2f853 100644 --- a/src/components/UI/CustomButton.vue +++ b/src/components/UI/CustomButton.vue @@ -2,7 +2,7 @@ const props = defineProps({ isSuccess: { type: Boolean, - required: true + required: false }, to: { type: String, diff --git a/src/renderer.js b/src/renderer.js index 4099886..c191d27 100644 --- a/src/renderer.js +++ b/src/renderer.js @@ -29,5 +29,9 @@ import { createApp } from 'vue'; import App from './App.vue'; import '@imengyu/vue3-context-menu/lib/vue3-context-menu.css' +import Prism from 'prismjs' +import 'prismjs/themes/prism-okaidia.css' + + import ContextMenu from '@imengyu/vue3-context-menu' createApp(App).use(ContextMenu).mount('#app'); -- 2.52.0 From 7818fe062f86bca32ab2d961716df7abebcef11b Mon Sep 17 00:00:00 2001 From: Ilia Miheev Date: Wed, 25 Mar 2026 22:57:01 +0300 Subject: [PATCH 14/20] =?UTF-8?q?=D0=9D=D0=B5=D0=B1=D0=BE=D0=BB=D1=8C?= =?UTF-8?q?=D1=88=D0=B8=D0=B5=20=D1=84=D1=83=D0=BD=D0=BA=D1=86=D0=B8=D0=B8?= =?UTF-8?q?=20=D0=B8=20=D0=BF=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20=D1=81=D1=82?= =?UTF-8?q?=D0=B8=D0=BB=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.vue | 29 ++++++++------ src/components/CodeBlock.vue | 8 +++- src/components/CodeView.vue | 1 - src/components/MovementButtons.vue | 6 +-- src/components/MyDialog.vue | 20 ++++++++-- src/components/MyDropMenu.vue | 60 +---------------------------- src/data/informationForDirectory.js | 56 +++++++++++++++++++++++++++ 7 files changed, 101 insertions(+), 79 deletions(-) create mode 100644 src/data/informationForDirectory.js diff --git a/src/App.vue b/src/App.vue index 8697757..97917e3 100644 --- a/src/App.vue +++ b/src/App.vue @@ -1,7 +1,7 @@ \ No newline at end of file + + + \ No newline at end of file diff --git a/src/components/CodeView.vue b/src/components/CodeView.vue index d7484fd..d26ecfc 100644 --- a/src/components/CodeView.vue +++ b/src/components/CodeView.vue @@ -12,7 +12,6 @@ const props = defineProps({ default: false } }) -console.log(props.code)