添加自动退出倒计时

This commit is contained in:
maqiao 2025-10-29 16:06:32 +08:00
parent 148417c3c1
commit e196898096
5 changed files with 92 additions and 2 deletions

View File

@ -36,6 +36,16 @@
.rz-gauge .rz-tick-text {
fill: #ffffff !important;
}
.warning-message {
background: #ffeaa7;
padding: 15px;
border-radius: 8px;
text-align: center;
margin-bottom: 12px;
display: block;
animation: pulse 1.5s infinite;
}
</style>
<RadzenStack Orientation="Orientation.Vertical" class="rz-background-color-primary-light" AlignItems="AlignItems.Center" Style="width:100vw;height:100vh" Gap="0">
@ -91,6 +101,12 @@
</RadzenRow>
</RadzenColumn>
</RadzenRow>
@if (warnTime != 999999999 && warnTime !=0)
{
<div class="warning-message" id="warningMessage">
<strong>警告:</strong> 您长时间未操作屏幕,系统将在 <span id="countdown">@warnTime</span> 秒后自动退出!
</div>
}
<RadzenStack class="rz-background-color-info-lighter" Orientation="Orientation.Horizontal" JustifyContent="JustifyContent.Center" AlignItems="AlignItems.Center" Style="width: 75vw;height: 57vh" Gap="20">
<RadzenStack Style="height: 100%;width:41%" Gap="20">
@ -192,6 +208,7 @@
private readonly ILog logger = LogManager.GetLogger(typeof(Home));
@inject Microsoft.Extensions.Options.IOptions<Pojo.Config.SettingConfig> setting;
bool currentPage = true;
int warnTime = 999999999;
protected override void OnInitialized()
{
@ -236,6 +253,31 @@
}
else
{
if (setting.Value.warningMessage > 0)
{
if ((DateTime.Now - _portUtil.dateTime).TotalSeconds > (setting.Value.autoOutLog - setting.Value.warningMessage) && (DateTime.Now - _portUtil.mouseClickTime).TotalSeconds > (setting.Value.autoOutLog - setting.Value.warningMessage))
{
if ((DateTime.Now - _portUtil.dateTime).TotalSeconds <= (setting.Value.autoOutLog - setting.Value.warningMessage))
{
//提示3秒后将自动退出
warnTime = Convert.ToInt32(setting.Value.autoOutLog - (DateTime.Now - _portUtil.dateTime).TotalSeconds);
await InvokeAsync(StateHasChanged);
}
else
{
//提示3秒后将自动退出
warnTime = Convert.ToInt32(setting.Value.autoOutLog - (DateTime.Now - _portUtil.mouseClickTime).TotalSeconds);
//提示3秒后将自动退出
await InvokeAsync(StateHasChanged);
}
}
else
{
warnTime = 999999999;
await InvokeAsync(StateHasChanged);
}
}
logger.Info($"{setting.Value.autoOutLog}未自动退出{(DateTime.Now - _portUtil.dateTime).TotalSeconds}-{(DateTime.Now - _portUtil.mouseClickTime).TotalSeconds}");
next();
}

View File

@ -41,6 +41,8 @@
if (firstRender)
{
#if DEBUG
#else
await Task.Delay(15);
msg = "开始连接指纹模块";
InvokeAsync(StateHasChanged);
@ -64,6 +66,7 @@
logger.Info($"指纹模块连接失败【{e.Message}】");
InvokeAsync(StateHasChanged);
}
#endif
await Task.Delay(500);
msg = "开始连接抽屉串口";
InvokeAsync(StateHasChanged);

View File

@ -16,6 +16,8 @@ namespace MasaBlazorApp3.Pojo.Config
public bool opFirst { get; set; }
//自动退出登录时间,单位秒0不自动退出
public int autoOutLog { get; set; }
//自动退出登录倒计时时间0不倒计时
public int warningMessage { get; set; }
//手术室药盒的设备id
public string boxMachineId { get; set; }
//手术室名称

View File

@ -22,6 +22,15 @@
border-radius: 20px;
}
.warning-message {
background: #ffeaa7;
padding: 15px;
border-radius: 8px;
text-align: center;
/* margin-top: 2px; */
display: block;
animation: pulse 1.5s infinite;
}
</style>
<RadzenLayout>
@ -77,6 +86,12 @@
</RadzenRow>
</RadzenHeader>
<RadzenBody>
@if (warnTime != 999999999)
{
<div class="warning-message" id="warningMessage">
<strong>警告:</strong> 您长时间未操作屏幕,系统将在 <span id="countdown">@warnTime</span> 秒后自动退出!
</div>
}
<div class="container-fluid rz-p-1">
<RadzenCard>
@Body
@ -101,6 +116,7 @@
@inject NotificationService _message
private readonly ILog logger = LogManager.GetLogger(typeof(MainLayout));
bool currentPage = true;
int warnTime = 999999999;
protected override void OnInitialized()
{
@ -142,6 +158,31 @@
}
else
{
if (setting.Value.warningMessage > 0)
{
if ((DateTime.Now - _portUtil.dateTime).TotalSeconds > (setting.Value.autoOutLog - setting.Value.warningMessage) && (DateTime.Now - _portUtil.mouseClickTime).TotalSeconds > (setting.Value.autoOutLog - setting.Value.warningMessage))
{
if ((DateTime.Now - _portUtil.dateTime).TotalSeconds <= (setting.Value.autoOutLog - setting.Value.warningMessage))
{
//提示3秒后将自动退出
warnTime = Convert.ToInt32(setting.Value.autoOutLog - (DateTime.Now - _portUtil.dateTime).TotalSeconds);
await InvokeAsync(StateHasChanged);
}
else
{
//提示3秒后将自动退出
warnTime = Convert.ToInt32(setting.Value.autoOutLog - (DateTime.Now - _portUtil.mouseClickTime).TotalSeconds);
//提示3秒后将自动退出
await InvokeAsync(StateHasChanged);
}
}
else
{
warnTime = 999999999;
await InvokeAsync(StateHasChanged);
}
}
next();
}
}

View File

@ -16,7 +16,9 @@
"loginMode": 1,
"opFirst": true,
//退,0退
"autoOutLog": 0,
"autoOutLog": 15,
//退
"warningMessage": 5,
"boxMachineId": "DM5",
"anaesthetist_name": "未选择,杨俊哲,周丹,刘方,罗丁,陈晓龙,杜金菊,季楠,王彩红,凌娜佳,汪宏,谈世刚,罗中兵,郭慧,廖家涛,殷国江,李坤,周翔,秦明哲,王庆利,张燕辉,姜佳佳,宋晓阳,胡晓",
"boxColor": "白,绿",