feat: update admin dashboard statistics
Deploy banu-front / deploy (push) Failing after 1m31s

This commit is contained in:
root
2026-07-30 14:15:26 +00:00
parent bc9ce01d3f
commit fe1fb6cfa4
2 changed files with 43 additions and 28 deletions
+37 -24
View File
@@ -9,7 +9,7 @@
</template>
</BoxedIconTitleBlock>
<SkeletonLoaderBlock v-if="isLoading" :rows="1" :cols-per-row="3" />
<SkeletonLoaderBlock v-if="isLoading" :rows="2" :cols-per-row="3" />
<div v-else class="dashboard__stats">
<DashboardStatCard
v-for="(stat, i) in institutionStats"
@@ -95,37 +95,50 @@ const ACCESS_LABELS = {
limited: 'محدود',
}
const formatThousands = (value) => {
const n = Number(value ?? 0)
return n >= 1000
? { value: toFaDigits(Math.round(n / 1000)), unit: 'هزار' }
: { value: toFaDigits(n), unit: 'نفر' }
}
const institutionStats = computed(() => {
const stats = dashboard.value.stats ?? {}
const users = formatThousands(stats.activeUsers)
return [
{
icon: 'user',
label: 'آمار کلی کاربران',
value: users.value,
unit: users.unit,
subtitle: 'کاربر فعال',
icon: 'users-three',
label: 'مجموع کل متقاضیان',
value: toFaDigits(stats.totalApplicants ?? 0),
unit: 'نفر',
subtitle: 'احراز شده و نشده',
},
{
icon: 'video',
label: 'دوره های ایجاد شده',
value: toFaDigits(stats.coursesCreated ?? 0),
unit: 'دوره',
subtitle: 'ایجاد شده',
icon: 'clock',
label: 'کاربران در انتظار ارزیابی',
value: toFaDigits(stats.awaitingEvaluation ?? 0),
unit: 'نفر',
subtitle: 'در انتظار ارزیابی',
},
{
icon: 'shopping-bag',
label: وره های فروش رفته',
value: toFaDigits(stats.coursesSold ?? 0),
unit: 'عدد',
subtitle: 'دوره فروش رفته',
icon: 'book',
label: انشجویان ترم ۱',
value: toFaDigits(stats.term1Students ?? 0),
unit: 'نفر',
subtitle: 'ترم اول',
},
{
icon: 'book',
label: 'دانشجویان ترم ۲',
value: toFaDigits(stats.term2Students ?? 0),
unit: 'نفر',
subtitle: 'ترم دوم',
},
{
icon: 'book',
label: 'دانشجویان ترم ۳',
value: toFaDigits(stats.term3Students ?? 0),
unit: 'نفر',
subtitle: 'ترم سوم',
},
{
icon: 'certificate',
label: 'فارغ‌التحصیلان',
value: toFaDigits(stats.graduates ?? 0),
unit: 'نفر',
subtitle: 'تکمیل دوره آموزشی',
},
]
})
@@ -11,10 +11,12 @@ export const adminDashboard = {
openTickets: 32,
},
stats: {
activeUsers: 11_000,
totalUsers: 11_540,
coursesCreated: 6,
coursesSold: 12,
totalApplicants: 120,
awaitingEvaluation: 18,
term1Students: 42,
term2Students: 31,
term3Students: 24,
graduates: 16,
},
recentRegistrations: [
{