refactor: kb & station & terminal

This commit is contained in:
2026-03-23 20:17:17 +08:00
parent 63ea2686e1
commit b74ba1a3f8
81 changed files with 1016 additions and 2492 deletions

View File

@@ -4,7 +4,6 @@ namespace App\Filament\Resources;
use App\Filament\Resources\GuideResource\Pages;
use App\Models\Guide;
use App\Models\Terminal;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\Resource;
@@ -33,6 +32,18 @@ class GuideResource extends Resource
return auth()->user()?->can('guide.view') ?? false;
}
public static function getEloquentQuery(): Builder
{
$query = parent::getEloquentQuery();
$user = auth()->user();
if ($user && $user->hasStationRestriction()) {
$query->accessibleBy($user);
}
return $query;
}
public static function form(Form $form): Form
{
return $form
@@ -80,17 +91,17 @@ class GuideResource extends Resource
])
->columns(2),
Forms\Components\Section::make('关联终端')
Forms\Components\Section::make('关联线站')
->schema([
Forms\Components\CheckboxList::make('terminals')
->label('适用终端')
->relationship('terminals', 'name')
Forms\Components\CheckboxList::make('stations')
->label('适用线站')
->relationship('stations', 'name')
->searchable()
->bulkToggleable()
->helperText('选择此指引适用的终端,未关联终端的指引不会在终端显示')
->helperText('选择此指引适用的线站,未关联线站的指引为全局指引')
->columns(3),
])
->description('配置此指引在哪些终端可见'),
->description('不关联任何线站则为全局指引,对所有终端可见'),
]);
}
@@ -147,13 +158,13 @@ class GuideResource extends Resource
->counts('pages')
->sortable(),
Tables\Columns\TextColumn::make('terminals_count')
->label('关联终端')
->counts('terminals')
Tables\Columns\TextColumn::make('stations_count')
->label('关联线站')
->counts('stations')
->sortable()
->badge()
->color(fn(int $state): string => $state > 0 ? 'success' : 'gray')
->formatStateUsing(fn(int $state): string => $state > 0 ? "{$state}" : '未关联'),
->color(fn(int $state): string => $state > 0 ? 'info' : 'success')
->formatStateUsing(fn(int $state): string => $state > 0 ? "{$state}" : '全局'),
Tables\Columns\TextColumn::make('created_at')
->label('创建时间')