diff --git a/MasaBlazorApp3/Pages/Home.razor b/MasaBlazorApp3/Pages/Home.razor index 8522b93..675bbff 100644 --- a/MasaBlazorApp3/Pages/Home.razor +++ b/MasaBlazorApp3/Pages/Home.razor @@ -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; + } @@ -91,6 +101,12 @@ + @if (warnTime != 999999999 && warnTime !=0) + { +
+ 警告: 您长时间未操作屏幕,系统将在 @warnTime 秒后自动退出! +
+ } @@ -192,6 +208,7 @@ private readonly ILog logger = LogManager.GetLogger(typeof(Home)); @inject Microsoft.Extensions.Options.IOptions 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(); } diff --git a/MasaBlazorApp3/Pages/InitPage.razor b/MasaBlazorApp3/Pages/InitPage.razor index 47a83f8..b7d4a66 100644 --- a/MasaBlazorApp3/Pages/InitPage.razor +++ b/MasaBlazorApp3/Pages/InitPage.razor @@ -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); diff --git a/MasaBlazorApp3/Pojo/Config/SettingConfig.cs b/MasaBlazorApp3/Pojo/Config/SettingConfig.cs index 143cd6d..a4fe1ff 100644 --- a/MasaBlazorApp3/Pojo/Config/SettingConfig.cs +++ b/MasaBlazorApp3/Pojo/Config/SettingConfig.cs @@ -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; } //手术室名称 diff --git a/MasaBlazorApp3/Shared/MainLayout.razor b/MasaBlazorApp3/Shared/MainLayout.razor index 4b9aef3..ed97f24 100644 --- a/MasaBlazorApp3/Shared/MainLayout.razor +++ b/MasaBlazorApp3/Shared/MainLayout.razor @@ -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; + } @@ -77,6 +86,12 @@ + @if (warnTime != 999999999) + { +
+ 警告: 您长时间未操作屏幕,系统将在 @warnTime 秒后自动退出! +
+ }
@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(); } } @@ -215,4 +256,4 @@ { dotNetObjectReference?.Dispose(); } -} \ No newline at end of file +} \ No newline at end of file diff --git a/MasaBlazorApp3/appsettings.json b/MasaBlazorApp3/appsettings.json index 004ebdb..0ba05d5 100644 --- a/MasaBlazorApp3/appsettings.json +++ b/MasaBlazorApp3/appsettings.json @@ -16,7 +16,9 @@ "loginMode": 1, "opFirst": true, //自动退出登录时间,单位秒(0不自动退出) - "autoOutLog": 0, + "autoOutLog": 15, + //自动退出登录倒计时时间 + "warningMessage": 5, "boxMachineId": "DM5", "anaesthetist_name": "未选择,杨俊哲,周丹,刘方,罗丁,陈晓龙,杜金菊,季楠,王彩红,凌娜佳,汪宏,谈世刚,罗中兵,郭慧,廖家涛,殷国江,李坤,周翔,秦明哲,王庆利,张燕辉,姜佳佳,宋晓阳,胡晓", "boxColor": "白,绿",