322 lines
12 KiB
Plaintext
322 lines
12 KiB
Plaintext
@page
|
|
@using _0_Framework.Application
|
|
@using Microsoft.AspNetCore.Mvc.TagHelpers
|
|
@model ServiceHost.Areas.Client.Pages.Company.RollCall.IndexModel
|
|
|
|
@{
|
|
ViewData["Title"] = " - " + "حضور و غیاب";
|
|
string clientVersion = _0_Framework.Application.Version.StyleVersion;
|
|
int index = 1;
|
|
int i = 0;
|
|
<link href="~/assetsclient/css/card.css?ver=@clientVersion" rel="stylesheet" />
|
|
|
|
<style>
|
|
@@media (min-width: 1260px) {
|
|
.col-60 {
|
|
width: calc(100% / 6);
|
|
}
|
|
|
|
.col-50 {
|
|
width: calc(100% / 5);
|
|
}
|
|
|
|
.col-30 {
|
|
width: calc(100% / 3);
|
|
}
|
|
}
|
|
|
|
@@media (min-width: 992px) {
|
|
.col-30 {
|
|
width: calc(100% / 3);
|
|
}
|
|
}
|
|
|
|
.tooltipfull-container {
|
|
cursor: pointer;
|
|
position: relative;
|
|
}
|
|
|
|
.tooltipfull {
|
|
opacity: 0;
|
|
z-index: 99;
|
|
color: #fff;
|
|
display: grid;
|
|
font-size: 12px;
|
|
padding: 5px 10px;
|
|
border-radius: 8px;
|
|
background: #23a8a8;
|
|
border: 1px solid #23a8a8;
|
|
-webkit-transition: all .2s ease-in-out;
|
|
-moz-transition: all .2s ease-in-out;
|
|
-o-transition: all .2s ease-in-out;
|
|
transition: all .2s ease-in-out;
|
|
-webkit-transform: scale(0);
|
|
-moz-transform: scale(0);
|
|
-o-transform: scale(0);
|
|
-ms-transform: scale(0);
|
|
transform: scale(0);
|
|
position: absolute;
|
|
right: -2px;
|
|
bottom: 30px;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.tooltipfull-container:hover .tooltipfull, a:hover .tooltipfull {
|
|
opacity: 1;
|
|
-webkit-transform: scale(1);
|
|
-moz-transform: scale(1);
|
|
-o-transform: scale(1);
|
|
-ms-transform: scale(1);
|
|
transform: scale(1);
|
|
}
|
|
|
|
.tooltipfull:before, .tooltipfull:after {
|
|
content: '';
|
|
border-left: 10px solid transparent;
|
|
border-right: 10px solid transparent;
|
|
border-top: 10px solid #23a8a8;
|
|
position: absolute;
|
|
bottom: -10px;
|
|
right: 20px;
|
|
}
|
|
|
|
|
|
/* keyframes fade-in {
|
|
from {
|
|
opacity: 0;
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
}
|
|
} */
|
|
.container,
|
|
.main-example {
|
|
text-align: center;
|
|
margin: 100px 0 0;
|
|
}
|
|
|
|
.container.container,
|
|
.main-example.container {
|
|
margin: 30px 0;
|
|
}
|
|
|
|
.container span,
|
|
.main-example span {
|
|
border: 1px solid gray;
|
|
display: inline-block;
|
|
padding: 5px 10px;
|
|
border-radius: 4px;
|
|
}
|
|
|
|
body {
|
|
font-family: arial;
|
|
}
|
|
|
|
.explanation {
|
|
margin: 70px 30px;
|
|
}
|
|
|
|
h2 {
|
|
text-align: center;
|
|
}
|
|
|
|
code {
|
|
color: rgba(0, 0, 180, 0.9);
|
|
background: rgba(0, 0, 180, 0.1);
|
|
display: inline-block;
|
|
border: 1px solid rgba(0, 0, 180, 0.9);
|
|
border-radius: 3px;
|
|
padding: 0 3px;
|
|
}
|
|
</style>
|
|
}
|
|
|
|
<!-- MAIN CONTENT -->
|
|
<div class="content-container">
|
|
|
|
<div class="container-fluid">
|
|
<div class="row p-2">
|
|
<div class="col p-0 m-0 d-flex align-items-center justify-content-between">
|
|
<div class="col d-flex align-items-center justify-content-start">
|
|
<img src="~/AssetsClient/images/icons/face-scan.png" alt="" class="img-fluid me-2" style="width: 45px;" />
|
|
<div>
|
|
<h4 class="title d-flex align-items-center">حضور و غیاب</h4>
|
|
<div>@Model.WorkshopFullName</div>
|
|
</div>
|
|
</div>
|
|
<div>
|
|
<a asp-page="/Index" class="back-btn" type="button">
|
|
<span>بازگشت</span>
|
|
</a>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="container-fluid">
|
|
<div class="row p-2">
|
|
<div class="profile-header position-relative">
|
|
<img src="~/AssetsClient/images/profile-header.png" alt="" class="img-fluid">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="container-fluid">
|
|
@if (Model.CheckRollCallService)
|
|
{
|
|
<div class="row p-2">
|
|
<div class="msg-note">
|
|
<div class="row align-items-center">
|
|
<div class="col-12 text-start">
|
|
<div class="d-flex align-items-center">
|
|
<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg">
|
|
<circle cx="18" cy="18" r="13.5" fill="#2FC1C1"></circle>
|
|
<path d="M19.5 10.5C19.5 11.3284 18.8284 12 18 12C17.1716 12 16.5 11.3284 16.5 10.5C16.5 9.67157 17.1716 9 18 9C18.8284 9 19.5 9.67157 19.5 10.5Z" fill="white"></path>
|
|
<path stroke-width="1.5" d="M18 24.75V17.25C18 15.8358 18 15.1287 17.5607 14.6893C17.1213 14.25 16.4142 14.25 15 14.25V14.25M18 24.75H20.25M18 24.75H15.75" stroke="white"></path>
|
|
</svg>
|
|
<p class="m-0 ms-2">زمان باقی مانده سرویس: @Model.RollCallServiceDeadline</p>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
}
|
|
|
|
<div class="row p-lg-2">
|
|
<div class="d-grid card-area-rollcall gap-2 p-lg-0">
|
|
|
|
<div class="gwb-card disable" Permission="@SubAccountPermissionHelper.UpgradeOrChangeRollCallServicePermissionCode">
|
|
@* asp-page="/Company/RollCall/Plans" *@
|
|
<a class="click loadingButton">
|
|
<div class="d-flex align-items-center justify-content-start p-1">
|
|
<img src="~/AssetsClient/images/icons/boxes.png" alt="" class="img-fluid mx-1" width="50px"/>
|
|
<div class="text-start ms-1">
|
|
<div class="card-title">
|
|
@if (!Model.CheckRollCallService)
|
|
{
|
|
<span>خرید سرویس</span>
|
|
}
|
|
else
|
|
{
|
|
<span>ارتقا یا تغییر سرویس</span>
|
|
}
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="spinner-loading loading" style="display: none;">
|
|
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="gwb-card @(Model.CheckRollCallService && Model.HasCameraAccount == "true" ? "" : "disable")" Permission="@SubAccountPermissionHelper.UploadEmployeePicturePermissionCode">
|
|
<a asp-page="/Company/RollCall/EmployeeUploadPicture" class="click loadingButton">
|
|
<div class="d-flex align-items-center justify-content-start p-1">
|
|
<img src="~/AssetsClient/images/icons/image-rollcall.png" alt="" class="img-fluid mx-1" width="50px"/>
|
|
<div class="text-start ms-1">
|
|
<div class="card-title">آپلود عکس پرسنل</div>
|
|
</div>
|
|
</div>
|
|
<div class="spinner-loading loading" style="display: none;">
|
|
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="gwb-card @(Model.RollCallServicePersonnelActive == "true" && Model.HasCameraAccount == "true" ? "" : "disable")" Permission="@SubAccountPermissionHelper.ListCurrentDayRollCallsPermissionCode">
|
|
<a asp-page="/Company/RollCall/CurrentDay" class="click loadingButton">
|
|
<div class="d-flex align-items-center justify-content-start p-1">
|
|
<img src="~/AssetsClient/images/rollcall.png" alt="" class="img-fluid mx-1" width="50px"/>
|
|
<div class="text-start ms-1">
|
|
<div class="card-title">حضور و غیاب جاری</div>
|
|
</div>
|
|
</div>
|
|
<div class="spinner-loading loading" style="display: none;">
|
|
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="gwb-card @(Model.RollCallServicePersonnelActive == "true" && Model.HasCameraAccount == "true" ? "" : "disable")" Permission="@SubAccountPermissionHelper.ListRollCallHistoryPermissionCode">
|
|
<a asp-page="/Company/RollCall/CaseHistory" class="click loadingButton">
|
|
<div class="d-flex align-items-center justify-content-start p-1">
|
|
<img src="~/AssetsClient/images/rollcall-history.png" alt="" class="img-fluid mx-1" width="50px"/>
|
|
<div class="text-start ms-1">
|
|
<div class="card-title">سوابق حضور و غیاب</div>
|
|
</div>
|
|
</div>
|
|
<div class="spinner-loading loading" style="display: none;">
|
|
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="gwb-card @(Model.CheckRollCallService && Model.HasCameraAccount == "true" && Model.HasRollCallCustomizeWorkshopSetting == "true" ? "" : "disable")" Permission="@SubAccountPermissionHelper.GroupingOperationsPermissionCode">
|
|
<a asp-page="/Company/RollCall/Grouping" class="click loadingButton">
|
|
<div class="d-flex align-items-center justify-content-start p-1">
|
|
<img src="~/AssetsClient/images/icons/grouping-rollcall.png" alt="" class="img-fluid mx-1" width="50px" />
|
|
<div class="text-start ms-1">
|
|
<div class="card-title">عملیات گروهبندی</div>
|
|
</div>
|
|
</div>
|
|
<div class="spinner-loading loading" style="display: none;">
|
|
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
<div class="gwb-card @(Model.CheckRollCallService && Model.HasCameraAccount == "true" && Model.HasRollCallCustomizeWorkshopSetting == "true" ? "" : "disable")" Permission="@SubAccountPermissionHelper.SetWorkshopWorkingHoursPermissionCode">
|
|
<a href="#showmodal=@Url.Page("./Index", "EditSettingWorkTime")" class="click loadingButton">
|
|
<div class="d-flex align-items-center justify-content-start p-1">
|
|
<img src="~/AssetsClient/images/icons/time-management.png" alt="" class="img-fluid mx-1" width="50px" />
|
|
<div class="text-start ms-1">
|
|
<div class="card-title">تنظیم ساعت فعالیت مجموعه</div>
|
|
</div>
|
|
</div>
|
|
<div class="spinner-loading loading" style="display: none;">
|
|
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
|
|
<div class="gwb-card @(Model.CheckRollCallService && Model.HasCameraAccount == "true" && Model.HasRollCallCustomizeWorkshopSetting == "true" ? "" : "disable")" Permission="@SubAccountPermissionHelper.CameraAccountSettingsPermissionCode">
|
|
<a asp-page="/Company/RollCall/CameraAccounts" class="click loadingButton">
|
|
<div class="d-flex align-items-center justify-content-start p-1">
|
|
<img src="~/AssetsClient/images/icons/account-camera.png" alt="" class="img-fluid mx-1" width="50px" />
|
|
<div class="text-start ms-1">
|
|
<div class="card-title">تنظیمات حساب کاربری دوربین</div>
|
|
</div>
|
|
</div>
|
|
<div class="spinner-loading loading" style="display: none;">
|
|
<span class="spinner-border spinner-border-sm loading text-white" role="status" aria-hidden="true"></span>
|
|
</div>
|
|
</a>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- END MAIN CONTENT -->
|
|
|
|
<div id="MainModal" class="modal fade groupSettingModall" aria-labelledby="myModalLabel" aria-hidden="true" tabindex="-1" data-bs-backdrop="static" style="display: none;">
|
|
<div class="modal-dialog modal-md modal-dialog-centered groupSettingModall-width">
|
|
<div class="modal-content" id="ModalContent">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
@section Script {
|
|
<script>
|
|
var antiForgeryToken = $(`@Html.AntiForgeryToken()`).val();
|
|
var hasRollCallService = @(Model.CheckRollCallService == true ? "true" : "false");
|
|
var hasCameraAccount = @Model.HasCameraAccount;
|
|
var hasRollCallWorkshopSetting = @Model.HasRollCallWorkshopSetting;
|
|
var statusCameraAccountAndWorkshopSettingUrl = `@Url.Page("./Index", "StatusCameraAccountAndWorkshopSetting")`;
|
|
var saveCameraAccountUrl = `@Url.Page("./Index", "SaveCameraAccountAndWorkshopSetting")`;
|
|
</script>
|
|
|
|
<script src="~/assetsclient/js/site.js?ver=@clientVersion"></script>
|
|
<script src="~/assetsclient/pages/rollcall/js/index.js?ver=@clientVersion"></script>
|
|
} |