first&last

This commit is contained in:
sbb45
2026-03-20 15:47:17 +05:00
commit d6441abdd2
230 changed files with 20367 additions and 0 deletions
@@ -0,0 +1,4 @@
<div class="space-y-4">
<div class="card"><div class="card-body flex flex-wrap gap-2"><input wire:model.live="dateFrom" type="date" class="rounded-xl border border-slate-300 px-3 py-2"><input wire:model.live="dateTo" type="date" class="rounded-xl border border-slate-300 px-3 py-2"></div></div>
<div class="card overflow-hidden"><table class="min-w-full text-sm"><thead class="bg-slate-50"><tr><th class="px-3 py-2 text-left">Оборудование</th><th class="px-3 py-2 text-center">Всего обращений</th><th class="px-3 py-2 text-center">Открытые</th><th class="px-3 py-2 text-center">Закрытые</th></tr></thead><tbody>@foreach($rows as $row)<tr class="border-t border-slate-100"><td class="px-3 py-2">{{ $row['equipment'] }}</td><td class="px-3 py-2 text-center">{{ $row['total_requests'] }}</td><td class="px-3 py-2 text-center">{{ $row['open'] }}</td><td class="px-3 py-2 text-center">{{ $row['closed'] }}</td></tr>@endforeach</tbody></table></div>
</div>
@@ -0,0 +1,20 @@
<div class="space-y-4">
<div id="general-report-chart-data" class="hidden" data-chart='@json($statusChart->values()->toArray())'></div>
<div class="card"><div class="card-body grid gap-3 md:grid-cols-5">
<input wire:model.live="dateFrom" type="date" class="rounded-xl border border-slate-300 px-3 py-2">
<input wire:model.live="dateTo" type="date" class="rounded-xl border border-slate-300 px-3 py-2">
<select wire:model.live="technicianId" class="rounded-xl border border-slate-300 px-3 py-2"><option value="">Все техники</option>@foreach($technicians as $item)<option value="{{ $item->id }}">{{ $item->name }}</option>@endforeach</select>
<select wire:model.live="typeId" class="rounded-xl border border-slate-300 px-3 py-2"><option value="">Все типы</option>@foreach($types as $item)<option value="{{ $item->id }}">{{ $item->name }}</option>@endforeach</select>
<select wire:model.live="statusId" class="rounded-xl border border-slate-300 px-3 py-2"><option value="">Все статусы</option>@foreach($statuses as $item)<option value="{{ $item->id }}">{{ $item->name }}</option>@endforeach</select>
</div></div>
<div class="card" wire:ignore>
<div class="card-body">
<h2 class="text-lg font-semibold mb-3">Динамика по статусам</h2>
<canvas id="generalStatusChart" height="120"></canvas>
</div>
</div>
<div class="card overflow-hidden"><table class="min-w-full text-sm"><thead class="bg-slate-50"><tr><th class="px-3 py-2 text-left">Ticket</th><th class="px-3 py-2 text-left">Заголовок</th><th class="px-3 py-2 text-left">Тип</th><th class="px-3 py-2 text-left">Статус</th><th class="px-3 py-2 text-left">Техник</th><th class="px-3 py-2 text-left">Дата</th></tr></thead><tbody>@foreach($rows as $row)<tr class="border-t border-slate-100"><td class="px-3 py-2">{{ $row->ticket_number }}</td><td class="px-3 py-2">{{ $row->title }}</td><td class="px-3 py-2">{{ $row->type?->name }}</td><td class="px-3 py-2">{{ $row->status?->name }}</td><td class="px-3 py-2">{{ $row->assignee?->name ?? '—' }}</td><td class="px-3 py-2">{{ $row->created_at?->format('d.m.Y H:i') }}</td></tr>@endforeach</tbody></table></div>
</div>
@@ -0,0 +1,4 @@
<div class="space-y-4">
<div class="card"><div class="card-body flex flex-wrap gap-2"><input wire:model.live="dateFrom" type="date" class="rounded-xl border border-slate-300 px-3 py-2"><input wire:model.live="dateTo" type="date" class="rounded-xl border border-slate-300 px-3 py-2"></div></div>
<div class="card overflow-hidden"><table class="min-w-full text-sm"><thead class="bg-slate-50"><tr><th class="px-3 py-2 text-left">Тип заявки</th><th class="px-3 py-2 text-center">Всего</th><th class="px-3 py-2 text-center">В SLA</th><th class="px-3 py-2 text-center">Соблюдение</th></tr></thead><tbody>@foreach($rows as $row)<tr class="border-t border-slate-100"><td class="px-3 py-2">{{ $row['type'] }}</td><td class="px-3 py-2 text-center">{{ $row['total'] }}</td><td class="px-3 py-2 text-center">{{ $row['within_sla'] }}</td><td class="px-3 py-2 text-center">{{ $row['percent'] }}%</td></tr>@endforeach</tbody></table></div>
</div>
@@ -0,0 +1,9 @@
<div class="space-y-4">
<div class="card"><div class="card-body flex flex-wrap items-center gap-2">
<input wire:model.live="dateFrom" type="date" class="rounded-xl border border-slate-300 px-3 py-2">
<input wire:model.live="dateTo" type="date" class="rounded-xl border border-slate-300 px-3 py-2">
<button wire:click="exportCsv" class="rounded-xl border border-slate-300 px-3 py-2 text-sm">Экспорт CSV</button>
<button wire:click="exportPdf" class="rounded-xl bg-slate-900 text-white px-3 py-2 text-sm">Экспорт PDF</button>
</div></div>
<div class="card overflow-hidden"><table class="min-w-full text-sm"><thead class="bg-slate-50"><tr><th class="px-3 py-2 text-left">Техник</th><th class="px-3 py-2">Назначено</th><th class="px-3 py-2">Решено</th><th class="px-3 py-2">Среднее время</th><th class="px-3 py-2">Рейтинг</th><th class="px-3 py-2">Просрочено</th></tr></thead><tbody>@foreach($rows as $row)<tr class="border-t border-slate-100"><td class="px-3 py-2">{{ $row['technician'] }}</td><td class="px-3 py-2 text-center">{{ $row['assigned'] }}</td><td class="px-3 py-2 text-center">{{ $row['resolved'] }}</td><td class="px-3 py-2 text-center">{{ $row['avg_resolution_hours'] }}ч</td><td class="px-3 py-2 text-center">{{ $row['rating'] }}</td><td class="px-3 py-2 text-center">{{ $row['overdue'] }}</td></tr>@endforeach</tbody></table></div>
</div>