From 72a00641fac4ead307719340748eff9d13e634c0 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: Fri, 15 May 2026 09:12:19 +0300 Subject: [PATCH] =?UTF-8?q?fix(admin):=20G1=20=E2=80=94=20error/success=20?= =?UTF-8?q?handling=20in=20AdminPricingTiersView=20submit/delete?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit axios.post/delete теперь обёрнуты в try/catch с extractErrorMessage() хелпером из api/client.ts (same pattern as AdminSystemView.vue:32-45). errorMessage отображается в v-alert (closable, type=error, tonal), successMessage — в v-snackbar (color=success, 4s timeout). На failed submit диалог остаётся открытым чтобы пользователь мог исправить и повторить (UX-pattern). saving=false гарантированно сбрасывается в finally. +4 Vitest specs (submit error / submit success / delete error / delete success). Регрессий 0. Closes audit ID G1 from docs/superpowers/specs/2026-05-15-portal-audit-design.md. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../js/views/admin/AdminPricingTiersView.vue | 77 +++++++++++++++--- .../Frontend/AdminPricingTiersView.spec.ts | 78 +++++++++++++++++++ 2 files changed, 146 insertions(+), 9 deletions(-) diff --git a/app/resources/js/views/admin/AdminPricingTiersView.vue b/app/resources/js/views/admin/AdminPricingTiersView.vue index 20fd4340..a6a7ab58 100644 --- a/app/resources/js/views/admin/AdminPricingTiersView.vue +++ b/app/resources/js/views/admin/AdminPricingTiersView.vue @@ -2,6 +2,19 @@

Тарифная сетка

+ + {{ errorMessage }} + + Текущая активная сетка @@ -88,21 +101,31 @@ + + + {{ successMessage }} +