优化功能
Some checks failed
Tests / PHP 8.2 (push) Has been cancelled
Tests / PHP 8.3 (push) Has been cancelled
Tests / PHP 8.4 (push) Has been cancelled

This commit is contained in:
jiangdong.cheng
2026-02-12 17:10:36 +08:00
parent 56c685b579
commit a795b2c896
29 changed files with 2155 additions and 884 deletions

View File

@@ -2,35 +2,80 @@
@section('title', $item->exists ? '编辑来源' : '新建来源')
@section('head')
@include('admin.partials.modern-form-head')
@endsection
@section('content')
<div class="card">
<div class="card-header"><h3 class="card-title mb-0">{{ $item->exists ? '编辑来源' : '新建来源' }}</h3></div>
<div class="card modern-form-card">
<div class="card-header d-flex justify-content-between align-items-center">
<h3 class="card-title mb-0">{{ $item->exists ? '编辑来源' : '新建来源' }}</h3>
<a class="btn btn-sm btn-outline-secondary" href="{{ route('admin.sources.index') }}">返回列表</a>
</div>
<div class="card-body">
<p class="required-tip"><span class="required-star">*</span> 为必填项</p>
<form method="post" action="{{ $submitRoute }}" class="row g-3">
@csrf
@if($method !== 'POST') @method($method) @endif
<div class="col-md-6"><label class="form-label">名称</label><input class="form-control" name="name" value="{{ old('name', $item->name) }}" required></div>
<div class="col-md-6"><label class="form-label">域名</label><input class="form-control" name="domain" value="{{ old('domain', $item->domain) }}" required></div>
<div class="col-md-6"><label class="form-label">类型</label><input class="form-control" name="type" value="{{ old('type', $item->type ?: 'media') }}" required></div>
<div class="col-md-6">
<label class="form-label">信任等级</label>
<select class="form-select" name="trust_level">
@foreach(['official' => 'official','trusted_media' => 'trusted_media','community' => 'community','unknown' => 'unknown'] as $value => $label)
<option value="{{ $value }}" @selected(old('trust_level', $item->trust_level?->value ?? 'trusted_media') === $value)>{{ $label }}</option>
@endforeach
</select>
<div class="col-12">
<section class="form-section">
<h4 class="form-section-title">基础信息</h4>
<p class="form-section-subtitle">来源会参与资讯/工具可信度判定,请优先填写真实域名与信任等级。</p>
<div class="row g-3">
<div class="col-md-6 field-required">
<label class="form-label">名称<span class="required-star">*</span></label>
<input class="form-control" name="name" value="{{ old('name', $item->name) }}" required>
</div>
<div class="col-md-6 field-required">
<label class="form-label">域名<span class="required-star">*</span></label>
<input class="form-control" name="domain" value="{{ old('domain', $item->domain) }}" required placeholder="example.com">
<div class="form-hint">仅填域名,不需要协议头。</div>
</div>
<div class="col-md-6 field-required">
<label class="form-label">类型<span class="required-star">*</span></label>
<input class="form-control" name="type" value="{{ old('type', $item->type ?: 'media') }}" required placeholder="media / official / community">
</div>
<div class="col-md-6 field-required">
<label class="form-label">信任等级<span class="required-star">*</span></label>
<select class="form-select" name="trust_level" required>
@foreach(['official' => '官方', 'trusted_media' => '可信媒体', 'community' => '社区', 'unknown' => '未知'] as $value => $label)
<option value="{{ $value }}" @selected(old('trust_level', $item->trust_level?->value ?? 'trusted_media') === $value)>{{ $label }}</option>
@endforeach
</select>
</div>
<div class="col-12 d-flex flex-wrap gap-3">
<label class="form-check">
<input class="form-check-input" type="checkbox" name="is_whitelisted" value="1" @checked(old('is_whitelisted', $item->is_whitelisted))>
<span class="form-check-label">加入白名单</span>
</label>
<label class="form-check">
<input class="form-check-input" type="checkbox" name="crawl_allowed" value="1" @checked(old('crawl_allowed', $item->crawl_allowed))>
<span class="form-check-label">允许抓取</span>
</label>
</div>
<div class="col-12">
<label class="form-label">备注</label>
<textarea class="form-control" name="note" rows="4">{{ old('note', $item->note) }}</textarea>
</div>
</div>
</section>
</div>
<div class="col-12 d-flex flex-wrap gap-3">
<label class="form-check"><input class="form-check-input" type="checkbox" name="is_whitelisted" value="1" @checked(old('is_whitelisted', $item->is_whitelisted))><span class="form-check-label">加入白名单</span></label>
<label class="form-check"><input class="form-check-input" type="checkbox" name="crawl_allowed" value="1" @checked(old('crawl_allowed', $item->crawl_allowed))><span class="form-check-label">允许抓取</span></label>
<div class="col-12">
<div class="editor-sticky-actions">
<small class="text-muted">建议优先维护白名单来源,提升前台内容质量。</small>
<button class="btn btn-primary" type="submit">保存来源</button>
</div>
</div>
<div class="col-12"><label class="form-label">备注</label><textarea class="form-control" name="note" rows="4">{{ old('note', $item->note) }}</textarea></div>
<div class="col-12"><button class="btn btn-primary" type="submit">保存</button></div>
</form>
</div>
</div>
@endsection

View File

@@ -2,20 +2,27 @@
@section('title', '来源白名单管理')
@section('head')
@include('admin.partials.modern-index-head')
@endsection
@section('content')
<div class="card mb-3">
<div class="card-body d-flex flex-column flex-lg-row gap-2 align-items-lg-center justify-content-between">
<div class="card modern-index-toolbar mb-3">
<div class="card-body d-flex flex-column flex-lg-row gap-3 align-items-lg-center justify-content-between">
<form method="get" action="{{ route('admin.sources.index') }}" class="d-flex flex-column flex-md-row gap-2 w-100">
<input class="form-control" type="text" name="q" value="{{ $filters['q'] ?? '' }}" placeholder="搜索来源名称 / 域名">
<button class="btn btn-primary" type="submit"><i class="bi bi-search me-1"></i>搜索</button>
</form>
<a class="btn btn-success" href="{{ route('admin.sources.create') }}"><i class="bi bi-plus-circle me-1"></i>新建来源</a>
</div>
<div class="card-footer bg-transparent border-0 pt-0">
<div class="toolbar-meta"> {{ number_format($items->total()) }} 条来源记录</div>
</div>
</div>
<div class="card">
<div class="card modern-index-card">
<div class="table-responsive">
<table class="table table-vcenter card-table">
<table class="table table-vcenter card-table modern-index-table">
<thead>
<tr>
<th>名称</th>
@@ -29,8 +36,8 @@
<tbody>
@forelse($items as $item)
<tr>
<td>{{ $item->name }}</td>
<td>{{ $item->domain }}</td>
<td class="modern-index-title">{{ $item->name }}</td>
<td><code>{{ $item->domain }}</code></td>
<td>{{ $item->type }}</td>
<td>{{ $item->trust_level?->value ?? '-' }}</td>
<td>
@@ -40,10 +47,14 @@
<span class="badge bg-gray-200 text-dark"></span>
@endif
</td>
<td class="text-end"><a class="btn btn-sm btn-outline-primary" href="{{ route('admin.sources.edit', $item) }}">编辑</a></td>
<td class="text-end">
<a class="btn btn-sm btn-outline-primary" href="{{ route('admin.sources.edit', $item) }}">编辑</a>
</td>
</tr>
@empty
<tr><td colspan="6" class="text-center text-muted py-4">暂无来源数据</td></tr>
<tr>
<td colspan="6" class="text-center text-muted py-5">暂无来源数据,先新增一条内容吧。</td>
</tr>
@endforelse
</tbody>
</table>
@@ -51,3 +62,4 @@
<div class="card-footer">{{ $items->links() }}</div>
</div>
@endsection