46 lines
3.0 KiB
Plaintext
46 lines
3.0 KiB
Plaintext
|
|
@page
|
|||
|
|
@model JobsMedical.Web.Pages.Admin.AnalyticsModel
|
|||
|
|
@{
|
|||
|
|
ViewData["Title"] = "آمار و تحلیل";
|
|||
|
|
string Fa(int n) => JalaliDate.ToPersianDigits(n.ToString());
|
|||
|
|
}
|
|||
|
|
<div class="page-head">
|
|||
|
|
<div class="container">
|
|||
|
|
<h1>📊 آمار و تحلیل</h1>
|
|||
|
|
<p class="muted"><a asp-page="/Admin/Overview">← پنل مدیریت</a></p>
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="container section">
|
|||
|
|
<div class="grid grid-4">
|
|||
|
|
<div class="card card-pad"><div class="muted">کاربران</div><div style="font-size:26px; font-weight:800;">@Fa(Model.Users)</div><div class="muted" style="font-size:12px;">+@Fa(Model.NewUsers7) در ۷ روز</div></div>
|
|||
|
|
<div class="card card-pad"><div class="muted">مراکز</div><div style="font-size:26px; font-weight:800;">@Fa(Model.Facilities)</div><div class="muted" style="font-size:12px;">@Fa(Model.VerifiedFacilities) تأییدشده</div></div>
|
|||
|
|
<div class="card card-pad"><div class="muted">شیفتهای باز</div><div style="font-size:26px; font-weight:800; color:var(--primary-dark);">@Fa(Model.OpenShifts)</div></div>
|
|||
|
|
<div class="card card-pad"><div class="muted">استخدامهای باز</div><div style="font-size:26px; font-weight:800; color:var(--primary-dark);">@Fa(Model.OpenJobs)</div></div>
|
|||
|
|
<div class="card card-pad"><div class="muted">اعلام تمایلها</div><div style="font-size:26px; font-weight:800; color:var(--accent);">@Fa(Model.Applications)</div><div class="muted" style="font-size:12px;">+@Fa(Model.NewApps7) در ۷ روز</div></div>
|
|||
|
|
<div class="card card-pad"><div class="muted">نظرات</div><div style="font-size:26px; font-weight:800;">@Fa(Model.Reviews)</div></div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="card card-pad" style="margin-top:18px;">
|
|||
|
|
<h3 style="margin-top:0;">اعلام تمایل — ۱۴ روز اخیر</h3>
|
|||
|
|
<div style="display:flex; align-items:flex-end; gap:6px; height:140px; padding-top:10px;">
|
|||
|
|
@foreach (var b in Model.ApplyByDay)
|
|||
|
|
{
|
|||
|
|
var h = (int)(b.Count / (double)Model.MaxBar * 120) + 2;
|
|||
|
|
<div style="flex:1; display:flex; flex-direction:column; align-items:center; gap:4px;">
|
|||
|
|
<div style="width:100%; height:@(h)px; background:var(--primary); border-radius:6px 6px 0 0;" title="@Fa(b.Count)"></div>
|
|||
|
|
<span class="muted" style="font-size:10px;">@Fa(b.Day.Day)</span>
|
|||
|
|
</div>
|
|||
|
|
}
|
|||
|
|
</div>
|
|||
|
|
</div>
|
|||
|
|
|
|||
|
|
<div class="card card-pad" style="margin-top:18px; display:flex; gap:10px; flex-wrap:wrap;">
|
|||
|
|
<a class="btn btn-outline" asp-page="/Admin/Index">صف آگهیها</a>
|
|||
|
|
<a class="btn btn-outline" asp-page="/Admin/Facilities">مراکز</a>
|
|||
|
|
<a class="btn btn-outline" asp-page="/Admin/Reviews">نظرات</a>
|
|||
|
|
<a class="btn btn-outline" asp-page="/Admin/Reports">گزارشها</a>
|
|||
|
|
<a class="btn btn-outline" asp-page="/Admin/Users">کاربران</a>
|
|||
|
|
</div>
|
|||
|
|
</div>
|