| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- <?php
- namespace App\Filament\Resources;
- use App\Filament\Resources\PaperPartResource\Pages;
- use App\Filament\Resources\PaperPartResource\RelationManagers\PreQuestionCandidatesRelationManager;
- use App\Models\PaperPart;
- use Filament\Forms;
- use Filament\Resources\Resource;
- use Filament\Schemas\Schema;
- use Filament\Tables;
- use Filament\Tables\Table;
- use Filament\Actions\ViewAction;
- use Illuminate\Database\Eloquent\Model;
- use BackedEnum;
- use UnitEnum;
- class PaperPartResource extends Resource
- {
- protected static ?string $model = PaperPart::class;
- protected static BackedEnum|string|null $navigationIcon = 'heroicon-o-clipboard-document-list';
- protected static UnitEnum|string|null $navigationGroup = '卷子管理';
- protected static ?string $navigationLabel = '题型区块';
- protected static ?int $navigationSort = 3;
- public static function canCreate(): bool
- {
- return false;
- }
- public static function canEdit(Model $record): bool
- {
- return false;
- }
- public static function form(Schema $schema): Schema
- {
- return $schema->schema([
- Forms\Components\TextInput::make('title')->label('标题')->disabled(),
- Forms\Components\TextInput::make('type')->label('题型')->disabled(),
- Forms\Components\TextInput::make('question_count')->label('题量')->disabled(),
- Forms\Components\Textarea::make('raw_markdown')->label('区块 Markdown')->rows(12)->disabled(),
- ]);
- }
- public static function table(Table $table): Table
- {
- return $table
- ->columns([
- Tables\Columns\TextColumn::make('paper.title')->label('卷子'),
- Tables\Columns\TextColumn::make('order')->label('顺序')->sortable(),
- Tables\Columns\TextColumn::make('title')->label('区块标题')->searchable(),
- Tables\Columns\TextColumn::make('type')->label('题型'),
- Tables\Columns\TextColumn::make('question_count')->label('题量'),
- ])
- ->actions([
- ViewAction::make(),
- ]);
- }
- public static function getRelations(): array
- {
- return [
- PreQuestionCandidatesRelationManager::class,
- ];
- }
- public static function getPages(): array
- {
- return [
- 'index' => Pages\ListPaperParts::route('/'),
- 'view' => Pages\ViewPaperPart::route('/{record}'),
- ];
- }
- }
|