From 0a4d4f3224ff1ddbb3a6b77d124fa2971fdf8336 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=94=D0=BC=D0=B8=D1=82=D1=80=D0=B8=D0=B9?= Date: Wed, 15 Jul 2026 21:41:53 +0300 Subject: [PATCH] =?UTF-8?q?feat(projects):=20UX=20=C2=AB=D0=B7=D0=B0=D0=BF?= =?UTF-8?q?=D1=83=D1=81=D1=82=D0=B8=D1=82=D1=81=D1=8F=20=D1=81=D0=B0=D0=BC?= =?UTF-8?q?=20=D0=BF=D0=BE=D1=81=D0=BB=D0=B5=20=D0=BF=D0=BE=D0=BF=D0=BE?= =?UTF-8?q?=D0=BB=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=C2=BB=20+=20=D0=B1=D0=B5?= =?UTF-8?q?=D0=B9=D0=B4=D0=B6=20=C2=AB=D0=B6=D0=B4=D1=91=D1=82=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=BF=D0=BE=D0=BB=D0=BD=D0=B5=D0=BD=D0=B8=D1=8F=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Окно нехватки баланса («Проекты») и «Конкурентное поле» теперь честно говорят, что взведённый проект запустится сам после пополнения (вместо «пополните, чтобы запустить»); добавлена кнопка «Пока не надо» (оставить черновиком). Бейдж взведённого проекта — «ждёт пополнения / запустится сам» вместо «не хватает баланса». Синхронно в «Проектах» и «Конкурентном поле». Тесты: ProjectLimitOverloadDialog + ProjectCardBadge обновлены/ дополнены; 8 фронт-спеков 59/59. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../js/components/projects/ProjectCard.vue | 4 ++-- .../projects/ProjectLimitOverloadDialog.vue | 13 ++++++++----- .../js/views/autopodbor/screens/CreateScreen.vue | 7 ++++--- .../autopodbor/screens/FieldCompetitorScreen.vue | 4 ++-- app/tests/Frontend/ProjectCardBadge.spec.ts | 6 +++--- .../Frontend/ProjectLimitOverloadDialog.spec.ts | 14 ++++++++++++++ 6 files changed, 33 insertions(+), 15 deletions(-) diff --git a/app/resources/js/components/projects/ProjectCard.vue b/app/resources/js/components/projects/ProjectCard.vue index e6068c08..67278916 100644 --- a/app/resources/js/components/projects/ProjectCard.vue +++ b/app/resources/js/components/projects/ProjectCard.vue @@ -87,7 +87,7 @@ {{ syncStatusLabel }} - Пополните баланс, чтобы запустить проект + Проект запустится сам, как только пополните баланс {{ syncStatusIcon }} @@ -132,7 +132,7 @@ const progressColor = computed(() => (progressPercent.value >= 90 ? 'success' : // 3. обычный sync_status const syncStatusLabel = computed(() => { if (props.project.preflight_blocked_at) { - return 'Не запущен — не хватает баланса'; + return 'Ждёт пополнения — запустится сам'; } if (props.project.balance_blocked) { return 'Приостановлен — не хватает баланса'; diff --git a/app/resources/js/components/projects/ProjectLimitOverloadDialog.vue b/app/resources/js/components/projects/ProjectLimitOverloadDialog.vue index b00ba90a..5e4127e4 100644 --- a/app/resources/js/components/projects/ProjectLimitOverloadDialog.vue +++ b/app/resources/js/components/projects/ProjectLimitOverloadDialog.vue @@ -31,6 +31,7 @@ const emit = defineEmits<{ 'update:modelValue': [value: boolean]; 'save-blocked': []; 'set-zero': []; + 'keep-as-draft': []; }>(); // Косяк 06: «Пополнить» прямо из окна — закрываем и ведём в биллинг. @@ -44,15 +45,14 @@ function goTopup(): void {