Files
saasshop/resources/views/admin/dashboard.blade.php

100 lines
4.9 KiB
PHP

@extends('admin.layouts.app')
@section('title', '总台管理仪表盘')
@section('page_title', '总台管理仪表盘')
@section('content')
@php
$incomingBack = (string) request()->query('back', '');
$safeBackForLinks = \App\Support\BackUrl::sanitizeForLinks($incomingBack);
$billingEntryLinks = [
'platform_orders' => \App\Support\BackUrl::withBack('/admin/platform-orders', $safeBackForLinks),
'site_subscriptions' => \App\Support\BackUrl::withBack('/admin/site-subscriptions', $safeBackForLinks),
'plans' => \App\Support\BackUrl::withBack('/admin/plans', $safeBackForLinks),
];
$platformOrdersQuickLinks = [
'unpaid_pending' => \App\Support\BackUrl::withBack('/admin/platform-orders?payment_status=unpaid&status=pending', $safeBackForLinks),
'paid_pending' => \App\Support\BackUrl::withBack('/admin/platform-orders?payment_status=paid&status=pending', $safeBackForLinks),
'syncable_only' => \App\Support\BackUrl::withBack('/admin/platform-orders?syncable_only=1', $safeBackForLinks),
'sync_failed' => \App\Support\BackUrl::withBack('/admin/platform-orders?sync_status=failed', $safeBackForLinks),
];
@endphp
<div class="page-header mb-20" data-page="admin.dashboard">
<div class="page-header-main">
<div>
<div class="page-header-title">总台管理仪表盘</div>
<div class="page-header-subtitle">欢迎回来,{{ $adminName }}。这里是平台运营方的全局总览入口(聚焦:收费闭环与治理动作可达)。</div>
</div>
<div class="page-header-actions">
<a class="btn" href="{!! $billingEntryLinks['platform_orders'] !!}">进入平台订单</a>
<a class="btn btn-secondary" href="{!! $billingEntryLinks['site_subscriptions'] !!}">进入订阅管理</a>
<a class="btn btn-secondary" href="{!! $billingEntryLinks['plans'] !!}">进入套餐管理</a>
</div>
</div>
<div class="page-header-meta">
<div>统计缓存:{{ $cacheMeta['store'] }} / TTL {{ $cacheMeta['ttl'] }}</div>
<div>当前视角:{{ $platformOverview['current_scope'] }}</div>
<div>活跃站点:{{ $platformOverview['active_merchants'] }}</div>
<div>待处理订单:{{ $platformOverview['pending_orders'] }}</div>
</div>
</div>
<div class="kpi-grid mb-20" data-role="kpi-grid">
<div class="card">
<div class="stat-card-title">站点</div>
<div class="stat-card-value">{{ $stats['merchants'] }}</div>
<div class="stat-card-footnote">全站点数量(总台视角)</div>
</div>
<div class="card">
<div class="stat-card-title">管理员</div>
<div class="stat-card-value">{{ $stats['admins'] }}</div>
<div class="stat-card-footnote">平台/站点后台账号</div>
</div>
<div class="card">
<div class="stat-card-title">用户</div>
<div class="stat-card-value">{{ $stats['users'] }}</div>
<div class="stat-card-footnote">买家端用户累计</div>
</div>
<div class="card">
<div class="stat-card-title">订单</div>
<div class="stat-card-value">{{ $stats['orders'] }}</div>
<div class="stat-card-footnote">站点订单累计(非平台订单)</div>
</div>
</div>
<div class="two-col mb-20">
<div class="card">
<h3 class="mt-0">收费工作台(快捷治理)</h3>
<div class="muted">聚焦收费闭环的日常治理入口:订单 订阅 套餐。</div>
<div class="mt-12">
<div class="muted">快捷筛选:</div>
<div class="actions mt-8">
<a class="btn btn-secondary btn-sm" href="{!! $platformOrdersQuickLinks['unpaid_pending'] !!}">待支付</a>
<a class="btn btn-secondary btn-sm" href="{!! $platformOrdersQuickLinks['paid_pending'] !!}">待生效</a>
<a class="btn btn-secondary btn-sm" href="{!! $platformOrdersQuickLinks['syncable_only'] !!}">可同步</a>
<a class="btn btn-secondary btn-sm" href="{!! $platformOrdersQuickLinks['sync_failed'] !!}">同步失败</a>
</div>
</div>
<div class="muted muted-xs mt-10">说明:这里先落“入口与布局骨架”,后续会把 KPI/趋势/排行 接入真实聚合指标。</div>
</div>
<div class="card">
<h3 class="mt-0">平台定位</h3>
<table>
<tr><th>后台角色</th><td>{{ $platformOverview['system_role'] }}</td></tr>
<tr><th>当前视角</th><td>{{ $platformOverview['current_scope'] }}</td></tr>
<tr><th>商家模式</th><td>{{ $platformOverview['merchant_mode'] }}</td></tr>
<tr><th>渠道数</th><td>{{ $platformOverview['channel_count'] }}</td></tr>
<tr><th>活跃商家</th><td>{{ $platformOverview['active_merchants'] }}</td></tr>
<tr><th>待处理订单</th><td>{{ $platformOverview['pending_orders'] }}</td></tr>
</table>
</div>
</div>
@endsection