feat: implement assets and blades layouts

This commit is contained in:
2026-08-18 18:23:49 -07:00
parent ebec702aff
commit b0848e65b9
112 changed files with 62486 additions and 88 deletions
+149 -33
View File
@@ -1,42 +1,158 @@
```blade
@extends('admin.layouts.app')
@section('breadcrumb')
<div><h1 class="page-title fw-medium fs-18 mb-1">داشبورد مدیریت</h1><span class="text-muted fs-12">نمای کلی سامانه هواپیمایی و تور</span></div>
<div>
<p class="fw-medium fs-18 mb-0">
سلام،
{{ auth('admin')->user()->first_name }}
عزیز
</p>
<p class="fs-13 text-muted mb-0">
به داشبورد خوش آمدید
</p>
</div>
@endsection
@section('content')
<div class="container-fluid pt-4">
<div class="row g-3">
@php($cards = [
['title'=>'کاربران ثبت‌نام‌شده','value'=>$usersCount ?? 0,'icon'=>'ri-group-line','class'=>'primary'],
['title'=>'پروازهای فعال','value'=>$flightsCount ?? 0,'icon'=>'ri-flight-takeoff-line','class'=>'success'],
['title'=>'تورهای فعال','value'=>$toursCount ?? 0,'icon'=>'ri-map-2-line','class'=>'warning'],
['title'=>'رزروهای در انتظار','value'=>$pendingBookings ?? 0,'icon'=>'ri-calendar-check-line','class'=>'danger'],
])
@foreach($cards as $card)
<div class="col-xl-3 col-lg-6 col-md-6"><div class="card custom-card h-100"><div class="card-body"><div class="d-flex align-items-center gap-3"><div class="avatar avatar-md bg-{{ $card['class'] }} svg-white"><i class="{{ $card['icon'] }} fs-24"></i></div><div><div class="fw-medium fs-13 text-dark">{{ $card['title'] }}</div><div class="fs-22 fw-semibold text-primary mt-1">{{ number_format($card['value']) }}</div></div></div></div></div></div>
@endforeach
<div class="main-content app-content">
<div class="container-fluid pt-4">
<div class="row">
{{-- تعداد پروازها --}}
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="card custom-card overflow-hidden">
<div class="card-body">
<div class="d-flex gap-3">
<div class="avatar avatar-md bg-primary svg-white">
<i class="ri-flight-takeoff-line fs-24"></i>
</div>
<div class="flex-fill">
<div class="fw-medium fs-13 mb-1 text-dark">
تعداد پروازها
</div>
<div class="fs-22 fw-semibold mb-1 text-primary">
{{ $flightsCount }}
</div>
<div class="d-flex align-items-center fs-11">
<span class="text-default op-6">
کل پروازها
</span>
</div>
</div>
</div>
</div>
</div>
</div>
{{-- تعداد کاربران --}}
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="card custom-card overflow-hidden">
<div class="card-body">
<div class="d-flex gap-3">
<div class="avatar avatar-md bg-success svg-white">
<i class="ri-user-line fs-24"></i>
</div>
<div class="flex-fill">
<div class="fw-medium fs-13 mb-1 text-dark">
تعداد کاربران
</div>
<div class="fs-22 fw-semibold mb-1 text-success">
{{ $usersCount }}
</div>
<div class="d-flex align-items-center fs-11">
<span class="text-default op-6">
کل کاربران
</span>
</div>
</div>
</div>
</div>
</div>
</div>
{{-- تعداد رزروها --}}
<div class="col-xl-4 col-lg-4 col-md-6 col-sm-12">
<div class="card custom-card overflow-hidden">
<div class="card-body">
<div class="d-flex gap-3">
<div class="avatar avatar-md bg-secondary svg-white">
<i class="ri-bookmark-line fs-24"></i>
</div>
<div class="flex-fill">
<div class="fw-medium fs-13 mb-1 text-dark">
تعداد رزروها
</div>
<div class="fs-22 fw-semibold mb-1 text-secondary">
{{ $bookingsCount }}
</div>
<div class="d-flex align-items-center fs-11">
<span class="text-default op-6">
کل رزروها
</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row g-3 mt-1">
<div class="col-xl-8"><div class="card custom-card"><div class="card-header"><div class="card-title">تعداد بازدید سایت در ۱۰ روز اخیر</div></div><div class="card-body"><div id="visits-chart" style="min-height:320px"></div></div></div></div>
<div class="col-xl-4"><div class="card custom-card h-100"><div class="card-header"><div class="card-title">آخرین فعالیت‌ها</div></div><div class="card-body"><div class="list-group list-group-flush">
@forelse(($latestLogs ?? []) as $log)
<div class="list-group-item px-0"><div class="d-flex justify-content-between"><span class="fw-semibold">{{ $log->action ?? 'تغییر اطلاعات' }}</span><small class="text-muted">{{ isset($log->created_at) ? $log->created_at->toJalali()->format('Y/m/d H:i') : '-' }}</small></div><div class="text-muted fs-12 mt-1">{{ $log->description ?? '' }}</div></div>
@empty
<div class="text-muted text-center py-5">فعالیتی برای نمایش وجود ندارد.</div>
@endforelse
</div></div></div></div>
</div>
</div>
@endsection
@push('scripts')
<script src="{{ asset('assets/admin/plugins/apexcharts/apexcharts.min.js') }}"></script>
<script>
document.addEventListener('DOMContentLoaded', function(){
const el=document.querySelector('#visits-chart'); if(!el || !window.ApexCharts) return;
new ApexCharts(el,{chart:{type:'area',height:320,toolbar:{show:false}},series:[{name:'بازدید',data:@json($visitData ?? [])}],xaxis:{categories:@json($visitLabels ?? [])},stroke:{curve:'smooth',width:3},dataLabels:{enabled:false},grid:{borderColor:'#eee'}}).render();
});
</script>
@endpush
```