2
0

course-row.blade.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. {{-- resources/views/components/library/course-row.blade.php
  2. 课程横向列表行(用于「开放报名」与「历史课程」列表)。
  3. Props: $course — 由 Library\CourseController 加工后的课程数组。
  4. --}}
  5. @props(['course'])
  6. @php
  7. $teacher = $course['teacher'] ?? [];
  8. $status = $course['status'] ?? 'closed';
  9. $statusKey = $status === 'open' ? 'course_status_open' : 'course_status_closed';
  10. $cover = $course['cover_url'] ?? null;
  11. @endphp
  12. <a href="{{ $course['detail_url'] }}" class="course-row" target="_blank" rel="noopener">
  13. {{-- 缩略图 --}}
  14. <div class="course-row__thumb" style="{{ empty($cover) ? 'background:'.$course['cover_gradient'] : '' }}">
  15. @if($cover)
  16. <img src="{{ $cover }}" alt="{{ $course['title'] }}" loading="lazy">
  17. @else
  18. <span>{{ $course['title'] }}</span>
  19. @endif
  20. </div>
  21. {{-- 主体 --}}
  22. <div class="course-row__main">
  23. <h3 class="course-row__title">{{ $course['title'] }}</h3>
  24. @if(!empty($course['summary']))
  25. <div class="course-row__summary">{{ $course['summary'] }}</div>
  26. @endif
  27. <div class="course-row__meta">
  28. @if(!empty($teacher['name']))
  29. <span class="course-row__teacher">
  30. <x-ui.author-avatar
  31. :avatar="$teacher['avatar'] ?? null"
  32. :color="$teacher['color']"
  33. :initials="$teacher['initials']"
  34. :name="$teacher['name']"
  35. size="sm" />
  36. </span>
  37. @endif
  38. @if($course['number'] > 0)
  39. <span class="course-row__quota">{{ __('library.course_quota', ['n' => $course['number']]) }}</span>
  40. @endif
  41. @if($course['start_date'])
  42. <span class="course-row__date">{{ $course['start_date'] }}</span>
  43. @endif
  44. </div>
  45. </div>
  46. {{-- 右侧:状态 + 报名引导 --}}
  47. <div class="course-row__side">
  48. <span class="course-badge course-badge--{{ $status }}">
  49. {{ __("library.{$statusKey}") }}
  50. </span>
  51. @if($status === 'open')
  52. <span class="course-row__cta">{{ __('library.course_signup') }} <i class="ti ti-chevron-right"></i></span>
  53. @endif
  54. </div>
  55. </a>