mirror of
https://gitee.com/ThingsGateway/ThingsGateway.git
synced 2025-10-20 18:51:28 +08:00
10.11.80
This commit is contained in:
@@ -21,12 +21,12 @@
|
|||||||
<link rel="apple-touch-icon" href="favicon.png">
|
<link rel="apple-touch-icon" href="favicon.png">
|
||||||
<base href="/" />
|
<base href="/" />
|
||||||
<title>ThingsGateway</title>
|
<title>ThingsGateway</title>
|
||||||
<link rel="stylesheet" href=@($"_content/BootstrapBlazor.FontAwesome/css/font-awesome.min.css?v={this.GetType().Assembly.GetName().Version}") />
|
<link rel="stylesheet" href=@($"_content/BootstrapBlazor.FontAwesome/css/font-awesome.min.css") />
|
||||||
<link rel="stylesheet" href=@($"_content/BootstrapBlazor/css/bootstrap.blazor.bundle.min.css?v={this.GetType().Assembly.GetName().Version}") />
|
<link rel="stylesheet" href=@($"_content/BootstrapBlazor/css/bootstrap.blazor.bundle.min.css") />
|
||||||
<link rel="stylesheet" href=@($"_content/BootstrapBlazor/css/motronic.min.css?v={this.GetType().Assembly.GetName().Version}") />
|
<link rel="stylesheet" href=@($"_content/BootstrapBlazor/css/motronic.min.css") />
|
||||||
<link rel="stylesheet" href=@($"ThingsGateway.AdminServer.styles.css?v={this.GetType().Assembly.GetName().Version}") />
|
<link rel="stylesheet" href=@($"ThingsGateway.AdminServer.styles.css") />
|
||||||
<link rel="stylesheet" href=@($"{WebsiteConst.DefaultResourceUrl}css/site.css?v={this.GetType().Assembly.GetName().Version}") />
|
<link rel="stylesheet" href=@($"{WebsiteConst.DefaultResourceUrl}css/site.css") />
|
||||||
<link rel="stylesheet" href=@($"{WebsiteConst.DefaultResourceUrl}css/devui.css?v={this.GetType().Assembly.GetName().Version}") />
|
<link rel="stylesheet" href=@($"{WebsiteConst.DefaultResourceUrl}css/devui.css") />
|
||||||
|
|
||||||
@* <script src=@($"{WebsiteConst.DefaultResourceUrl}js/theme.js") type="module"></script><!-- 初始主题 --> *@
|
@* <script src=@($"{WebsiteConst.DefaultResourceUrl}js/theme.js") type="module"></script><!-- 初始主题 --> *@
|
||||||
<!-- PWA Manifest -->
|
<!-- PWA Manifest -->
|
||||||
@@ -40,8 +40,8 @@
|
|||||||
|
|
||||||
<BlazorReconnector @rendermode="new InteractiveServerRenderMode(false)" />
|
<BlazorReconnector @rendermode="new InteractiveServerRenderMode(false)" />
|
||||||
|
|
||||||
<script src=@($"_content/BootstrapBlazor/js/bootstrap.blazor.bundle.min.js?v={this.GetType().Assembly.GetName().Version}")></script>
|
<script src=@($"_content/BootstrapBlazor/js/bootstrap.blazor.bundle.min.js")></script>
|
||||||
<script src=@($"{WebsiteConst.DefaultResourceUrl}js/localStorageUtil.js?v={this.GetType().Assembly.GetName().Version}")></script>
|
<script src=@($"{WebsiteConst.DefaultResourceUrl}js/localStorageUtil.js")></script>
|
||||||
<script src="_framework/blazor.web.js"></script>
|
<script src="_framework/blazor.web.js"></script>
|
||||||
<!-- PWA Service Worker -->
|
<!-- PWA Service Worker -->
|
||||||
<script type="text/javascript">'serviceWorker' in navigator && navigator.serviceWorker.register('./service-worker.js')</script>
|
<script type="text/javascript">'serviceWorker' in navigator && navigator.serviceWorker.register('./service-worker.js')</script>
|
||||||
|
@@ -70,7 +70,7 @@
|
|||||||
<Button @onclick="ShowAbout" class="layout-header-bar d-none d-lg-flex px-2" Icon="fa fa-info" Color="Color.None" TooltipText="@Localizer[nameof(About)]" />
|
<Button @onclick="ShowAbout" class="layout-header-bar d-none d-lg-flex px-2" Icon="fa fa-info" Color="Color.None" TooltipText="@Localizer[nameof(About)]" />
|
||||||
}
|
}
|
||||||
@* 版本号 *@
|
@* 版本号 *@
|
||||||
<div class="px-1 navbar-header-text d-none d-lg-block">@_versionString</div>
|
<div class="px-1 navbar-header-text text-nowrap d-none d-lg-block">@_versionString</div>
|
||||||
|
|
||||||
@* 主题切换 *@
|
@* 主题切换 *@
|
||||||
@* <ThemeToggle /> *@
|
@* <ThemeToggle /> *@
|
||||||
|
@@ -14,7 +14,7 @@
|
|||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="BootstrapBlazor.TableExport" Version="9.2.6" />
|
<PackageReference Include="BootstrapBlazor.TableExport" Version="9.2.6" />
|
||||||
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
|
<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
|
||||||
<PackageReference Include="BootstrapBlazor" Version="9.10.3" />
|
<PackageReference Include="BootstrapBlazor" Version="9.11.0" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@@ -204,7 +204,7 @@ internal sealed partial class SchedulerFactory : ISchedulerFactory
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_logger.LogWarning("Schedule hosted service preload completed, and a total of <{Count}> schedulers are appended.", _schedulers.Count);
|
_logger.LogInformation("Schedule hosted service preload completed, and a total of <{Count}> schedulers are appended.", _schedulers.Count);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -1,9 +1,9 @@
|
|||||||
<Project>
|
<Project>
|
||||||
|
|
||||||
<PropertyGroup>
|
<PropertyGroup>
|
||||||
<PluginVersion>10.11.78</PluginVersion>
|
<PluginVersion>10.11.80</PluginVersion>
|
||||||
<ProPluginVersion>10.11.78</ProPluginVersion>
|
<ProPluginVersion>10.11.80</ProPluginVersion>
|
||||||
<DefaultVersion>10.11.78</DefaultVersion>
|
<DefaultVersion>10.11.80</DefaultVersion>
|
||||||
<AuthenticationVersion>10.11.6</AuthenticationVersion>
|
<AuthenticationVersion>10.11.6</AuthenticationVersion>
|
||||||
<SourceGeneratorVersion>10.11.6</SourceGeneratorVersion>
|
<SourceGeneratorVersion>10.11.6</SourceGeneratorVersion>
|
||||||
<NET8Version>8.0.20</NET8Version>
|
<NET8Version>8.0.20</NET8Version>
|
||||||
@@ -12,7 +12,7 @@
|
|||||||
<IsTrimmable>false</IsTrimmable>
|
<IsTrimmable>false</IsTrimmable>
|
||||||
<ManagementProPluginVersion>10.11.70</ManagementProPluginVersion>
|
<ManagementProPluginVersion>10.11.70</ManagementProPluginVersion>
|
||||||
<ManagementPluginVersion>10.11.70</ManagementPluginVersion>
|
<ManagementPluginVersion>10.11.70</ManagementPluginVersion>
|
||||||
<TSVersion>4.0.0-beta.70</TSVersion>
|
<TSVersion>4.0.0-beta.80</TSVersion>
|
||||||
|
|
||||||
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
@@ -99,16 +99,16 @@ public static class ChannelOptionsExtensions
|
|||||||
if (channelOptions.MaxClientCount > 0)
|
if (channelOptions.MaxClientCount > 0)
|
||||||
config.SetMaxCount(channelOptions.MaxClientCount);
|
config.SetMaxCount(channelOptions.MaxClientCount);
|
||||||
|
|
||||||
config.SetTransportOption(new TouchSocket.Sockets.TransportOption()
|
config.SetTransportOption(a =>
|
||||||
{
|
{
|
||||||
SendPipeOptions = new System.IO.Pipelines.PipeOptions(
|
a.SendPipeOptions = new System.IO.Pipelines.PipeOptions(
|
||||||
minimumSegmentSize: 1024,
|
|
||||||
useSynchronizationContext: false),
|
|
||||||
ReceivePipeOptions = new System.IO.Pipelines.PipeOptions(
|
|
||||||
minimumSegmentSize: 1024,
|
minimumSegmentSize: 1024,
|
||||||
|
useSynchronizationContext: false);
|
||||||
|
a.ReceivePipeOptions = new System.IO.Pipelines.PipeOptions(
|
||||||
pauseWriterThreshold: 1024 * 1024,
|
pauseWriterThreshold: 1024 * 1024,
|
||||||
resumeWriterThreshold: 1024 * 512,
|
resumeWriterThreshold: 1024 * 512,
|
||||||
useSynchronizationContext: false)
|
minimumSegmentSize: 1024,
|
||||||
|
useSynchronizationContext: false);
|
||||||
});
|
});
|
||||||
|
|
||||||
switch (channelType)
|
switch (channelType)
|
||||||
|
@@ -378,7 +378,7 @@ public abstract class DriverBase : AsyncDisposableObject, IDriver
|
|||||||
// 记录设备线程已停止的信息
|
// 记录设备线程已停止的信息
|
||||||
LogMessage?.LogInformation(string.Format(AppResource.DeviceTaskStop, DeviceName));
|
LogMessage?.LogInformation(string.Format(AppResource.DeviceTaskStop, DeviceName));
|
||||||
|
|
||||||
await Task.Delay(1000).ConfigureAwait(false);
|
await Task.Delay(50).ConfigureAwait(false);
|
||||||
|
|
||||||
// 执行资源释放操作
|
// 执行资源释放操作
|
||||||
await this.SafeDisposeAsync().ConfigureAwait(false);
|
await this.SafeDisposeAsync().ConfigureAwait(false);
|
||||||
|
@@ -176,8 +176,8 @@ public class ChannelRuntimeService : IChannelRuntimeService
|
|||||||
if (restart)
|
if (restart)
|
||||||
{
|
{
|
||||||
await GlobalData.ChannelThreadManage.RestartChannelAsync(newChannelRuntimes).ConfigureAwait(false);
|
await GlobalData.ChannelThreadManage.RestartChannelAsync(newChannelRuntimes).ConfigureAwait(false);
|
||||||
|
|
||||||
await RuntimeServiceHelper.ChangedDriverAsync(GlobalData.GetAllVariableBusinessDeviceRuntime().Where(a=> !newDeviceRuntimes.Contains(a)).ToArray(),_logger).ConfigureAwait(false);
|
await RuntimeServiceHelper.ChangedDriverAsync(GlobalData.GetAllVariableBusinessDeviceRuntime().Where(a => !newDeviceRuntimes.Contains(a)).ToArray(), _logger).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -209,7 +209,7 @@ public class ChannelRuntimeService : IChannelRuntimeService
|
|||||||
{
|
{
|
||||||
await GlobalData.ChannelThreadManage.RestartChannelAsync(newChannelRuntimes).ConfigureAwait(false);
|
await GlobalData.ChannelThreadManage.RestartChannelAsync(newChannelRuntimes).ConfigureAwait(false);
|
||||||
|
|
||||||
await RuntimeServiceHelper.ChangedDriverAsync(GlobalData.GetAllVariableBusinessDeviceRuntime().Where(a => !newDeviceRuntimes.Contains(a)).ToArray(),_logger).ConfigureAwait(false);
|
await RuntimeServiceHelper.ChangedDriverAsync(GlobalData.GetAllVariableBusinessDeviceRuntime().Where(a => !newDeviceRuntimes.Contains(a)).ToArray(), _logger).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
@@ -241,7 +241,7 @@ public class ChannelRuntimeService : IChannelRuntimeService
|
|||||||
{
|
{
|
||||||
await GlobalData.ChannelThreadManage.RestartChannelAsync(newChannelRuntimes).ConfigureAwait(false);
|
await GlobalData.ChannelThreadManage.RestartChannelAsync(newChannelRuntimes).ConfigureAwait(false);
|
||||||
|
|
||||||
await RuntimeServiceHelper.ChangedDriverAsync(GlobalData.GetAllVariableBusinessDeviceRuntime().Where(a => !newDeviceRuntimes.Contains(a)).ToArray(),_logger).ConfigureAwait(false);
|
await RuntimeServiceHelper.ChangedDriverAsync(GlobalData.GetAllVariableBusinessDeviceRuntime().Where(a => !newDeviceRuntimes.Contains(a)).ToArray(), _logger).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@@ -205,7 +205,7 @@ public class DeviceRuntimeService : IDeviceRuntimeService
|
|||||||
if (restart)
|
if (restart)
|
||||||
{
|
{
|
||||||
await RuntimeServiceHelper.RestartDeviceAsync(newDeviceRuntimes).ConfigureAwait(false);
|
await RuntimeServiceHelper.RestartDeviceAsync(newDeviceRuntimes).ConfigureAwait(false);
|
||||||
await RuntimeServiceHelper.ChangedDriverAsync(GlobalData.GetAllVariableBusinessDeviceRuntime().Where(a => !newDeviceRuntimes.Contains(a)).ToArray(),_logger).ConfigureAwait(false);
|
await RuntimeServiceHelper.ChangedDriverAsync(GlobalData.GetAllVariableBusinessDeviceRuntime().Where(a => !newDeviceRuntimes.Contains(a)).ToArray(), _logger).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@@ -820,6 +820,7 @@ internal sealed class DeviceThreadManage : IAsyncDisposable, IDeviceThreadManage
|
|||||||
|
|
||||||
LogMessage?.LogInformation(string.Format(AppResource.ChannelDispose, CurrentChannel?.Name ?? string.Empty));
|
LogMessage?.LogInformation(string.Format(AppResource.ChannelDispose, CurrentChannel?.Name ?? string.Empty));
|
||||||
|
|
||||||
|
await Task.Delay(50).ConfigureAwait(false);
|
||||||
LogMessage?.Logs?.ForEach(a => a.TryDispose());
|
LogMessage?.Logs?.ForEach(a => a.TryDispose());
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
|
@@ -239,7 +239,7 @@ internal static class RuntimeServiceHelper
|
|||||||
if (group.Key != null)
|
if (group.Key != null)
|
||||||
await group.Key.RestartDeviceAsync(group.Value, false).ConfigureAwait(false);
|
await group.Key.RestartDeviceAsync(group.Value, false).ConfigureAwait(false);
|
||||||
}
|
}
|
||||||
foreach (var group in GlobalData.GetAllVariableBusinessDeviceRuntime().Where(a=>!newDeviceRuntimes.Contains(a)).Where(a => a.Driver?.DeviceThreadManage != null).GroupBy(a => a.Driver.DeviceThreadManage))
|
foreach (var group in GlobalData.GetAllVariableBusinessDeviceRuntime().Where(a => !newDeviceRuntimes.Contains(a)).Where(a => a.Driver?.DeviceThreadManage != null).GroupBy(a => a.Driver.DeviceThreadManage))
|
||||||
{
|
{
|
||||||
if (group.Key != null)
|
if (group.Key != null)
|
||||||
await group.Key.RestartDeviceAsync(group.ToArray(), false).ConfigureAwait(false);
|
await group.Key.RestartDeviceAsync(group.ToArray(), false).ConfigureAwait(false);
|
||||||
@@ -268,9 +268,9 @@ internal static class RuntimeServiceHelper
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public static async Task ChangedDriverAsync(DeviceRuntime[] channelDevice, ILogger logger)
|
public static async Task ChangedDriverAsync(DeviceRuntime[] channelDevice, ILogger logger)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
await channelDevice.ParallelForEachAsync(async (item, token) =>
|
await channelDevice.ParallelForEachAsync(async (item, token) =>
|
||||||
{
|
{
|
||||||
|
@@ -13,6 +13,7 @@ using Microsoft.AspNetCore.Components.Web;
|
|||||||
|
|
||||||
using ThingsGateway.Admin.Application;
|
using ThingsGateway.Admin.Application;
|
||||||
using ThingsGateway.Admin.Razor;
|
using ThingsGateway.Admin.Razor;
|
||||||
|
using ThingsGateway.NewLife;
|
||||||
using ThingsGateway.NewLife.Extension;
|
using ThingsGateway.NewLife.Extension;
|
||||||
using ThingsGateway.NewLife.Json.Extension;
|
using ThingsGateway.NewLife.Json.Extension;
|
||||||
using ThingsGateway.SqlSugar;
|
using ThingsGateway.SqlSugar;
|
||||||
@@ -1319,17 +1320,26 @@ EventCallback.Factory.Create<MouseEventArgs>(this, async e =>
|
|||||||
private TreeViewItem<ChannelDeviceTreeItem> UnknownTreeViewItem;
|
private TreeViewItem<ChannelDeviceTreeItem> UnknownTreeViewItem;
|
||||||
|
|
||||||
SmartTriggerScheduler? scheduler;
|
SmartTriggerScheduler? scheduler;
|
||||||
|
private bool _initialized;
|
||||||
public override async Task SetParametersAsync(ParameterView parameters)
|
public override async Task SetParametersAsync(ParameterView parameters)
|
||||||
{
|
{
|
||||||
|
|
||||||
parameters.SetParameterProperties(this);
|
parameters.SetParameterProperties(this);
|
||||||
OnInitialized();
|
if (!_initialized)
|
||||||
await OnInitializedAsync();
|
{
|
||||||
OnParametersSet();
|
_initialized = true;
|
||||||
StateHasChanged();
|
|
||||||
await OnParametersSetAsync();
|
|
||||||
|
|
||||||
|
OnInitialized();
|
||||||
|
await OnInitializedAsync();
|
||||||
|
OnParametersSet();
|
||||||
|
StateHasChanged();
|
||||||
|
await OnParametersSetAsync();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
OnParametersSet();
|
||||||
|
StateHasChanged();
|
||||||
|
await OnParametersSetAsync();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
protected override async Task OnInitializedAsync()
|
||||||
@@ -1402,19 +1412,29 @@ EventCallback.Factory.Create<MouseEventArgs>(this, async e =>
|
|||||||
|
|
||||||
await base.OnInitializedAsync();
|
await base.OnInitializedAsync();
|
||||||
}
|
}
|
||||||
|
WaitLock WaitLock = new(nameof(ChannelDeviceTree));
|
||||||
private async Task Notify(CancellationToken cancellationToken)
|
private async Task Notify(CancellationToken cancellationToken)
|
||||||
{
|
{
|
||||||
if (cancellationToken.IsCancellationRequested) return;
|
if (cancellationToken.IsCancellationRequested) return;
|
||||||
if (Disposed) return;
|
if (Disposed) return;
|
||||||
await OnClickSearch(SearchText);
|
try
|
||||||
|
|
||||||
Value = GetValue(Value);
|
|
||||||
if (ChannelDeviceChanged != null)
|
|
||||||
{
|
{
|
||||||
await ChannelDeviceChanged.Invoke(Value);
|
await WaitLock.WaitAsync(cancellationToken);
|
||||||
|
|
||||||
|
await OnClickSearch(SearchText);
|
||||||
|
|
||||||
|
Value = GetValue(Value);
|
||||||
|
if (ChannelDeviceChanged != null)
|
||||||
|
{
|
||||||
|
await ChannelDeviceChanged.Invoke(Value);
|
||||||
|
}
|
||||||
|
await InvokeAsync(StateHasChanged);
|
||||||
|
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
WaitLock.Release();
|
||||||
}
|
}
|
||||||
await InvokeAsync(StateHasChanged);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static ChannelDeviceTreeItem GetValue(ChannelDeviceTreeItem channelDeviceTreeItem)
|
private static ChannelDeviceTreeItem GetValue(ChannelDeviceTreeItem channelDeviceTreeItem)
|
||||||
|
@@ -120,6 +120,7 @@ public partial class DeviceEditComponent
|
|||||||
|
|
||||||
private string ChannelName;
|
private string ChannelName;
|
||||||
private string DeviceName;
|
private string DeviceName;
|
||||||
|
private bool _initialized;
|
||||||
public override async Task SetParametersAsync(ParameterView parameters)
|
public override async Task SetParametersAsync(ParameterView parameters)
|
||||||
{
|
{
|
||||||
if (ChannelName.IsNullOrEmpty())
|
if (ChannelName.IsNullOrEmpty())
|
||||||
@@ -127,11 +128,22 @@ public partial class DeviceEditComponent
|
|||||||
parameters.SetParameterProperties(this);
|
parameters.SetParameterProperties(this);
|
||||||
ChannelName = await ChannelPageService.GetChannelNameAsync(Model?.ChannelId ?? 0);
|
ChannelName = await ChannelPageService.GetChannelNameAsync(Model?.ChannelId ?? 0);
|
||||||
DeviceName = await DevicePageService.GetDeviceNameAsync(Model?.RedundantDeviceId ?? 0);
|
DeviceName = await DevicePageService.GetDeviceNameAsync(Model?.RedundantDeviceId ?? 0);
|
||||||
OnInitialized();
|
if (!_initialized)
|
||||||
await OnInitializedAsync();
|
{
|
||||||
OnParametersSet();
|
_initialized = true;
|
||||||
StateHasChanged();
|
|
||||||
await OnParametersSetAsync();
|
OnInitialized();
|
||||||
|
await OnInitializedAsync();
|
||||||
|
OnParametersSet();
|
||||||
|
StateHasChanged();
|
||||||
|
await OnParametersSetAsync();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
OnParametersSet();
|
||||||
|
StateHasChanged();
|
||||||
|
await OnParametersSetAsync();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@@ -49,6 +49,11 @@ public partial class VariableEditComponent
|
|||||||
private string DeviceName;
|
private string DeviceName;
|
||||||
private string ChoiceBusinessDeviceName;
|
private string ChoiceBusinessDeviceName;
|
||||||
private bool first = false;
|
private bool first = false;
|
||||||
|
|
||||||
|
|
||||||
|
private bool _initialized;
|
||||||
|
|
||||||
|
|
||||||
public override async Task SetParametersAsync(ParameterView parameters)
|
public override async Task SetParametersAsync(ParameterView parameters)
|
||||||
{
|
{
|
||||||
if (DeviceName.IsNullOrEmpty() && first == false)
|
if (DeviceName.IsNullOrEmpty() && first == false)
|
||||||
@@ -56,14 +61,31 @@ public partial class VariableEditComponent
|
|||||||
first = true;
|
first = true;
|
||||||
parameters.SetParameterProperties(this);
|
parameters.SetParameterProperties(this);
|
||||||
DeviceName = await DevicePageService.GetDeviceNameAsync(Model?.DeviceId ?? 0);
|
DeviceName = await DevicePageService.GetDeviceNameAsync(Model?.DeviceId ?? 0);
|
||||||
OnInitialized();
|
if (!_initialized)
|
||||||
await OnInitializedAsync();
|
{
|
||||||
OnParametersSet();
|
_initialized = true;
|
||||||
|
|
||||||
ChoiceBusinessDeviceId = ChoiceBusinessDeviceId > 0 ? ChoiceBusinessDeviceId : (await DevicePageService.OnDeviceSelectedItemQueryAsync(new VirtualizeQueryOption() { Count = 1 }, false).ConfigureAwait(false)).Items.FirstOrDefault()?.Value?.ToLong() ?? 0;
|
OnInitialized();
|
||||||
ChoiceBusinessDeviceName = (await DevicePageService.GetDeviceNameAsync(ChoiceBusinessDeviceId)) ?? string.Empty;
|
await OnInitializedAsync();
|
||||||
|
OnParametersSet();
|
||||||
|
|
||||||
|
ChoiceBusinessDeviceId = ChoiceBusinessDeviceId > 0 ? ChoiceBusinessDeviceId : (await DevicePageService.OnDeviceSelectedItemQueryAsync(new VirtualizeQueryOption() { Count = 1 }, false).ConfigureAwait(false)).Items.FirstOrDefault()?.Value?.ToLong() ?? 0;
|
||||||
|
ChoiceBusinessDeviceName = (await DevicePageService.GetDeviceNameAsync(ChoiceBusinessDeviceId)) ?? string.Empty;
|
||||||
|
|
||||||
|
await InvokeAsync(StateHasChanged);
|
||||||
|
await OnParametersSetAsync();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
OnParametersSet();
|
||||||
|
|
||||||
|
ChoiceBusinessDeviceId = ChoiceBusinessDeviceId > 0 ? ChoiceBusinessDeviceId : (await DevicePageService.OnDeviceSelectedItemQueryAsync(new VirtualizeQueryOption() { Count = 1 }, false).ConfigureAwait(false)).Items.FirstOrDefault()?.Value?.ToLong() ?? 0;
|
||||||
|
ChoiceBusinessDeviceName = (await DevicePageService.GetDeviceNameAsync(ChoiceBusinessDeviceId)) ?? string.Empty;
|
||||||
|
await InvokeAsync(StateHasChanged);
|
||||||
|
|
||||||
|
await OnParametersSetAsync();
|
||||||
|
}
|
||||||
|
|
||||||
await InvokeAsync(StateHasChanged);
|
|
||||||
|
|
||||||
await OnParametersSetAsync();
|
await OnParametersSetAsync();
|
||||||
|
|
||||||
|
@@ -36,7 +36,7 @@
|
|||||||
<Button OnClick="ShowAbout" class="layout-header-bar d-none d-lg-flex px-2" Icon="fa fa-info" Color="Color.None" TooltipText="@Localizer[nameof(About)]" />
|
<Button OnClick="ShowAbout" class="layout-header-bar d-none d-lg-flex px-2" Icon="fa fa-info" Color="Color.None" TooltipText="@Localizer[nameof(About)]" />
|
||||||
}
|
}
|
||||||
@* 版本号 *@
|
@* 版本号 *@
|
||||||
<div class="px-1 navbar-header-text d-none d-lg-block">@_versionString</div>
|
<div class="px-1 navbar-header-text text-nowrap d-none d-lg-block">@_versionString</div>
|
||||||
|
|
||||||
@* 主题切换 *@
|
@* 主题切换 *@
|
||||||
@* <ThemeToggle /> *@
|
@* <ThemeToggle /> *@
|
||||||
|
@@ -8,8 +8,6 @@
|
|||||||
// QQ群:605534569
|
// QQ群:605534569
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
using BenchmarkConsoleApp;
|
|
||||||
|
|
||||||
using BenchmarkDotNet.Attributes;
|
using BenchmarkDotNet.Attributes;
|
||||||
using BenchmarkDotNet.Diagnosers;
|
using BenchmarkDotNet.Diagnosers;
|
||||||
using BenchmarkDotNet.Jobs;
|
using BenchmarkDotNet.Jobs;
|
||||||
|
@@ -8,8 +8,6 @@
|
|||||||
// QQ群:605534569
|
// QQ群:605534569
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
using BenchmarkConsoleApp;
|
|
||||||
|
|
||||||
using BenchmarkDotNet.Attributes;
|
using BenchmarkDotNet.Attributes;
|
||||||
using BenchmarkDotNet.Diagnosers;
|
using BenchmarkDotNet.Diagnosers;
|
||||||
using BenchmarkDotNet.Jobs;
|
using BenchmarkDotNet.Jobs;
|
||||||
|
@@ -93,6 +93,8 @@ public partial class SqlHistoryAlarm : BusinessBaseWithCacheAlarm
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if (_driverPropertys.VariableAlarmEnable == false) return;
|
||||||
|
|
||||||
using var db = BusinessDatabaseUtil.GetDb((DbType)_driverPropertys.DbType, _driverPropertys.BigTextConnectStr);
|
using var db = BusinessDatabaseUtil.GetDb((DbType)_driverPropertys.DbType, _driverPropertys.BigTextConnectStr);
|
||||||
if (!_driverPropertys.BigTextScriptHistoryTable.IsNullOrEmpty())
|
if (!_driverPropertys.BigTextScriptHistoryTable.IsNullOrEmpty())
|
||||||
{
|
{
|
||||||
|
@@ -21,12 +21,12 @@
|
|||||||
<base href="/" />
|
<base href="/" />
|
||||||
<title>ThingsGateway</title>
|
<title>ThingsGateway</title>
|
||||||
|
|
||||||
<link rel="stylesheet" href=@($"_content/BootstrapBlazor.FontAwesome/css/font-awesome.min.css?v={this.GetType().Assembly.GetName().Version}") />
|
<link rel="stylesheet" href=@($"_content/BootstrapBlazor.FontAwesome/css/font-awesome.min.css") />
|
||||||
<link rel="stylesheet" href=@($"_content/BootstrapBlazor/css/bootstrap.blazor.bundle.min.css?v={this.GetType().Assembly.GetName().Version}") />
|
<link rel="stylesheet" href=@($"_content/BootstrapBlazor/css/bootstrap.blazor.bundle.min.css") />
|
||||||
<link rel="stylesheet" href=@($"_content/BootstrapBlazor/css/motronic.min.css?v={this.GetType().Assembly.GetName().Version}") />
|
<link rel="stylesheet" href=@($"_content/BootstrapBlazor/css/motronic.min.css") />
|
||||||
<link rel="stylesheet" href=@($"ThingsGateway.Server.styles.css?v={this.GetType().Assembly.GetName().Version}") />
|
<link rel="stylesheet" href=@($"ThingsGateway.Server.styles.css") />
|
||||||
<link rel="stylesheet" href=@($"{WebsiteConst.DefaultResourceUrl}css/site.css?v={this.GetType().Assembly.GetName().Version}") />
|
<link rel="stylesheet" href=@($"{WebsiteConst.DefaultResourceUrl}css/site.css") />
|
||||||
<link rel="stylesheet" href=@($"{WebsiteConst.DefaultResourceUrl}css/devui.css?v={this.GetType().Assembly.GetName().Version}") />
|
<link rel="stylesheet" href=@($"{WebsiteConst.DefaultResourceUrl}css/devui.css") />
|
||||||
|
|
||||||
@* <script src=@($"{WebsiteConst.DefaultResourceUrl}js/theme.js") type="module"></script><!-- 初始主题 --> *@
|
@* <script src=@($"{WebsiteConst.DefaultResourceUrl}js/theme.js") type="module"></script><!-- 初始主题 --> *@
|
||||||
<!-- PWA Manifest -->
|
<!-- PWA Manifest -->
|
||||||
|
@@ -69,7 +69,7 @@
|
|||||||
<Button @onclick="ShowAbout" class="layout-header-bar d-none d-lg-flex px-2" Icon="fa fa-info" Color="Color.None" TooltipText="@Localizer[nameof(About)]" />
|
<Button @onclick="ShowAbout" class="layout-header-bar d-none d-lg-flex px-2" Icon="fa fa-info" Color="Color.None" TooltipText="@Localizer[nameof(About)]" />
|
||||||
}
|
}
|
||||||
@* 版本号 *@
|
@* 版本号 *@
|
||||||
<div class="px-1 navbar-header-text d-none d-lg-block">@_versionString</div>
|
<div class="px-1 navbar-header-text text-nowrap text-nowrap d-none d-lg-block">@_versionString</div>
|
||||||
|
|
||||||
@* 主题切换 *@
|
@* 主题切换 *@
|
||||||
@* <ThemeToggle /> *@
|
@* <ThemeToggle /> *@
|
||||||
|
Reference in New Issue
Block a user