前端极简黑白重设计,并纳入客户端注册、站点设置与后台相关改动

- storefront 全站改为极简黑白配色:直角、细线分隔、卡片 hover 浅底、深色模式(跟随系统+手动切换)
- 抽出 storefront/partials/card 复用卡片
- 一并提交此前暂存的客户端注册 API、站点设置、后台页面与测试

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
浪子
2026-09-22 08:35:49 +08:00
parent 62cffc6f5f
commit 04a2034975
41 changed files with 3447 additions and 658 deletions
+21 -1
View File
@@ -3,12 +3,23 @@
use App\Http\Controllers\Web\StorefrontController;
use App\Http\Controllers\WebAdmin\AuthController;
use App\Http\Controllers\WebAdmin\DashboardController;
use App\Http\Controllers\WebAdmin\SettingsController;
use Illuminate\Support\Facades\Route;
Route::get('/', [StorefrontController::class, 'home'])->name('storefront.home');
Route::get('/plugins', [StorefrontController::class, 'packages'])->defaults('type', 'plugin')->name('storefront.plugins');
Route::get('/themes', [StorefrontController::class, 'packages'])->defaults('type', 'theme')->name('storefront.themes');
Route::get('/packages/{type}/{slug}', [StorefrontController::class, 'show'])->name('storefront.show');
Route::get('/plugin/{slug}', [StorefrontController::class, 'showPlugin'])->name('storefront.plugin.show');
Route::get('/theme/{slug}', [StorefrontController::class, 'showTheme'])->name('storefront.theme.show');
Route::get('/packages/{type}/{slug}', function (string $type, string $slug) {
abort_unless(in_array($type, ['plugin', 'theme'], true), 404);
return redirect()->route(
$type === 'plugin' ? 'storefront.plugin.show' : 'storefront.theme.show',
['slug' => $slug],
301
);
})->name('storefront.show.legacy');
Route::get('/admin/login', [AuthController::class, 'showLogin'])->name('webadmin.login');
Route::post('/admin/login', [AuthController::class, 'login'])->name('webadmin.login.submit');
@@ -16,12 +27,21 @@ Route::post('/admin/login', [AuthController::class, 'login'])->name('webadmin.lo
Route::middleware('store.webadmin')->group(function () {
Route::get('/admin', [DashboardController::class, 'home'])->name('webadmin.home');
Route::post('/admin/logout', [AuthController::class, 'logout'])->name('webadmin.logout');
Route::get('/admin/account', [AuthController::class, 'showAccount'])->name('webadmin.account');
Route::put('/admin/account/profile', [AuthController::class, 'updateProfile'])->name('webadmin.account.profile');
Route::put('/admin/account/password', [AuthController::class, 'updatePassword'])->name('webadmin.account.password');
Route::get('/admin/settings', [SettingsController::class, 'show'])->name('webadmin.settings');
Route::put('/admin/settings', [SettingsController::class, 'update'])->name('webadmin.settings.update');
Route::get('/admin/clients', [DashboardController::class, 'clients'])->name('webadmin.clients');
Route::get('/admin/packages', [DashboardController::class, 'packages'])->name('webadmin.packages');
Route::post('/admin/packages', [DashboardController::class, 'storePackage'])->name('webadmin.packages.store');
Route::put('/admin/packages/{type}/{slug}', [DashboardController::class, 'updatePackage'])->name('webadmin.packages.update');
Route::patch('/admin/packages/{type}/{slug}/status', [DashboardController::class, 'updatePackageStatus'])->name('webadmin.packages.status');
Route::delete('/admin/packages/{type}/{slug}', [DashboardController::class, 'destroyPackage'])->name('webadmin.packages.destroy');
Route::get('/admin/packages/{type}/{slug}', [DashboardController::class, 'showPackage'])->name('webadmin.packages.show');
Route::post('/admin/packages/{type}/{slug}/screenshots', [DashboardController::class, 'storeScreenshot'])->name('webadmin.packages.screenshots.store');
Route::delete('/admin/packages/{type}/{slug}/screenshots/{id}', [DashboardController::class, 'destroyScreenshot'])->name('webadmin.packages.screenshots.destroy');
Route::post('/admin/packages/{type}/{slug}/versions', [DashboardController::class, 'storeVersion'])->name('webadmin.packages.versions.store');
Route::post('/admin/packages/{type}/{slug}/publish', [DashboardController::class, 'publishVersion'])->name('webadmin.packages.publish');
Route::delete('/admin/packages/{type}/{slug}/versions/{id}', [DashboardController::class, 'destroyVersion'])->name('webadmin.packages.versions.destroy');