mirror of
https://github.com/chillpadclub/bedolaga-cabinet.git
synced 2026-07-29 18:13:47 +00:00
feat(sales-stats): вкладка «Оплаты» — success-rate и неудачные покупки
Новая вкладка в статистике продаж: - success-rate платежей (оплачено/создано) — общий + по каждому шлюзу с цветными барами (зелёный ≥90%, жёлтый ≥70%, красный ниже); - кол-во попыток оплат; - «Неудачные покупки» — внутренние откаты при ошибке покупки (сигнал надёжности, не возвраты). Данные из нового эндпоинта /payment-health. Шлюзы без активности не показываются. Карточки 1/3 (без сирот), адаптив. 4 локали.
This commit is contained in:
@@ -22,13 +22,14 @@ import { StatCard } from '../components/stats';
|
||||
import {
|
||||
AddonsTab,
|
||||
DepositsTab,
|
||||
PaymentHealthTab,
|
||||
PeriodSelector,
|
||||
RenewalsTab,
|
||||
SalesTab,
|
||||
TrialsTab,
|
||||
} from '../components/sales-stats';
|
||||
|
||||
type TabId = 'trials' | 'sales' | 'renewals' | 'addons' | 'deposits';
|
||||
type TabId = 'trials' | 'sales' | 'renewals' | 'addons' | 'deposits' | 'payment';
|
||||
|
||||
type Delta = { percent: number; trend: 'up' | 'down' | 'stable' };
|
||||
|
||||
@@ -124,6 +125,7 @@ export default function AdminSalesStats() {
|
||||
{ id: 'renewals', label: t('admin.salesStats.tabs.renewals') },
|
||||
{ id: 'addons', label: t('admin.salesStats.tabs.addons') },
|
||||
{ id: 'deposits', label: t('admin.salesStats.tabs.deposits') },
|
||||
{ id: 'payment', label: t('admin.salesStats.tabs.payment') },
|
||||
];
|
||||
|
||||
return (
|
||||
@@ -258,6 +260,7 @@ export default function AdminSalesStats() {
|
||||
{activeTab === 'renewals' && <RenewalsTab params={params} />}
|
||||
{activeTab === 'addons' && <AddonsTab params={params} />}
|
||||
{activeTab === 'deposits' && <DepositsTab params={params} />}
|
||||
{activeTab === 'payment' && <PaymentHealthTab params={params} />}
|
||||
</div>
|
||||
)}
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user