mirror of
https://github.com/crater-invoice/crater.git
synced 2025-10-28 04:01:10 -04:00
v6 update
This commit is contained in:
87
resources/scripts/admin/stores/dashboard.js
Normal file
87
resources/scripts/admin/stores/dashboard.js
Normal file
@ -0,0 +1,87 @@
|
||||
import axios from 'axios'
|
||||
import { defineStore } from 'pinia'
|
||||
import { useGlobalStore } from '@/scripts/admin/stores/global'
|
||||
import { handleError } from '@/scripts/helpers/error-handling'
|
||||
|
||||
export const useDashboardStore = (useWindow = false) => {
|
||||
const defineStoreFunc = useWindow ? window.pinia.defineStore : defineStore
|
||||
const { global } = window.i18n
|
||||
|
||||
return defineStoreFunc({
|
||||
id: 'dashboard',
|
||||
|
||||
state: () => ({
|
||||
stats: {
|
||||
totalAmountDue: 0,
|
||||
totalCustomerCount: 0,
|
||||
totalInvoiceCount: 0,
|
||||
totalEstimateCount: 0,
|
||||
},
|
||||
|
||||
chartData: {
|
||||
months: [],
|
||||
invoiceTotals: [],
|
||||
expenseTotals: [],
|
||||
receiptTotals: [],
|
||||
netIncomeTotals: [],
|
||||
},
|
||||
|
||||
totalSales: null,
|
||||
totalReceipts: null,
|
||||
totalExpenses: null,
|
||||
totalNetIncome: null,
|
||||
|
||||
recentDueInvoices: [],
|
||||
recentEstimates: [],
|
||||
|
||||
isDashboardDataLoaded: false,
|
||||
}),
|
||||
|
||||
actions: {
|
||||
loadData(params) {
|
||||
return new Promise((resolve, reject) => {
|
||||
axios
|
||||
.get(`/api/v1/dashboard`, { params })
|
||||
.then((response) => {
|
||||
// Stats
|
||||
this.stats.totalAmountDue = response.data.total_amount_due
|
||||
this.stats.totalCustomerCount = response.data.total_customer_count
|
||||
this.stats.totalInvoiceCount = response.data.total_invoice_count
|
||||
this.stats.totalEstimateCount = response.data.total_estimate_count
|
||||
|
||||
// Dashboard Chart
|
||||
if (this.chartData && response.data.chart_data) {
|
||||
this.chartData.months = response.data.chart_data.months
|
||||
this.chartData.invoiceTotals =
|
||||
response.data.chart_data.invoice_totals
|
||||
this.chartData.expenseTotals =
|
||||
response.data.chart_data.expense_totals
|
||||
this.chartData.receiptTotals =
|
||||
response.data.chart_data.receipt_totals
|
||||
this.chartData.netIncomeTotals =
|
||||
response.data.chart_data.net_income_totals
|
||||
}
|
||||
|
||||
// Dashboard Chart Labels
|
||||
this.totalSales = response.data.total_sales
|
||||
this.totalReceipts = response.data.total_receipts
|
||||
this.totalExpenses = response.data.total_expenses
|
||||
this.totalNetIncome = response.data.total_net_income
|
||||
|
||||
// Dashboard Table Data
|
||||
this.recentDueInvoices = response.data.recent_due_invoices
|
||||
this.recentEstimates = response.data.recent_estimates
|
||||
|
||||
this.isDashboardDataLoaded = true
|
||||
|
||||
resolve(response)
|
||||
})
|
||||
.catch((err) => {
|
||||
handleError(err)
|
||||
reject(err)
|
||||
})
|
||||
})
|
||||
},
|
||||
},
|
||||
})()
|
||||
}
|
||||
Reference in New Issue
Block a user