316 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			PHP
		
	
	
			
		
		
	
	
			316 lines
		
	
	
		
			12 KiB
		
	
	
	
		
			PHP
		
	
	
@extends('layouts.master')
 | 
						|
@section('content')
 | 
						|
<!-- Page Title Start -->
 | 
						|
<div class="flex justify-between items-center mb-6">
 | 
						|
    <h4 class="text-slate-900 dark:text-slate-200 text-lg font-medium">Dashboard</h4>
 | 
						|
</div>
 | 
						|
<!-- Page Title End -->
 | 
						|
 | 
						|
@if(session('group_id') == 1)
 | 
						|
<div class="grid xl:grid-cols-4 lg:grid-cols-2 grid-cols-1 gap-6 mb-6">
 | 
						|
    @foreach($group as $dataGroup)
 | 
						|
    <?php
 | 
						|
        $bg = '';
 | 
						|
 | 
						|
        if(@$dataGroup->alias == 'dinas'){
 | 
						|
            $bg = 'success';
 | 
						|
        }elseif(@$dataGroup->alias == 'biro'){
 | 
						|
            $bg = 'warning';
 | 
						|
        }elseif(@$dataGroup->alias == 'badan'){
 | 
						|
            $bg = 'danger';
 | 
						|
        }elseif(@$dataGroup->alias == 'deputi'){
 | 
						|
            $bg = 'info';
 | 
						|
        }
 | 
						|
 | 
						|
    ?>
 | 
						|
    <div class="card border-top-{{$bg}}">
 | 
						|
        <div class="p-6">
 | 
						|
            <div class="flex flex-col items-center">
 | 
						|
                <div class="w-full">
 | 
						|
                    {{-- <div class="flex justify-between">
 | 
						|
                        <div class="p-1 bg-primary text-white rounded text-xs">{{date('Y')}}</div>
 | 
						|
                    </div> --}}
 | 
						|
                    <div class="flex items-center justify-between">
 | 
						|
                        <div class="px-4 py-3 rounded-full bg-{{$bg}}-light">
 | 
						|
                            <i class="ri-database-2-line text-lg text-{{$bg}}"></i>
 | 
						|
                        </div>
 | 
						|
                        <div>
 | 
						|
                            <?php
 | 
						|
                            $count = $classDataset::where('tahun',date('Y'))->whereHas('instansi',function($query) use ($dataGroup){
 | 
						|
                                $query->where('parent','ilike','%'.$dataGroup->alias.'%');
 | 
						|
                            })->count();
 | 
						|
                            ?>
 | 
						|
                            <h2 class="text-3xl bold my-3 py-0.5">{{$count}}</h2> 
 | 
						|
                        </div>
 | 
						|
                    </div>
 | 
						|
                    
 | 
						|
                </div>
 | 
						|
                <div class="w-full">
 | 
						|
                    <div class="">
 | 
						|
                        <div class="mb-2"><h5 class="uppercase text-sm font-bold mt-0 truncate">Data {{$dataGroup->name}}</h5></div>
 | 
						|
                        <a href="{{url('dashboard/dataset/'.$dataGroup->alias)}}" class="text-{{ $bg }} text-xs">Lihat Selengkapnya <i class="ri-arrow-right-line"></i></a>
 | 
						|
                    </div>
 | 
						|
                </div>
 | 
						|
            </div> <!-- end row-->
 | 
						|
        </div> <!-- end p-6 -->
 | 
						|
    </div> <!-- end card -->
 | 
						|
    @endforeach
 | 
						|
 | 
						|
    
 | 
						|
</div>
 | 
						|
@endif
 | 
						|
<div class="grid xl:grid-cols-2 lg:grid-cols-2 grid-cols-1 gap-6 mb-6">
 | 
						|
    <div class="card">
 | 
						|
        <div class="p-6">
 | 
						|
            <div class="flex items-center justify-center">
 | 
						|
                <div class="w-full">
 | 
						|
                    <h5 class="text-lg bold mb-10">Data Penduduk Berdasarkan Wilayah Tahun {{(date('Y')-1)}}</h5>
 | 
						|
                    <p class="mb-10">Ini adalah data Data Penduduk Berdasarkan Wilayah Tahun {{(date('Y')-1)}}, berdasarkan data yang sudah di upload sebelumnya</p>
 | 
						|
                    <div id="penduduk1"></div>
 | 
						|
                </div>
 | 
						|
            </div>
 | 
						|
        </div>
 | 
						|
    </div>
 | 
						|
    <div class="card">
 | 
						|
        <div class="p-6">
 | 
						|
            <div class="flex items-center justify-center">
 | 
						|
                <div class="w-full">
 | 
						|
                    <h5 class="text-lg bold mb-10">Data Penduduk Berdasarkan Wilayah Tahun {{date('Y')}}</h5>
 | 
						|
                    <p class="mb-10">Ini adalah data Data Penduduk Berdasarkan Wilayah Tahun {{date('Y')}}, berdasarkan data yang sudah di upload sebelumnya</p>
 | 
						|
                    <div id="penduduk2"></div>
 | 
						|
                </div>
 | 
						|
            </div>
 | 
						|
        </div>
 | 
						|
    </div>
 | 
						|
</div>
 | 
						|
 | 
						|
<div class="grid xl:grid-cols-2 lg:grid-cols-2 grid-cols-1 gap-6 mb-6">
 | 
						|
    <div class="card">
 | 
						|
        <div class="p-6">
 | 
						|
            <div class="flex items-center justify-center">
 | 
						|
                <div class="w-full">
 | 
						|
                    <h5 class="text-lg bold mb-10">Data Jumlah Timbulan Sampah Tahun {{(date('Y')-1)}}</h5>
 | 
						|
                    <p class="mb-10">Ini adalah data Data Jumlah Timbulan Sampah Tahun {{(date('Y')-1)}}, berdasarkan data yang sudah di upload sebelumnya</p>
 | 
						|
                    <div id="timbulan1"></div>
 | 
						|
                </div>
 | 
						|
            </div>
 | 
						|
        </div>
 | 
						|
    </div>
 | 
						|
    <div class="card">
 | 
						|
        <div class="p-6">
 | 
						|
            <div class="flex items-center justify-center">
 | 
						|
                <div class="w-full">
 | 
						|
                    <h5 class="text-lg bold mb-10">Data Jumlah Timbulan Sampah Tahun {{date('Y')}}</h5>
 | 
						|
                    <p class="mb-10">Ini adalah data Data Jumlah Timbulan Sampah Tahun {{date('Y')}}, berdasarkan data yang sudah di upload sebelumnya</p>
 | 
						|
                    <div id="timbulan2"></div>
 | 
						|
                </div>
 | 
						|
            </div>
 | 
						|
        </div>
 | 
						|
    </div>
 | 
						|
</div>
 | 
						|
 | 
						|
<!-- end row -->
 | 
						|
@endsection
 | 
						|
@section('js')
 | 
						|
<script src="{{asset('assets/libs/apexcharts/apexcharts.min.js')}}"></script>
 | 
						|
<script>
 | 
						|
    var base_url = '{{ url("/") }}';
 | 
						|
    var tahun = '{{ date("Y")-1 }}';
 | 
						|
 | 
						|
     fetch(base_url+'/getPenduduk/'+tahun)
 | 
						|
        .then(res => res.json())
 | 
						|
        .then(data => {
 | 
						|
            const series = data.series.map(Number);
 | 
						|
 | 
						|
            var options = {
 | 
						|
                chart: {
 | 
						|
                    type: 'pie',
 | 
						|
                    height: 400
 | 
						|
                },
 | 
						|
                series: series,
 | 
						|
                labels: data.labels,
 | 
						|
                tooltip: {
 | 
						|
                    custom: function({ series, seriesIndex, w }) {
 | 
						|
                        // ambil nama kabupaten/kota langsung dari chart context
 | 
						|
                        const kota = w.globals.labels[seriesIndex];
 | 
						|
                        const value = series[seriesIndex].toLocaleString('id-ID');
 | 
						|
                        
 | 
						|
                        // hitung persentase dari total
 | 
						|
                        const total = series.reduce((a, b) => a + b, 0);
 | 
						|
                        const persen = ((series[seriesIndex] / total) * 100).toFixed(1);
 | 
						|
 | 
						|
                        return `
 | 
						|
                            <div style="padding:6px 10px; font-size:13px;">
 | 
						|
                                Jumlah Penduduk <b>${kota}</b>: ${value} (${persen}%)
 | 
						|
                            </div>
 | 
						|
                        `;
 | 
						|
                    }
 | 
						|
                },
 | 
						|
                responsive: [{
 | 
						|
                    breakpoint: 480,
 | 
						|
                    options: {
 | 
						|
                        chart: {
 | 
						|
                            width: 400
 | 
						|
                        },
 | 
						|
                        legend: {
 | 
						|
                            position: 'bottom'
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }]
 | 
						|
            };
 | 
						|
 | 
						|
            var chart = new ApexCharts(document.querySelector("#penduduk1"), options);
 | 
						|
            chart.render();
 | 
						|
        }).catch(error => console.error('Error:', error));
 | 
						|
</script>
 | 
						|
<script>
 | 
						|
    var base_url = '{{ url("/") }}';
 | 
						|
    var tahun = '{{ date("Y") }}';
 | 
						|
 | 
						|
     fetch(base_url+'/getPenduduk/'+tahun)
 | 
						|
        .then(res => res.json())
 | 
						|
        .then(data => {
 | 
						|
            const series = data.series.map(Number);
 | 
						|
 | 
						|
            var options = {
 | 
						|
                chart: {
 | 
						|
                    type: 'pie',
 | 
						|
                    height: 400
 | 
						|
                },
 | 
						|
                series: series,
 | 
						|
                labels: data.labels,
 | 
						|
                tooltip: {
 | 
						|
                    custom: function({ series, seriesIndex, w }) {
 | 
						|
                        // ambil nama kabupaten/kota langsung dari chart context
 | 
						|
                        const kota = w.globals.labels[seriesIndex];
 | 
						|
                        const value = series[seriesIndex].toLocaleString('id-ID');
 | 
						|
                        
 | 
						|
                        // hitung persentase dari total
 | 
						|
                        const total = series.reduce((a, b) => a + b, 0);
 | 
						|
                        const persen = ((series[seriesIndex] / total) * 100).toFixed(1);
 | 
						|
 | 
						|
                        return `
 | 
						|
                            <div style="padding:6px 10px; font-size:13px;">
 | 
						|
                                Jumlah Penduduk <b>${kota}</b>: ${value} (${persen}%)
 | 
						|
                            </div>
 | 
						|
                        `;
 | 
						|
                    }
 | 
						|
                },
 | 
						|
                responsive: [{
 | 
						|
                    breakpoint: 480,
 | 
						|
                    options: {
 | 
						|
                        chart: {
 | 
						|
                            width: 400
 | 
						|
                        },
 | 
						|
                        legend: {
 | 
						|
                            position: 'bottom'
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }]
 | 
						|
            };
 | 
						|
 | 
						|
            var chart = new ApexCharts(document.querySelector("#penduduk2"), options);
 | 
						|
            chart.render();
 | 
						|
        }).catch(error => console.error('Error:', error));
 | 
						|
</script>
 | 
						|
<script>
 | 
						|
    var base_url = '{{ url("/") }}';
 | 
						|
    var tahun = '{{ date("Y")-1 }}';
 | 
						|
 | 
						|
     fetch(base_url+'/getTimbulan/'+tahun)
 | 
						|
        .then(res => res.json())
 | 
						|
        .then(data => {
 | 
						|
            const series = data.series.map(Number);
 | 
						|
 | 
						|
            var options = {
 | 
						|
                chart: {
 | 
						|
                    type: 'pie',
 | 
						|
                    height: 400
 | 
						|
                },
 | 
						|
                series: series,
 | 
						|
                labels: data.labels,
 | 
						|
                tooltip: {
 | 
						|
                    custom: function({ series, seriesIndex, w }) {
 | 
						|
                        // ambil nama kabupaten/kota langsung dari chart context
 | 
						|
                        const kota = w.globals.labels[seriesIndex];
 | 
						|
                        const value = series[seriesIndex].toLocaleString('id-ID');
 | 
						|
                        
 | 
						|
                        // hitung persentase dari total
 | 
						|
                        const total = series.reduce((a, b) => a + b, 0);
 | 
						|
                        const persen = ((series[seriesIndex] / total) * 100).toFixed(1);
 | 
						|
 | 
						|
                        return `
 | 
						|
                            <div style="padding:6px 10px; font-size:13px;">
 | 
						|
                                Jumlah Timbulan Kg Per Hari <b>${kota}</b>: ${value} (${persen}%)
 | 
						|
                            </div>
 | 
						|
                        `;
 | 
						|
                    }
 | 
						|
                },
 | 
						|
                responsive: [{
 | 
						|
                    breakpoint: 480,
 | 
						|
                    options: {
 | 
						|
                        chart: {
 | 
						|
                            width: 400
 | 
						|
                        },
 | 
						|
                        legend: {
 | 
						|
                            position: 'bottom'
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }]
 | 
						|
            };
 | 
						|
 | 
						|
            var chart = new ApexCharts(document.querySelector("#timbulan1"), options);
 | 
						|
            chart.render();
 | 
						|
        }).catch(error => console.error('Error:', error));
 | 
						|
</script>
 | 
						|
<script>
 | 
						|
     var base_url = '{{ url("/") }}';
 | 
						|
    var tahun = '{{ date("Y") }}';
 | 
						|
 | 
						|
     fetch(base_url+'/getTimbulan/'+tahun)
 | 
						|
        .then(res => res.json())
 | 
						|
        .then(data => {
 | 
						|
            const series = data.series.map(Number);
 | 
						|
 | 
						|
            var options = {
 | 
						|
                chart: {
 | 
						|
                    type: 'pie',
 | 
						|
                    height: 400
 | 
						|
                },
 | 
						|
                series: series,
 | 
						|
                labels: data.labels,
 | 
						|
                tooltip: {
 | 
						|
                    custom: function({ series, seriesIndex, w }) {
 | 
						|
                        // ambil nama kabupaten/kota langsung dari chart context
 | 
						|
                        const kota = w.globals.labels[seriesIndex];
 | 
						|
                        const value = series[seriesIndex].toLocaleString('id-ID');
 | 
						|
                        
 | 
						|
                        // hitung persentase dari total
 | 
						|
                        const total = series.reduce((a, b) => a + b, 0);
 | 
						|
                        const persen = ((series[seriesIndex] / total) * 100).toFixed(1);
 | 
						|
 | 
						|
                        return `
 | 
						|
                            <div style="padding:6px 10px; font-size:13px;">
 | 
						|
                                Jumlah Timbulan Kg Per Hari <b>${kota}</b>: ${value} (${persen}%)
 | 
						|
                            </div>
 | 
						|
                        `;
 | 
						|
                    }
 | 
						|
                },
 | 
						|
                responsive: [{
 | 
						|
                    breakpoint: 480,
 | 
						|
                    options: {
 | 
						|
                        chart: {
 | 
						|
                            width: 400
 | 
						|
                        },
 | 
						|
                        legend: {
 | 
						|
                            position: 'bottom'
 | 
						|
                        }
 | 
						|
                    }
 | 
						|
                }]
 | 
						|
            };
 | 
						|
 | 
						|
            var chart = new ApexCharts(document.querySelector("#timbulan2"), options);
 | 
						|
            chart.render();
 | 
						|
        }).catch(error => console.error('Error:', error));
 | 
						|
</script>
 | 
						|
@endsection
 |