From e0bbf4d134f9f1c74fc2a8dfa381e13de5a29be8 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:26:50 +0300 Subject: [PATCH] =?UTF-8?q?fix(admin):=20G2=20=E2=80=94=20error/success=20?= =?UTF-8?q?handling=20in=20AdminSupplierPricesView=20save?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit axios.patch теперь в try/catch с extractErrorMessage() helper. Per-row ошибки — reactive errorMessages: Record отображаются как v-icon mdi-alert-circle с v-tooltip рядом с кнопкой «Сохранить». Success — v-snackbar (3s timeout, color=success, bottom-right) с именем поставщика. Retry на той же строке очищает предыдущий error перед новым axios.patch. load() тоже обёрнут — fetchError ref + v-alert warning сверху таблицы. +3 Vitest specs (save error / save success / retry clears error). Регрессий 0. Closes audit ID G2 from docs/superpowers/specs/2026-05-15-portal-audit-design.md. Co-Authored-By: Claude Opus 4.7 (1M context) --- .../views/admin/AdminSupplierPricesView.vue | 71 +++++++++++++-- .../Frontend/AdminSupplierPricesView.spec.ts | 90 ++++++++++++++++++- 2 files changed, 151 insertions(+), 10 deletions(-) diff --git a/app/resources/js/views/admin/AdminSupplierPricesView.vue b/app/resources/js/views/admin/AdminSupplierPricesView.vue index 582cdc9d..4bb6eec9 100644 --- a/app/resources/js/views/admin/AdminSupplierPricesView.vue +++ b/app/resources/js/views/admin/AdminSupplierPricesView.vue @@ -1,6 +1,20 @@