card-book.blade.php 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. {{-- resources/views/components/ui/card-book.blade.php
  2. 书籍卡片组件。纵向布局:封面上 + 信息下。
  3. 用于 tipitaka 列表页。
  4. Props:
  5. $book — 书籍数据数组,包含:
  6. id, title, author, cover(可选),
  7. cover_gradient(可选), publisher(object, 可选),
  8. language(可选), type(可选)
  9. --}}
  10. @props(['book'])
  11. <div class="card-book">
  12. <a href="{{ route('library.tipitaka.show', $book['id']) }}" class="card-book__link">
  13. {{-- 封面 --}}
  14. <x-ui.book-cover
  15. :image="$book['cover'] ?? null"
  16. :gradient="$book['cover_gradient'] ?? 'linear-gradient(135deg, #2d2010 0%, #1a1208 100%)'"
  17. :title="$book['title'] ?? ''"
  18. :subtitle="'义注'"
  19. size="md"
  20. :style3d="false" />
  21. {{-- 书籍信息 --}}
  22. <div class="card-book__info">
  23. <div class="card-book__title">{{ $book['title'] ?? '未知书籍' }}</div>
  24. @if(!empty($book['author']))
  25. <div class="card-book__author">{{ $book['author'] }}</div>
  26. @endif
  27. @if(isset($book['publisher']))
  28. <div class="card-book__publisher">
  29. <a href="{{ route('blog.index', ['user' => $book['publisher']->username]) }}"
  30. class="card-book__publisher-link">
  31. {{ $book['publisher']->nickname }}
  32. </a>
  33. </div>
  34. @endif
  35. <div class="card-book__badges">
  36. @if(!empty($book['language']))
  37. <span class="card-book__badge">{{ $book['language'] }}</span>
  38. @endif
  39. @if(!empty($book['type']))
  40. <span class="card-book__badge">{{ $book['type'] }}</span>
  41. @endif
  42. </div>
  43. </div>
  44. </a>
  45. </div>