Files
moadiran/TaxPayerFull/Layout/PanelLayout.razor

230 lines
10 KiB
Plaintext
Raw Normal View History

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">
<div class="layout-menu-toggle navbar-nav align-items-xl-center me-3 me-xl-0 d-xl-none">
<a class="nav-item nav-link px-0 me-xl-4" href="javascript:void(0)">
<i class="bx bx-menu bx-sm"></i>
</a>
</div>
<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>
<!--/ 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-06-16 16:15:56 +03:30
@if (@dashBoard!=null)
{
<span>آخرین ورود : @dashBoard?.LastLoginDate</span>
}
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-06-16 16:15:56 +03:30
public DashBoardDTO? dashBoard { get; set; }
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-06-16 16:15:56 +03:30
dashBoard = await fv.GetDashBoard();
2024-06-25 20:54:16 +03:30
if (dashBoard != null)
countnot = 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-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>();
parameters.Add("items", 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("/");
}
}