2024-04-22 23:32:39 +03:30
|
|
|
|
@inherits LayoutComponentBase
|
2024-04-29 07:58:41 +03:30
|
|
|
|
@using Front.Services
|
|
|
|
|
@using Shared.DTOs
|
|
|
|
|
@inject ILocalStorageService Storage;
|
|
|
|
|
@inject UserAuthenticationDTO userinfo
|
|
|
|
|
@inject HttpClient _hc
|
|
|
|
|
@inject NavigationManager nav
|
2024-04-29 18:15:46 +03:30
|
|
|
|
@inject localService localserv;
|
2024-06-16 16:15:56 +03:30
|
|
|
|
@inject Fixedvalues fv;
|
2024-06-24 17:33:26 +03:30
|
|
|
|
<Modal @ref="modal" />
|
2024-04-22 23:32:39 +03:30
|
|
|
|
<HeadContent>
|
|
|
|
|
<link rel="canonical" href="#">
|
|
|
|
|
<!-- Favicon -->
|
2024-06-28 18:31:12 +03:30
|
|
|
|
<link rel="icon" type="image/png" href="img/logo/siyahe.png" />
|
2024-04-22 23:32:39 +03:30
|
|
|
|
<!-- Fonts -->
|
|
|
|
|
<link rel="preconnect" href="https://fonts.googleapis.com">
|
|
|
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
|
|
|
|
<link href="https://fonts.googleapis.com/css2?family=Public+Sans:ital,wght@0,300;0,400;0,500;0,600;0,700;1,300;1,400;1,500;1,600;1,700&display=swap" rel="stylesheet">
|
|
|
|
|
<!-- Icons. Uncomment required icon fonts -->
|
|
|
|
|
<link rel="stylesheet" href="assets/vendor/fonts/boxicons.css" />
|
|
|
|
|
<link href='assets/css/boxicons.min.css' rel='stylesheet'>
|
|
|
|
|
<!-- Core CSS -->
|
|
|
|
|
<link rel="stylesheet" href="assets/vendor/css/core.css" class="template-customizer-core-css" />
|
|
|
|
|
<link rel="stylesheet" href="assets/vendor/css/theme-default.css" class="template-customizer-theme-css" />
|
|
|
|
|
<link rel="stylesheet" href="assets/css/demo.css" />
|
2024-05-03 18:18:38 +03:30
|
|
|
|
<link rel="stylesheet" href="assets/css/chatstyle.css" />
|
2024-04-22 23:32:39 +03:30
|
|
|
|
<!-- Vendors CSS -->
|
|
|
|
|
<link rel="stylesheet" href="assets/vendor/libs/perfect-scrollbar/perfect-scrollbar.css" />
|
|
|
|
|
<link rel="stylesheet" href="assets/vendor/libs/apex-charts/apex-charts.css" />
|
|
|
|
|
<!-- Page CSS -->
|
|
|
|
|
<!-- Helpers -->
|
|
|
|
|
<script src="assets/vendor/js/helpers.js"></script>
|
|
|
|
|
<!--! Template customizer & Theme config files MUST be included after core stylesheets and helpers.js in the <head> section -->
|
|
|
|
|
<!--? Config: Mandatory theme config file contain global vars & default theme options, Set your preferred theme option in this file. -->
|
|
|
|
|
<script src="assets/js/config.js"></script>
|
|
|
|
|
<!-- Global site tag (gtag.js) - Google Analytics -->
|
|
|
|
|
<script async="async" src="https://www.googletagmanager.com/gtag/js?id=GA_MEASUREMENT_ID"></script>
|
|
|
|
|
<script>
|
|
|
|
|
window.dataLayer = window.dataLayer || [];
|
|
|
|
|
|
|
|
|
|
function gtag() {
|
|
|
|
|
dataLayer.push(arguments);
|
|
|
|
|
}
|
|
|
|
|
gtag('js', new Date());
|
|
|
|
|
gtag('config', 'GA_MEASUREMENT_ID');
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<!-- Core JS -->
|
|
|
|
|
<!-- build:js assets/vendor/js/core.js -->
|
|
|
|
|
<script src="assets/vendor/libs/jquery/jquery.js"></script>
|
|
|
|
|
<script src="assets/vendor/libs/popper/popper.js"></script>
|
|
|
|
|
<script src="assets/vendor/js/bootstrap.js"></script>
|
|
|
|
|
<script src="assets/vendor/libs/perfect-scrollbar/perfect-scrollbar.js"></script>
|
|
|
|
|
<script src="assets/vendor/js/menu.js"></script>
|
|
|
|
|
<!-- endbuild -->
|
|
|
|
|
<!-- Vendors JS -->
|
|
|
|
|
<script src="assets/vendor/libs/apex-charts/apexcharts.js"></script>
|
|
|
|
|
<!-- Main JS -->
|
|
|
|
|
<script src="assets/js/main.js"></script>
|
|
|
|
|
@* <!-- Page JS -->
|
|
|
|
|
<script src="assets/js/dashboards-analytics.js"></script> *@
|
|
|
|
|
<!-- Place this tag in your head or just before your close body tag. -->
|
|
|
|
|
<script src="assets/vendor/js/buttons.js"></script>
|
|
|
|
|
</HeadContent>
|
|
|
|
|
<!-- Layout wrapper -->
|
|
|
|
|
<div class="layout-wrapper layout-content-navbar ">
|
|
|
|
|
<div class="layout-container">
|
|
|
|
|
<!-- Menu -->
|
|
|
|
|
<aside id="layout-menu" class="layout-menu menu-vertical menu bg-menu-theme">
|
|
|
|
|
<div class="app-brand demo ">
|
2024-06-27 22:50:34 +03:30
|
|
|
|
<a href="Panel" class="app-brand-link">
|
2024-04-22 23:32:39 +03:30
|
|
|
|
<span class="app-brand-logo demo">
|
2024-06-28 18:31:12 +03:30
|
|
|
|
<div class="col-xxl-1 col-xl-1 col-lg-1 col-md-3 col-5">
|
|
|
|
|
<div class="header-bottom__logo">
|
|
|
|
|
<a href="/"><img height="37" src="img/logo/siyahe.png" alt=""></a>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-04-22 23:32:39 +03:30
|
|
|
|
</span>
|
2024-06-28 18:31:12 +03:30
|
|
|
|
<span style="color:black" class="app-brand-text demo menu-text fw-bolder ms-2">ـسیاهــه</span>
|
2024-04-22 23:32:39 +03:30
|
|
|
|
</a>
|
|
|
|
|
<a href="javascript:void(0);" class="layout-menu-toggle menu-link text-large mr-auto d-block d-xl-none">
|
|
|
|
|
<i class="bx bx-chevron-right bx-sm align-middle"></i>
|
|
|
|
|
</a>
|
|
|
|
|
</div>
|
|
|
|
|
<PanelNavMenu />
|
|
|
|
|
</aside>
|
|
|
|
|
<!-- / Menu -->
|
|
|
|
|
<!-- Layout container -->
|
|
|
|
|
<div class="layout-page">
|
|
|
|
|
<!-- Navbar -->
|
|
|
|
|
<nav class="layout-navbar container-xxl navbar navbar-expand-xl navbar-detached align-items-center bg-navbar-theme" id="layout-navbar">
|
2024-07-29 23:32:54 +03:30
|
|
|
|
<div class="d-flex">
|
|
|
|
|
<div class="avatar flex-shrink-0">
|
2024-07-30 18:06:11 +03:30
|
|
|
|
<img @onclick="CreditDocuments" src="assets/img/icons/unicons/wallet.png" alt="User">
|
2024-07-29 23:32:54 +03:30
|
|
|
|
</div>
|
|
|
|
|
<div>
|
|
|
|
|
<small class="text-muted d-block">موجودی</small>
|
|
|
|
|
<div class="d-flex align-items-center">
|
|
|
|
|
<h6 class="mb-0 me-1">@userinfo.Company.Credit.ToString("N0")<span style="font-size: 14px">ریال</span></h6>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
2024-04-22 23:32:39 +03:30
|
|
|
|
</div>
|
2024-07-29 23:32:54 +03:30
|
|
|
|
|
2024-04-22 23:32:39 +03:30
|
|
|
|
<div class="navbar-nav-right d-flex align-items-center" id="navbar-collapse">
|
|
|
|
|
|
|
|
|
|
<ul class="navbar-nav flex-row align-items-center mr-auto f-ir">
|
|
|
|
|
<!-- Place this tag where you want the button to render. -->
|
|
|
|
|
<li class="nav-item lh-1 me-3 f-ir">
|
2024-04-29 07:58:41 +03:30
|
|
|
|
<span class="fw-semibold d-block">@userinfo.Company.Name</span>
|
2024-04-22 23:32:39 +03:30
|
|
|
|
</li>
|
|
|
|
|
<!-- User -->
|
|
|
|
|
<li class="nav-item navbar-dropdown dropdown-user dropdown">
|
|
|
|
|
<a class="nav-link dropdown-toggle hide-arrow" href="javascript:void(0);" data-bs-toggle="dropdown">
|
|
|
|
|
<div class="avatar avatar-online">
|
2024-04-29 07:58:41 +03:30
|
|
|
|
@{
|
|
|
|
|
string _src = "assets/img/avatars/1.png";
|
|
|
|
|
if (userinfo.Company.Logo != null)
|
|
|
|
|
_src = "data:image/jpeg;base64," + @userinfo.Company.Logo;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
<img src=@_src alt class="w-px-40 h-auto rounded-circle">
|
2024-04-22 23:32:39 +03:30
|
|
|
|
</div>
|
|
|
|
|
</a>
|
|
|
|
|
<ul class="dropdown-menu dropdown-menu-end new-style-13">
|
|
|
|
|
|
|
|
|
|
<li>
|
2024-04-29 07:58:41 +03:30
|
|
|
|
<NavLink class="dropdown-item" href="Profile">
|
2024-04-22 23:32:39 +03:30
|
|
|
|
<i class="bx bx-user me-2"></i>
|
|
|
|
|
<span class="align-middle">پروفایل من</span>
|
2024-04-29 07:58:41 +03:30
|
|
|
|
</NavLink>
|
2024-04-22 23:32:39 +03:30
|
|
|
|
</li>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<li>
|
|
|
|
|
<div class="dropdown-divider"></div>
|
|
|
|
|
</li>
|
2024-04-29 07:58:41 +03:30
|
|
|
|
<li> <a class="dropdown-item">
|
2024-04-22 23:32:39 +03:30
|
|
|
|
<i class="bx bx-power-off me-2"></i>
|
2024-04-29 07:58:41 +03:30
|
|
|
|
<NavLink style="cursor:pointer" onclick="@Logout">
|
|
|
|
|
|
|
|
|
|
<span style="color:red;">خروج</span>
|
|
|
|
|
|
|
|
|
|
</NavLink>
|
|
|
|
|
</a>
|
2024-04-22 23:32:39 +03:30
|
|
|
|
</li>
|
|
|
|
|
</ul>
|
|
|
|
|
</li>
|
2024-07-29 23:32:54 +03:30
|
|
|
|
|
|
|
|
|
|
2024-04-22 23:32:39 +03:30
|
|
|
|
<!--/ User -->
|
2024-06-25 21:38:17 +03:30
|
|
|
|
@if (countnot > 0)
|
2024-06-25 17:14:08 +03:30
|
|
|
|
{
|
|
|
|
|
<li class="nav-item lh-1 me-3 f-ir">
|
|
|
|
|
<Button Type="ButtonType.Button" @onclick="ShowNotifications" Color="ButtonColor.None">
|
2024-06-25 20:54:16 +03:30
|
|
|
|
<Badge Color="BadgeColor.Danger"><Icon Name="IconName.MegaphoneFill" /> @countnot</Badge>
|
2024-06-25 17:14:08 +03:30
|
|
|
|
</Button>
|
|
|
|
|
</li>
|
|
|
|
|
}
|
|
|
|
|
|
2024-04-22 23:32:39 +03:30
|
|
|
|
</ul>
|
|
|
|
|
</div>
|
|
|
|
|
</nav>
|
|
|
|
|
<!-- / Navbar -->
|
|
|
|
|
<!-- Content wrapper -->
|
|
|
|
|
<div class="content-wrapper">
|
|
|
|
|
<!-- Content -->
|
|
|
|
|
<div class="container-xxl flex-grow-1 container-p-y">
|
|
|
|
|
@Body
|
|
|
|
|
|
|
|
|
|
</div>
|
|
|
|
|
<!-- / Content -->
|
|
|
|
|
<!-- Footer -->
|
|
|
|
|
<footer class="content-footer footer bg-footer-theme">
|
|
|
|
|
<div class="container-xxl d-flex flex-wrap justify-content-between py-2 flex-md-row flex-column">
|
|
|
|
|
<div class="mb-2 mb-md-0">
|
2024-07-30 12:14:36 +03:30
|
|
|
|
@if (@fv.dashBoard != null)
|
2024-06-16 16:15:56 +03:30
|
|
|
|
{
|
2024-07-30 12:14:36 +03:30
|
|
|
|
<span>آخرین ورود : @fv.dashBoard?.LastLoginDate</span>
|
2024-06-16 16:15:56 +03:30
|
|
|
|
}
|
|
|
|
|
|
2024-04-22 23:32:39 +03:30
|
|
|
|
</div>
|
2024-04-29 07:58:41 +03:30
|
|
|
|
<div>
|
|
|
|
|
<NavLink style="cursor:pointer" onclick="@Logout">
|
|
|
|
|
<span style="color:red;">خروج</span>
|
|
|
|
|
</NavLink>
|
|
|
|
|
</div>
|
2024-04-22 23:32:39 +03:30
|
|
|
|
</div>
|
|
|
|
|
</footer>
|
|
|
|
|
<!-- / Footer -->
|
|
|
|
|
<div class="content-backdrop fade"></div>
|
|
|
|
|
</div>
|
|
|
|
|
<!-- Content wrapper -->
|
|
|
|
|
</div>
|
|
|
|
|
<!-- / Layout page -->
|
|
|
|
|
</div>
|
|
|
|
|
<!-- Overlay -->
|
|
|
|
|
<div class="layout-overlay layout-menu-toggle"></div>
|
|
|
|
|
</div>
|
|
|
|
|
|
2024-06-16 16:15:56 +03:30
|
|
|
|
@code {
|
2024-06-25 20:54:16 +03:30
|
|
|
|
public int countnot = 0;
|
2024-06-24 17:33:26 +03:30
|
|
|
|
private Modal modal = default!;
|
2024-07-30 12:14:36 +03:30
|
|
|
|
// public DashBoardDTO? dashBoard { get; set; }
|
2024-06-16 16:15:56 +03:30
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
|
|
|
{
|
2024-06-30 19:57:32 +03:30
|
|
|
|
await fv.SetUlr("Panel");
|
|
|
|
|
|
2024-06-16 16:15:56 +03:30
|
|
|
|
if (!await localserv.OnlineUser())
|
|
|
|
|
nav.NavigateTo("/");
|
2024-04-22 23:32:39 +03:30
|
|
|
|
|
2024-07-30 12:14:36 +03:30
|
|
|
|
await fv.LoadDashBoard();
|
|
|
|
|
if (fv.dashBoard != null)
|
|
|
|
|
countnot = fv.dashBoard.Notifications.Count();
|
2024-06-16 16:15:56 +03:30
|
|
|
|
await base.OnInitializedAsync();
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-04-29 07:58:41 +03:30
|
|
|
|
@functions {
|
2024-06-25 20:54:16 +03:30
|
|
|
|
public async Task CallBack(int count)
|
|
|
|
|
{
|
|
|
|
|
countnot = count;
|
|
|
|
|
}
|
2024-07-30 18:06:11 +03:30
|
|
|
|
public async Task CreditDocuments()
|
|
|
|
|
{
|
|
|
|
|
var parameters = new Dictionary<string, object>();
|
|
|
|
|
|
|
|
|
|
await modal.ShowAsync<Front.CUSComponent.CreditDocuments>(title: "تراکنش ها", parameters: parameters);
|
|
|
|
|
}
|
2024-06-24 17:33:26 +03:30
|
|
|
|
public async Task ShowNotifications()
|
|
|
|
|
{
|
2024-06-25 20:54:16 +03:30
|
|
|
|
// dashBoard = await fv.GetDashBoard();
|
2024-06-24 17:33:26 +03:30
|
|
|
|
var parameters = new Dictionary<string, object>();
|
2024-07-30 12:14:36 +03:30
|
|
|
|
parameters.Add("items", fv.dashBoard?.Notifications);
|
2024-06-25 20:54:16 +03:30
|
|
|
|
parameters.Add("OnMultipleOfThree", EventCallback.Factory.Create<int>(this, CallBack));
|
2024-06-24 17:33:26 +03:30
|
|
|
|
await modal.ShowAsync<Front.CUSComponent.Notifications>(title: "اطلاعیه ها", parameters: parameters);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
2024-04-29 07:58:41 +03:30
|
|
|
|
private async Task Logout()
|
|
|
|
|
{
|
|
|
|
|
_hc.DefaultRequestHeaders.Clear();
|
|
|
|
|
await Storage.RemoveItem("token");
|
|
|
|
|
userinfo.Token = "";
|
|
|
|
|
nav.NavigateTo("/");
|
|
|
|
|
}
|
|
|
|
|
}
|