75 lines
2.3 KiB
PHP
75 lines
2.3 KiB
PHP
@php
|
|
$serviceCards = [
|
|
[
|
|
'icon' => 'box',
|
|
'iconColor' => 'text-green-400',
|
|
'badgeColor' => 'bg-green-400',
|
|
'title' => __('Services'),
|
|
'value' => count($vmware ?? []) + count($hosting ?? []),
|
|
'label' => __('Services'),
|
|
'tooltip' => __('Services')
|
|
],
|
|
[
|
|
'icon' => 'credit-card',
|
|
'iconColor' => 'text-primary',
|
|
'badgeColor' => 'bg-primary',
|
|
'title' => __('Balance'),
|
|
'value' => number_format(auth('users')->user()->credit, 0, ',', '.') . ' đ',
|
|
'label' => __('Balance'),
|
|
'tooltip' => __('Balance')
|
|
],
|
|
[
|
|
'icon' => 'file-text',
|
|
'iconColor' => 'text-blue-600',
|
|
'badgeColor' => 'bg-blue-600',
|
|
'title' => __('Invoices'),
|
|
'value' => count($invocie_unpaid ?? []),
|
|
'label' => __('Invoices'),
|
|
'tooltip' => __('Invoices')
|
|
],
|
|
[
|
|
'icon' => 'help-circle',
|
|
'iconColor' => 'text-red-600',
|
|
'badgeColor' => 'bg-red-600',
|
|
'title' => __('Support'),
|
|
'value' => count($ticket ?? []),
|
|
'label' => __('Support'),
|
|
'tooltip' => __('Support')
|
|
],
|
|
[
|
|
'icon' => 'globe',
|
|
'iconColor' => 'text-purple-600',
|
|
'badgeColor' => 'bg-purple-600',
|
|
'title' => __('Domains'),
|
|
'value' => count($domain ?? []),
|
|
'label' => __('Domains'),
|
|
'tooltip' => __('Domains')
|
|
]
|
|
];
|
|
@endphp
|
|
|
|
<div class="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-5 gap-5">
|
|
@foreach($serviceCards as $index => $card)
|
|
<x-service-card
|
|
:icon="$card['icon']"
|
|
:iconColor="$card['iconColor']"
|
|
:badgeColor="$card['badgeColor']"
|
|
:title="$card['title']"
|
|
:value="$card['value']"
|
|
:label="$card['label']"
|
|
:animationDelay="$index * 0.1"
|
|
/>
|
|
@endforeach
|
|
</div>
|
|
|
|
@push('scripts')
|
|
<script>
|
|
// Initialize Lucide icons when component loads
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
if (typeof lucide !== 'undefined') {
|
|
lucide.createIcons();
|
|
}
|
|
});
|
|
</script>
|
|
@endpush
|