wip admin/estadisticas

This commit is contained in:
María
2025-08-21 15:32:08 +02:00
parent a8f9e33dcd
commit 4cf42687ef
2 changed files with 193 additions and 22 deletions

View File

@@ -14,6 +14,11 @@
</p>
</div>
</div>
{{ companiesTimeline }}
{{ productsTimeline }}
{{ usersTimeline }}
{{ contactTimeline }}
{{ shoppingTimeline }}
<hr />
<trend-stats
:color="`#39af77`"
@@ -44,35 +49,60 @@
</template>
<script>
export default {
layout: 'admin',
middleware: 'auth',
meta: {
auth: { authority: 'SITE_ADMIN' },
},
async asyncData(context) {
const { data } = await context.$api.get(`/admin_stats/`)
const companiesCount = data.company_count
const productsCount = data.product_count
const companiesTimeline = data.companies_timeline
const productsTimeline = data.products_timeline
const usersTimeline = data.users_timeline
const contactTimeline = data.contact_timeline
const shoppingTimeline = data.shopping_timeline
import { useAuthStore } from '@/stores/auth'
export default {
setup() {
definePageMeta({
layout: 'admin',
middleware: 'auth',
auth: { authority: 'SITE_ADMIN' },
})
const auth = useAuthStore()
return { auth }
},
data() {
return {
companiesCount,
productsCount,
companiesTimeline,
productsTimeline,
usersTimeline,
contactTimeline,
shoppingTimeline,
companiesCount: 0,
productsCount: 0,
companiesTimeline: [],
productsTimeline: [],
usersTimeline: [],
contactTimeline: [],
shoppingTimeline: [],
}
},
async created() {
const config = useRuntimeConfig()
try {
const stats = await $fetch('/admin_stats/', {
baseURL: config.public.baseURL,
method: 'GET',
headers: {
Authorization: `Bearer ${this.auth.access}`,
},
})
if (stats) {
this.companiesCount = stats.company_count
this.productsCount = stats.product_count
this.companiesTimeline = stats.companies_timeline
this.productsTimeline = stats.products_timeline
this.usersTimeline = stats.users_timeline
this.contactTimeline = stats.contact_timeline
this.shoppingTimeline = stats.shopping_timeline
}
} catch (error) {
console.error('Error fetching admin stats:', error)
}
},
}
</script>
<style lang="scss" scoped>
.general-value {
font-size: 50px;