初始化

This commit is contained in:
2026-08-08 18:27:38 +08:00
parent efc150c937
commit 060eb79c09
336 changed files with 24613 additions and 15 deletions
@@ -0,0 +1,68 @@
@extends('admin.layout')
@php $editing = isset($product) && $product; @endphp
@section('title', $editing ? '编辑产品' : '新建产品')
@section('page-title', $editing ? '编辑产品' : '新建产品')
@section('content')
<form method="POST" action="{{ $editing ? route('admin.products.update', $product) : route('admin.products.store') }}" class="form-card">
@csrf
@if ($editing) @method('PUT') @endif
<div class="field">
<label>名称</label>
<input name="name" class="input" value="{{ old('name', $product?->name ?? '') }}" required>
</div>
<div class="field">
<label>Slug</label>
<input name="slug" class="input" value="{{ old('slug', $product?->slug ?? '') }}" required>
</div>
<div class="field">
<label>型号</label>
<input name="model" class="input" value="{{ old('model', $product?->model ?? '') }}">
</div>
<div class="field">
<label>分类</label>
<select name="category_id" class="select">
<option value="">无分类</option>
@foreach ($categories as $c)
<option value="{{ $c->id }}" @selected(old('category_id', $product?->category_id) == $c->id)>{{ $c->name }}</option>
@endforeach
</select>
</div>
<div class="field">
<label>简介</label>
<input name="summary" class="input" value="{{ old('summary', $product?->summary ?? '') }}">
</div>
<div class="field">
<label>描述</label>
<textarea name="description" class="textarea">{{ old('description', $product?->description ?? '') }}</textarea>
</div>
<div class="field">
<label>规格参数</label>
<textarea name="specs" class="textarea">{{ old('specs', $product?->specs ?? '') }}</textarea>
<p class="form-hint">每行一个参数,或自由文本。</p>
</div>
<div class="field">
<label>封面图 URL</label>
<input name="cover" class="input" value="{{ old('cover', $product?->cover ?? '') }}">
</div>
<div class="field">
<label>状态</label>
<select name="status" class="select">
<option value="published" @selected(old('status', $product?->status ?? 'published') === 'published')>已发布</option>
<option value="draft" @selected(old('status', $product?->status ?? '') === 'draft')>草稿</option>
</select>
</div>
<div class="field">
<label>排序</label>
<input type="number" name="sort" class="input" value="{{ old('sort', $product?->sort ?? 0) }}">
</div>
<div class="form-actions">
<button class="btn btn-primary">保存</button>
<a href="{{ route('admin.products.index') }}" class="btn">取消</a>
</div>
</form>
@endsection
@@ -0,0 +1,33 @@
@extends('admin.layout')
@section('title', '产品管理')
@section('page-title', '产品管理')
@section('actions')
<a href="{{ route('admin.products.create') }}" class="btn btn-primary btn-sm"><x-icon name="plus" :size="16"/> 新建产品</a>
@endsection
@section('content')
<table class="data-table">
<thead><tr><th>名称</th><th>型号</th><th>分类</th><th>状态</th><th class="col-op">操作</th></tr></thead>
<tbody>
@forelse ($products as $p)
<tr>
<td>{{ $p->name }}</td>
<td class="muted">{{ $p->model ?: '-' }}</td>
<td>{{ $p->category?->name ?: '-' }}</td>
<td>{{ $p->status === 'published' ? '已发布' : '草稿' }}</td>
<td class="row-actions">
<a href="{{ route('admin.products.edit', $p) }}" class="btn btn-sm"><x-icon name="edit" :size="16"/></a>
<form method="POST" action="{{ route('admin.products.destroy', $p) }}" onsubmit="return confirm('确认删除该产品?')">
@csrf @method('DELETE')
<button class="btn btn-sm btn-danger"><x-icon name="trash" :size="16"/></button>
</form>
</td>
</tr>
@empty
<tr><td colspan="5" class="muted">暂无产品。</td></tr>
@endforelse
</tbody>
</table>
{{ $products->links('pagination::bootstrap-5') }}
@endsection