前端极简黑白重设计,并纳入客户端注册、站点设置与后台相关改动
- storefront 全站改为极简黑白配色:直角、细线分隔、卡片 hover 浅底、深色模式(跟随系统+手动切换) - 抽出 storefront/partials/card 复用卡片 - 一并提交此前暂存的客户端注册 API、站点设置、后台页面与测试 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -1,71 +1,146 @@
|
||||
@php
|
||||
$statusLabels = [
|
||||
'draft' => '草稿',
|
||||
'published' => '发布中',
|
||||
'hidden' => '隐藏',
|
||||
'deprecated' => '弃用',
|
||||
];
|
||||
$statusTones = [
|
||||
'draft' => 'muted',
|
||||
'published' => 'ok',
|
||||
'hidden' => 'warn',
|
||||
'deprecated' => 'warn',
|
||||
];
|
||||
@endphp
|
||||
|
||||
@extends('admin.layout', [
|
||||
'title' => 'Tstore Admin · 概览',
|
||||
'pageTitle' => '概览',
|
||||
'pageSubtitle' => '先看整体状态,再进入扩展管理、分类管理和版本发布流程。',
|
||||
'title' => 'Tstore Admin · 控制台概览',
|
||||
'pageTitle' => '控制台概览',
|
||||
'pageSubtitle' => '先看整体状态,再继续维护扩展、版本发布和站点接入。',
|
||||
'pageBadge' => 'Overview',
|
||||
])
|
||||
|
||||
@section('content')
|
||||
<div class="grid">
|
||||
<div class="stats">
|
||||
<div class="stat"><span class="label">扩展总数</span><span class="value">{{ $stats['packages'] }}</span><span class="hint">插件 + 主题</span></div>
|
||||
<div class="stat"><span class="label">插件</span><span class="value">{{ $stats['plugins'] }}</span><span class="hint">plugin</span></div>
|
||||
<div class="stat"><span class="label">主题</span><span class="value">{{ $stats['themes'] }}</span><span class="hint">theme</span></div>
|
||||
<div class="stat"><span class="label">版本记录</span><span class="value">{{ $stats['versions'] }}</span><span class="hint">已发布与手动录入版本</span></div>
|
||||
<section class="stats">
|
||||
<div class="stat"><span class="label">扩展总数</span><span class="value">{{ $stats['packages'] }}</span><span class="hint">插件与主题总量</span></div>
|
||||
<div class="stat"><span class="label">插件</span><span class="value">{{ $stats['plugins'] }}</span><span class="hint">plugin package</span></div>
|
||||
<div class="stat"><span class="label">主题</span><span class="value">{{ $stats['themes'] }}</span><span class="hint">theme package</span></div>
|
||||
<div class="stat"><span class="label">版本记录</span><span class="value">{{ $stats['versions'] }}</span><span class="hint">历史发布与手动录入</span></div>
|
||||
<div class="stat"><span class="label">下载总量</span><span class="value">{{ $stats['downloads'] }}</span><span class="hint">累计下载次数</span></div>
|
||||
<div class="stat"><span class="label">分类数</span><span class="value">{{ $stats['categories'] }}</span><span class="hint">插件 / 主题分类</span></div>
|
||||
</div>
|
||||
<div class="stat"><span class="label">分类总数</span><span class="value">{{ $stats['categories'] }}</span><span class="hint">插件与主题分类</span></div>
|
||||
<div class="stat"><span class="label">已注册站点</span><span class="value">{{ $stats['registered_sites'] }}</span><span class="hint">完成注册的客户端</span></div>
|
||||
<div class="stat"><span class="label">在线站点</span><span class="value">{{ $stats['online_sites'] }}</span><span class="hint">最近心跳仍在线</span></div>
|
||||
<div class="stat"><span class="label">追踪用户数</span><span class="value">{{ $stats['tracked_users'] }}</span><span class="hint">所有站点上报总和</span></div>
|
||||
</section>
|
||||
|
||||
<div class="cards">
|
||||
<div class="panel">
|
||||
<div class="split">
|
||||
<section class="panel">
|
||||
<div class="section-title">
|
||||
<div>
|
||||
<h2>最近更新的扩展</h2>
|
||||
<p>可以直接进入详情页编辑信息、上传 zip,或查看当前最新稳定版本。</p>
|
||||
<p>这里优先看扩展元数据、分类和当前发布状态,方便继续进入详情页维护。</p>
|
||||
</div>
|
||||
<a class="btn secondary small" href="{{ route('webadmin.packages') }}">查看全部</a>
|
||||
</div>
|
||||
|
||||
<div class="list">
|
||||
@forelse ($recentPackages as $package)
|
||||
<div class="row-card">
|
||||
<article class="row-card">
|
||||
<div class="row-top">
|
||||
<div>
|
||||
<h3>{{ $package->name }}</h3>
|
||||
<p class="muted">{{ $package->type }} · {{ $package->slug }}</p>
|
||||
</div>
|
||||
<span class="chip {{ $package->status === 'published' ? 'ok' : ($package->status === 'draft' ? 'muted' : 'warn') }}">{{ $package->status }}</span>
|
||||
<span class="chip {{ $statusTones[$package->status] ?? 'muted' }}">{{ $statusLabels[$package->status] ?? $package->status }}</span>
|
||||
</div>
|
||||
<p class="muted">{{ $package->summary ?: '暂无摘要' }}</p>
|
||||
<p class="muted">{{ $package->summary ?: '暂无摘要。' }}</p>
|
||||
<div class="tags">
|
||||
@foreach ($package->categories as $category)
|
||||
<span class="chip">{{ $category->name }}</span>
|
||||
@endforeach
|
||||
@if ($package->latestStableVersion)
|
||||
<span class="chip ok">最新稳定版 v{{ $package->latestStableVersion->version }}</span>
|
||||
<span class="chip ok">稳定版 v{{ $package->latestStableVersion->version }}</span>
|
||||
@endif
|
||||
<span class="chip muted">更新于 {{ optional($package->updated_at)->format('Y-m-d H:i') ?: '-' }}</span>
|
||||
</div>
|
||||
<div class="form-actions">
|
||||
<a class="btn secondary small" href="{{ route('webadmin.packages.show', [$package->type, $package->slug]) }}">查看详情</a>
|
||||
<a class="btn ghost small" href="{{ route('webadmin.packages.show', [$package->type, $package->slug]) }}">查看详情</a>
|
||||
</div>
|
||||
</div>
|
||||
</article>
|
||||
@empty
|
||||
<div class="empty">当前还没有扩展数据。</div>
|
||||
@endforelse
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<div class="panel">
|
||||
<div class="section-title">
|
||||
<div>
|
||||
<h2>当前后台能力</h2>
|
||||
<p>这一版已经能覆盖联调闭环里最关键的管理动作。</p>
|
||||
<div class="stack">
|
||||
<section class="panel soft">
|
||||
<div class="section-title">
|
||||
<div>
|
||||
<h2>最近版本发布</h2>
|
||||
<p>快速核对最近写入的版本号、兼容区间和稳定状态。</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="list">
|
||||
<div class="mini-card"><h3>扩展管理</h3><div class="muted">支持创建 package、编辑基础信息、切换发布状态。</div></div>
|
||||
<div class="mini-card"><h3>分类管理</h3><div class="muted">支持新建、编辑、删除分类,并查看分类关联的扩展数量。</div></div>
|
||||
<div class="mini-card"><h3>版本管理</h3><div class="muted">支持手动录入版本、zip 上传发布、删除历史版本。</div></div>
|
||||
<div class="mini-card"><h3>下一步建议</h3><div class="muted">可以继续补截图管理、审核日志、下载统计细分和更严格的发布校验。</div></div>
|
||||
</div>
|
||||
|
||||
<div class="list">
|
||||
@forelse ($recentVersions as $version)
|
||||
<article class="row-card">
|
||||
<div class="row-top">
|
||||
<div>
|
||||
<h3>v{{ $version->version }}</h3>
|
||||
<p class="muted">{{ $version->package?->name ?: '未知扩展' }}</p>
|
||||
</div>
|
||||
<div class="tags" style="margin-top:0">
|
||||
<span class="chip {{ $version->is_stable ? 'ok' : 'warn' }}">{{ $version->is_stable ? '稳定版' : '预发布' }}</span>
|
||||
@if ($version->is_latest)
|
||||
<span class="chip">最新</span>
|
||||
@endif
|
||||
</div>
|
||||
</div>
|
||||
<div class="tags">
|
||||
<span class="chip muted">Typecho {{ $version->typecho_min ?: '-' }} ~ {{ $version->typecho_max ?: '-' }}</span>
|
||||
<span class="chip muted">PHP {{ $version->php_min ?: '-' }} ~ {{ $version->php_max ?: '-' }}</span>
|
||||
</div>
|
||||
<p class="muted">发布时间:{{ optional($version->published_at)->format('Y-m-d H:i') ?: '-' }}</p>
|
||||
</article>
|
||||
@empty
|
||||
<div class="empty">当前还没有版本记录。</div>
|
||||
@endforelse
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section class="panel soft">
|
||||
<div class="section-title">
|
||||
<div>
|
||||
<h2>最近接入站点</h2>
|
||||
<p>确认插件端是否完成注册、是否在线,以及最近一次同步时间。</p>
|
||||
</div>
|
||||
<a class="btn secondary small" href="{{ route('webadmin.clients') }}">全部站点</a>
|
||||
</div>
|
||||
|
||||
<div class="list">
|
||||
@forelse ($recentClients as $client)
|
||||
<article class="row-card">
|
||||
<div class="row-top">
|
||||
<div>
|
||||
<h3>{{ $client->site_name ?: '未命名站点' }}</h3>
|
||||
<p class="muted">{{ $client->site_url }}</p>
|
||||
</div>
|
||||
<span class="chip {{ $client->is_online ? 'ok' : 'muted' }}">{{ $client->is_online ? '在线' : '离线' }}</span>
|
||||
</div>
|
||||
<div class="tags">
|
||||
<span class="chip">用户 {{ $client->user_count }}</span>
|
||||
<span class="chip muted">Typecho {{ $client->typecho_version ?: '-' }}</span>
|
||||
<span class="chip muted">PHP {{ $client->php_version ?: '-' }}</span>
|
||||
</div>
|
||||
<p class="muted">最近同步:{{ optional($client->last_seen_at)->format('Y-m-d H:i:s') ?: '尚未同步' }}</p>
|
||||
</article>
|
||||
@empty
|
||||
<div class="empty">当前还没有站点完成注册。</div>
|
||||
@endforelse
|
||||
</div>
|
||||
</section>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user