ViewSourcePaper.php 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. namespace App\Filament\Resources\SourcePaperResource\Pages;
  3. use App\Filament\Resources\SourcePaperResource;
  4. use Filament\Resources\Pages\ViewRecord;
  5. class ViewSourcePaper extends ViewRecord
  6. {
  7. protected static string $resource = SourcePaperResource::class;
  8. protected string $view = 'filament.resources.source-paper-resource.pages.view-source-paper';
  9. public bool $expandAll = true;
  10. public function getPaperPartsProperty(): array
  11. {
  12. $record = $this->record;
  13. return $record->parts()
  14. ->withCount('candidates')
  15. ->orderBy('order')
  16. ->get()
  17. ->map(fn ($part) => [
  18. 'id' => $part->id,
  19. 'title' => $part->title ?: '未命名区块',
  20. 'type' => $part->type ?: '未标注题型',
  21. 'question_count' => $part->question_count ?? 0,
  22. 'candidate_count' => $part->candidates_count ?? 0,
  23. 'raw_markdown' => $part->raw_markdown,
  24. 'has_error' => $part->question_count === null,
  25. ])
  26. ->toArray();
  27. }
  28. }