KTV/app/Livewire/Grids/RoomGrid.php

47 lines
1.2 KiB
PHP
Raw Normal View History

2025-05-14 15:32:54 +08:00
<?php
namespace App\Livewire\Grids;
2025-05-14 15:32:54 +08:00
use App\Models\Room;
use App\Models\Branch;
use App\Enums\RoomType;
2025-05-14 15:32:54 +08:00
use Livewire\Component;
use Illuminate\Database\Eloquent\Collection;
class RoomGrid extends Component
{
public ?int $selectedBranchId = null;
public string $external_ip= "";
public array $roomTypes;
2025-05-14 15:32:54 +08:00
public function mount()
{
$this->roomTypes = ['all' => '全部'] + collect(RoomType::cases())->mapWithKeys(
fn($e) => [$e->value => $e->labels()]
)->toArray();
$this->selectChanged(Branch::first()->id,"","");
2025-05-14 15:32:54 +08:00
}
public function selectChanged($value,$fieldName, $modelId): void
{
$branch = $value ? Branch::find($value) : null;
$this->selectedBranchId=$branch?->id ?? '';
$this->external_ip = $branch?->external_ip ?? '';
}
2025-05-14 15:32:54 +08:00
public function render()
{
$rooms = Room::where('branch_id', $this->selectedBranchId)->orderBy('name')->get();
$floors = $rooms->pluck('floor')->unique()->sort()->values()->toArray();
return view('livewire.grids.room-grid', [
'rooms' => $rooms,
'floors' => $floors,
]);
2025-05-14 15:32:54 +08:00
}
}