KTVCentral/app/Livewire/Admin/RoomStatusLogTable.php
allen.yan 3307c062ab 加入 包廂控制紀錄
加入 設備紀錄
加入 歌曲庫 cache 列表
調整 包廂控制邏輯
調整 心跳封包邏輯
調整 驗証包廂狀態邏輯
20250606
2025-06-06 18:11:22 +08:00

83 lines
2.3 KiB
PHP

<?php
namespace App\Livewire\Admin;
use App\Models\RoomStatusLog;
use Illuminate\Support\Carbon;
use Illuminate\Database\Eloquent\Builder;
use PowerComponents\LivewirePowerGrid\Button;
use PowerComponents\LivewirePowerGrid\Column;
use PowerComponents\LivewirePowerGrid\Facades\Filter;
use PowerComponents\LivewirePowerGrid\Facades\PowerGrid;
use PowerComponents\LivewirePowerGrid\PowerGridFields;
use PowerComponents\LivewirePowerGrid\PowerGridComponent;
final class RoomStatusLogTable extends PowerGridComponent
{
public string $tableName = 'room-status-log-table';
public bool $showFilters = false;
public function boot(): void
{
config(['livewire-powergrid.filter' => 'outside']);
}
public function setUp(): array
{
$actions = [];
$header = PowerGrid::header()
->withoutLoading()
->showToggleColumns();
$header->includeViewOnTop('livewire.admin.room-status-log-header');
$actions[]=$header;
$actions[]=PowerGrid::footer()->showPerPage()->showRecordCount();
return $actions;
}
public function datasource(): Builder
{
return RoomStatusLog::query()->latest();;
}
public function relationSearch(): array
{
return [];
}
public function fields(): PowerGridFields
{
return PowerGrid::fields()
->add('id')
->add('room_name', function (RoomStatusLog $model) {
return $model->room?->type->labelPowergridFilter().$model->room?->name;
})
->add('user_name', function (RoomStatusLog $model){
return $model->user?->name;
})
->add('status_str',function (RoomStatusLog $model){
return $model->status->labelPowergridFilter();
})
->add('message')
->add('created_at');
}
public function columns(): array
{
$column=[];
$column[]=Column::make('Id', 'id');
$column[]=Column::make('Room', 'room_name');
$column[]=Column::make('User', 'user_name');
$column[]=Column::make('Status', 'status_str');
$column[]=Column::make('Message', 'message');
$column[]=Column::make('Created at', 'created_at');
return $column;
}
public function filters(): array
{
return [
];
}
}