teacher-student-selector.blade.php 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. <div {{ $attributes->merge(['class' => 'space-y-4']) }}>
  2. {{-- 选择老师 --}}
  3. <div class="form-control w-full">
  4. <label class="label">
  5. <span class="label-text font-medium">
  6. {{ $getTeacherLabel() }}
  7. @if($isRequired())
  8. <span class="text-error">*</span>
  9. @endif
  10. </span>
  11. </label>
  12. <select
  13. wire:model.live="{{ $getStatePath() }}_teacher"
  14. class="select select-bordered w-full"
  15. {{ $isRequired() ? 'required' : '' }}
  16. >
  17. <option value="">{{ $getTeacherPlaceholder() }}</option>
  18. @foreach($getTeacherOptions() as $teacherId => $teacherName)
  19. <option value="{{ $teacherId }}">{{ $teacherName }}</option>
  20. @endforeach
  21. </select>
  22. @if($getTeacherHelperText())
  23. <label class="label">
  24. <span class="label-text-alt text-info">{{ $getTeacherHelperText() }}</span>
  25. </label>
  26. @endif
  27. </div>
  28. {{-- 选择学生 --}}
  29. <div class="form-control w-full">
  30. <label class="label">
  31. <span class="label-text font-medium">
  32. {{ $getStudentLabel() }}
  33. @if($isRequired())
  34. <span class="text-error">*</span>
  35. @endif
  36. </span>
  37. </label>
  38. <select
  39. wire:model="{{ $getStatePath() }}_student"
  40. class="select select-bordered w-full"
  41. @if($isTeacherFilterEnabled() && empty($getState())) disabled @endif
  42. {{ $isRequired() ? 'required' : '' }}
  43. >
  44. <option value="">
  45. @if($isTeacherFilterEnabled() && empty($getState()))
  46. 请先选择老师
  47. @else
  48. {{ $getStudentPlaceholder() }}
  49. @endif
  50. </option>
  51. @if($isTeacherFilterEnabled() && !empty($getState()))
  52. @foreach($getStudentOptions($getState()) as $studentId => $studentName)
  53. <option value="{{ $studentId }}">{{ $studentName }}</option>
  54. @endforeach
  55. @elseif(!$isTeacherFilterEnabled())
  56. @foreach($getStudentOptions() as $studentId => $studentName)
  57. <option value="{{ $studentId }}">{{ $studentName }}</option>
  58. @endforeach
  59. @endif
  60. </select>
  61. @if($getStudentHelperText())
  62. <label class="label">
  63. <span class="label-text-alt text-info">{{ $getStudentHelperText() }}</span>
  64. </label>
  65. @endif
  66. @if($isTeacherFilterEnabled() && !empty($getState()) && empty($getStudentOptions($getState())))
  67. <label class="label">
  68. <span class="label-text-alt text-warning">该老师暂无学生</span>
  69. </label>
  70. @endif
  71. </div>
  72. {{-- 隐藏的输入字段,用于存储实际值 --}}
  73. <input type="hidden" name="{{ $getStatePath() }}_teacher" value="{{ $getState() }}" />
  74. <input type="hidden" name="{{ $getStatePath() }}_student" value="{{ $getState() }}" />
  75. </div>