+ class="flex flex-col gap-4 rounded-lg border bg-card p-6 shadow-xs md:flex-row md:items-center md:justify-between">
Analisa
- Halaman analisa data, performa toko, dan inventori.
+ Halaman analisa data dan performa toko.
- Mulai:
-
+ Mulai:
+
Sampai:
-
+ class="text-xs font-semibold tracking-wider text-muted-foreground uppercase">Sampai:
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
+ ]" />
-
-
+
+
+ ]" />
-
-
-
-
-
-
-
-
+ ]" />
-
-
-
-
+
+
+
+
+ Pendapatan
+
+
+
+
+ {{ revenueChartConfig[chart].label }}
+
+
+ Rp{{ formatRupiah(revenueTotals[chart]) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Belum ada data pendapatan
+
+
+
-
-
+
+
+
+
+ Pengeluaran
+
+
+
+
+ {{ expenseChartConfig[chart].label }}
+
+
+ Rp{{ formatRupiah(expenseTotals[chart]) }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Belum ada data pengeluaran
+
+
+
+
+
+
+
+
+
+ Jam Sibuk Toko
+ Distribusi pesanan berdasarkan jam dalam sehari
+
+
+
Jam Tersibuk
+
{{ peakHour.hour }}
+
{{ peakHour.orders }} pesanan
+
+
+
+
+
+
+
+
+
+
+
+
+ Belum ada data pesanan
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Top 5 Supplier
+ Berdasarkan total harga pembelian
+
+
+
+
+
+
+
+
+
+
+ Belum ada data supplier
+
+
+
+
+
+
+ Top 5 Pelanggan
+ Berdasarkan total nilai pesanan
+
+
+
+
+
+
+
+
+
+
+ Belum ada data pelanggan
+
+
+
+
+
+
+ Top 5 Produk
+ Berdasarkan jumlah terjual
+
+
+
+
+
+
+
+
+
+
+ Belum ada data produk
+
+
+
diff --git a/resources/js/pages/admin/Dashboard.vue b/resources/js/pages/admin/Dashboard.vue
index 8356b7d..6485faf 100644
--- a/resources/js/pages/admin/Dashboard.vue
+++ b/resources/js/pages/admin/Dashboard.vue
@@ -55,22 +55,6 @@ interface DashboardProps {
advance_total: number;
};
- topSuppliers: Array<{
- name: string;
- total_amount: number;
- purchase_count: number;
- }>;
- topCustomers: Array<{
- name: string;
- total_amount: number;
- order_count: number;
- }>;
- topProducts: Array<{
- name: string;
- total_qty: number;
- total_revenue: number;
- }>;
-
orderStats: {
by_channel: Array<{
channel: string;
@@ -149,27 +133,6 @@ const greeting = computed(() => {
});
// Chart configs
-const supplierChartConfig = {
- amount: {
- label: 'Total Pembelian',
- color: 'var(--chart-1)',
- },
-} satisfies ChartConfig;
-
-const customerChartConfig = {
- amount: {
- label: 'Total Pesanan',
- color: 'var(--chart-2)',
- },
-} satisfies ChartConfig;
-
-const productChartConfig = {
- qty: {
- label: 'Jumlah Terjual',
- color: 'var(--chart-3)',
- },
-} satisfies ChartConfig;
-
const channelColors = ['var(--chart-1)', 'var(--chart-2)', 'var(--chart-3)', 'var(--chart-4)', 'var(--chart-5)'];
const channelChartConfig = computed(() => {
const config: ChartConfig = {};
@@ -217,31 +180,6 @@ const marketingChartConfig = computed(() => {
});
return config;
});
-
-type SupplierData = { name: string; amount: number };
-type CustomerData = { name: string; amount: number };
-type ProductData = { name: string; qty: number };
-
-const supplierBarData = computed
(() => {
- return props.topSuppliers.map((s) => ({
- name: s.name.length > 15 ? s.name.substring(0, 15) + '...' : s.name,
- amount: s.total_amount,
- }));
-});
-
-const customerBarData = computed(() => {
- return props.topCustomers.map((c) => ({
- name: c.name.length > 15 ? c.name.substring(0, 15) + '...' : c.name,
- amount: c.total_amount,
- }));
-});
-
-const productBarData = computed(() => {
- return props.topProducts.map((p) => ({
- name: p.name.length > 20 ? p.name.substring(0, 20) + '...' : p.name,
- qty: p.total_qty,
- }));
-});
@@ -348,84 +286,6 @@ const productBarData = computed(() => {
]" />
-