Compare commits
	
		
			11 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					9bba9bda76 | ||
| 
						 | 
					ec2fcc75d3 | ||
| 
						 | 
					57a4038577 | ||
| 
						 | 
					b78a76e60f | ||
| 
						 | 
					28bd751d44 | ||
| 
						 | 
					dcba7b9810 | ||
| 
						 | 
					7f1a741ce6 | ||
| 
						 | 
					ca2b17d433 | ||
| 
						 | 
					af589eac10 | ||
| 
						 | 
					573670f1f5 | ||
| 
						 | 
					f3ec85a03d | 
@@ -10,10 +10,10 @@
 | 
			
		||||
 | 
			
		||||
using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using System.ComponentModel.DataAnnotations;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
[SugarTable("sys_dict", TableDescription = "字典表")]
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
 | 
			
		||||
using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,10 +10,10 @@
 | 
			
		||||
 | 
			
		||||
using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using System.ComponentModel.DataAnnotations;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
/// <summary>
 | 
			
		||||
 
 | 
			
		||||
@@ -10,10 +10,10 @@
 | 
			
		||||
 | 
			
		||||
using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using System.ComponentModel.DataAnnotations;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
/// <summary>
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
//  QQ群:605534569
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -14,10 +14,10 @@ using Microsoft.AspNetCore.Components.Routing;
 | 
			
		||||
 | 
			
		||||
using Newtonsoft.Json;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using System.ComponentModel.DataAnnotations;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
/// <summary>
 | 
			
		||||
 
 | 
			
		||||
@@ -10,10 +10,10 @@
 | 
			
		||||
 | 
			
		||||
using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using System.ComponentModel.DataAnnotations;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
/// <summary>
 | 
			
		||||
 
 | 
			
		||||
@@ -12,11 +12,11 @@ using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using Mapster;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using System.ComponentModel.DataAnnotations;
 | 
			
		||||
using System.Diagnostics.CodeAnalysis;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
/// <summary>
 | 
			
		||||
 
 | 
			
		||||
@@ -10,9 +10,8 @@
 | 
			
		||||
 | 
			
		||||
using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.List;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
//  QQ群:605534569
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,8 +8,6 @@
 | 
			
		||||
//  QQ群:605534569
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using System.Collections.Concurrent;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
 | 
			
		||||
@@ -18,6 +16,7 @@ using ThingsGateway.FriendlyException;
 | 
			
		||||
using ThingsGateway.Logging;
 | 
			
		||||
using ThingsGateway.NewLife.Json.Extension;
 | 
			
		||||
using ThingsGateway.Razor;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,10 +10,10 @@
 | 
			
		||||
 | 
			
		||||
using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using System.Data;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
internal sealed class SysOperateLogService : BaseService<SysOperateLog>, ISysOperateLogService
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
 | 
			
		||||
using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,10 +10,9 @@
 | 
			
		||||
 | 
			
		||||
using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.Extension.Generic;
 | 
			
		||||
using ThingsGateway.FriendlyException;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
 | 
			
		||||
using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,9 +10,8 @@
 | 
			
		||||
 | 
			
		||||
using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.FriendlyException;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -12,11 +12,10 @@ using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using Microsoft.Extensions.DependencyInjection;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using System.Globalization;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.FriendlyException;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
 | 
			
		||||
using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -10,10 +10,9 @@
 | 
			
		||||
 | 
			
		||||
using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.FriendlyException;
 | 
			
		||||
using ThingsGateway.NewLife.Json.Extension;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@ using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using Mapster;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -12,13 +12,12 @@ using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using Mapster;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.DataEncryption;
 | 
			
		||||
using ThingsGateway.Extension;
 | 
			
		||||
using ThingsGateway.Extension.Generic;
 | 
			
		||||
using ThingsGateway.FriendlyException;
 | 
			
		||||
using ThingsGateway.NewLife.Json.Extension;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,7 +8,7 @@
 | 
			
		||||
//  QQ群:605534569
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -67,7 +67,7 @@ public class Startup : AppStartup
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void Use(IApplicationBuilder applicationBuilder)
 | 
			
		||||
    public void Use(IServiceProvider serviceProvider)
 | 
			
		||||
    {
 | 
			
		||||
        //检查ConfigId
 | 
			
		||||
        var configIdGroup = DbContext.DbConfigs.GroupBy(it => it.ConfigId);
 | 
			
		||||
 
 | 
			
		||||
@@ -27,9 +27,9 @@
 | 
			
		||||
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
	<ItemGroup Condition=" '$(TargetFramework)' == 'net9.0' ">
 | 
			
		||||
		<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="9.0.5" />
 | 
			
		||||
		<PackageReference Include="System.Formats.Asn1" Version="9.0.5" />
 | 
			
		||||
		<PackageReference Include="System.Threading.RateLimiting" Version="9.0.5" />
 | 
			
		||||
		<PackageReference Include="Microsoft.Extensions.Hosting.Abstractions" Version="$(NET9Version)" />
 | 
			
		||||
		<PackageReference Include="System.Formats.Asn1" Version="$(NET9Version)" />
 | 
			
		||||
		<PackageReference Include="System.Threading.RateLimiting" Version="$(NET9Version)" />
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
	<ItemGroup>
 | 
			
		||||
		<Content Remove="SeedData\Admin\*.json" />
 | 
			
		||||
 
 | 
			
		||||
@@ -8,9 +8,8 @@
 | 
			
		||||
//  QQ群:605534569
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.Extension.Generic;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,10 +8,9 @@
 | 
			
		||||
//  QQ群:605534569
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.Admin.Application;
 | 
			
		||||
using ThingsGateway.NewLife.Extension;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Razor;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,9 +8,8 @@
 | 
			
		||||
//  QQ群:605534569
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.Admin.Application;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Razor;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,10 +8,9 @@
 | 
			
		||||
//  QQ群:605534569
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.Admin.Application;
 | 
			
		||||
using ThingsGateway.NewLife.Extension;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Razor;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,10 +8,9 @@
 | 
			
		||||
//  QQ群:605534569
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.Admin.Application;
 | 
			
		||||
using ThingsGateway.NewLife.Extension;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Razor;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +0,0 @@
 | 
			
		||||
@namespace ThingsGateway.Admin.Razor
 | 
			
		||||
@using ThingsGateway.Admin.Application
 | 
			
		||||
 | 
			
		||||
    <AvatarUpload @bind-Value="@Picture" DisplayText=@AdminLocalizer["Picture"] IsSingle Accept="image/*" OnChange="OnAvatarUpload" DefaultFileList=PreviewFileList></AvatarUpload>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -1,73 +0,0 @@
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
//  此代码版权声明为全文件覆盖,如有原作者特别声明,会在下方手动补充
 | 
			
		||||
//  此代码版权(除特别声明外的代码)归作者本人Diego所有
 | 
			
		||||
//  源代码使用协议遵循本仓库的开源协议及附加协议
 | 
			
		||||
//  Gitee源代码仓库:https://gitee.com/diego2098/ThingsGateway
 | 
			
		||||
//  Github源代码仓库:https://github.com/kimdiego2098/ThingsGateway
 | 
			
		||||
//  使用文档:https://thingsgateway.cn/
 | 
			
		||||
//  QQ群:605534569
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
using Microsoft.AspNetCore.Components.Forms;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Razor;
 | 
			
		||||
 | 
			
		||||
public partial class SysUserAvatarEdit : IDisposable
 | 
			
		||||
{
 | 
			
		||||
    private List<UploadFile> PreviewFileList;
 | 
			
		||||
 | 
			
		||||
    [Parameter]
 | 
			
		||||
    [NotNull]
 | 
			
		||||
    public SysUser? Model { get; set; }
 | 
			
		||||
 | 
			
		||||
    [FileValidation(Extensions = [".png", ".jpg", ".jpeg"], FileSize = 200 * 1024)]
 | 
			
		||||
    public IBrowserFile? Picture { get; set; }
 | 
			
		||||
 | 
			
		||||
    [Inject]
 | 
			
		||||
    private IStringLocalizer<ThingsGateway.Admin.Razor._Imports> AdminLocalizer { get; set; }
 | 
			
		||||
 | 
			
		||||
    private CancellationTokenSource? ReadAvatarToken { get; set; }
 | 
			
		||||
 | 
			
		||||
    [Inject]
 | 
			
		||||
    [NotNull]
 | 
			
		||||
    private ToastService ToastService { get; set; }
 | 
			
		||||
 | 
			
		||||
    public void Dispose()
 | 
			
		||||
    {
 | 
			
		||||
        ReadAvatarToken?.Cancel();
 | 
			
		||||
        GC.SuppressFinalize(this);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected override Task OnParametersSetAsync()
 | 
			
		||||
    {
 | 
			
		||||
        PreviewFileList = new(new[] { new UploadFile { PrevUrl = Model.Avatar } });
 | 
			
		||||
        return base.OnParametersSetAsync();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private async Task OnAvatarUpload(UploadFile file)
 | 
			
		||||
    {
 | 
			
		||||
        if (file?.File != null)
 | 
			
		||||
        {
 | 
			
		||||
            var format = file.File.ContentType;
 | 
			
		||||
            ReadAvatarToken ??= new CancellationTokenSource();
 | 
			
		||||
            if (ReadAvatarToken.IsCancellationRequested)
 | 
			
		||||
            {
 | 
			
		||||
                ReadAvatarToken.Dispose();
 | 
			
		||||
                ReadAvatarToken = new CancellationTokenSource();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            await file.RequestBase64ImageFileAsync(format, 640, 480, 1024 * 200, ReadAvatarToken.Token);
 | 
			
		||||
 | 
			
		||||
            if (file.Code != 0)
 | 
			
		||||
            {
 | 
			
		||||
                await ToastService.Error($"{file.Error} ");
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                Model.Avatar = file.PrevUrl;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@@ -3,7 +3,7 @@
 | 
			
		||||
<div class="row g-2 mx-1 form-inline">
 | 
			
		||||
 | 
			
		||||
    <div class="col-12  col-md-12">
 | 
			
		||||
        <SysUserAvatarEdit Model="Model"></SysUserAvatarEdit>
 | 
			
		||||
        <AvatarUpload @bind-Value="@Picture" DisplayText=@AdminLocalizer["Picture"] IsMultiple=false Accept="image/*" OnChange="OnAvatarUpload" DefaultFileList=PreviewFileList></AvatarUpload>
 | 
			
		||||
    </div>
 | 
			
		||||
 | 
			
		||||
    <div class="col-12  col-md-6">
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,8 @@
 | 
			
		||||
//  QQ群:605534569
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
using Microsoft.AspNetCore.Components.Forms;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.Admin.Application;
 | 
			
		||||
using ThingsGateway.NewLife.Extension;
 | 
			
		||||
 | 
			
		||||
@@ -45,4 +47,55 @@ public partial class SysUserEdit
 | 
			
		||||
        Model.OrgId = items.LastOrDefault()?.Parent?.Value?.ToLong() ?? 0;
 | 
			
		||||
        return Task.CompletedTask;
 | 
			
		||||
    }
 | 
			
		||||
    [Inject]
 | 
			
		||||
    ToastService ToastService { get; set; }
 | 
			
		||||
 | 
			
		||||
    #region 头像
 | 
			
		||||
 | 
			
		||||
    private List<UploadFile> PreviewFileList;
 | 
			
		||||
 | 
			
		||||
    [FileValidation(Extensions = [".png", ".jpg", ".jpeg"], FileSize = 200 * 1024)]
 | 
			
		||||
    public IBrowserFile? Picture { get; set; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    private CancellationTokenSource? ReadAvatarToken { get; set; }
 | 
			
		||||
 | 
			
		||||
    public void Dispose()
 | 
			
		||||
    {
 | 
			
		||||
        ReadAvatarToken?.Cancel();
 | 
			
		||||
        GC.SuppressFinalize(this);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected override void OnInitialized()
 | 
			
		||||
    {
 | 
			
		||||
        PreviewFileList = new(new[] { new UploadFile { PrevUrl = Model.Avatar } });
 | 
			
		||||
        base.OnInitialized();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private async Task OnAvatarUpload(UploadFile file)
 | 
			
		||||
    {
 | 
			
		||||
        if (file?.File != null)
 | 
			
		||||
        {
 | 
			
		||||
            var format = file.File.ContentType;
 | 
			
		||||
            ReadAvatarToken ??= new CancellationTokenSource();
 | 
			
		||||
            if (ReadAvatarToken.IsCancellationRequested)
 | 
			
		||||
            {
 | 
			
		||||
                ReadAvatarToken.Dispose();
 | 
			
		||||
                ReadAvatarToken = new CancellationTokenSource();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            await file.RequestBase64ImageFileAsync(format, 640, 480, 1024 * 200, token: ReadAvatarToken.Token);
 | 
			
		||||
 | 
			
		||||
            if (file.Code != 0)
 | 
			
		||||
            {
 | 
			
		||||
                await ToastService.Error($"{file.Error} ");
 | 
			
		||||
            }
 | 
			
		||||
            else
 | 
			
		||||
            {
 | 
			
		||||
                Model.Avatar = file.PrevUrl;
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    #endregion 头像
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@
 | 
			
		||||
 | 
			
		||||
<ValidateForm class="p-4" Model="@Model" OnValidSubmit="OnSave">
 | 
			
		||||
 | 
			
		||||
    <AvatarUpload @bind-Value="@Picture" DisplayText=@AdminLocalizer["Picture"] IsSingle Accept="image/*" OnChange="OnAvatarUpload" DefaultFileList=PreviewFileList></AvatarUpload>
 | 
			
		||||
    <AvatarUpload @bind-Value="@Picture" DisplayText=@AdminLocalizer["Picture"] IsMultiple=false Accept="image/*" OnChange="OnAvatarUpload" DefaultFileList=PreviewFileList></AvatarUpload>
 | 
			
		||||
 | 
			
		||||
    <BootstrapInput @bind-Value=@Model.Phone></BootstrapInput>
 | 
			
		||||
    <BootstrapInput @bind-Value=@Model.Email></BootstrapInput>
 | 
			
		||||
 
 | 
			
		||||
@@ -40,10 +40,10 @@ public partial class UserInfoEditComponent
 | 
			
		||||
        GC.SuppressFinalize(this);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected override Task OnParametersSetAsync()
 | 
			
		||||
    protected override void OnInitialized()
 | 
			
		||||
    {
 | 
			
		||||
        PreviewFileList = new(new[] { new UploadFile { PrevUrl = Model.Avatar } });
 | 
			
		||||
        return base.OnParametersSetAsync();
 | 
			
		||||
        base.OnInitialized();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private async Task OnAvatarUpload(UploadFile file)
 | 
			
		||||
@@ -58,7 +58,7 @@ public partial class UserInfoEditComponent
 | 
			
		||||
                ReadAvatarToken = new CancellationTokenSource();
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            await file.RequestBase64ImageFileAsync(format, 640, 480, 1024 * 200, ReadAvatarToken.Token);
 | 
			
		||||
            await file.RequestBase64ImageFileAsync(format, 640, 480, 1024 * 200, token: ReadAvatarToken.Token);
 | 
			
		||||
 | 
			
		||||
            if (file.Code != 0)
 | 
			
		||||
            {
 | 
			
		||||
 
 | 
			
		||||
@@ -9,10 +9,10 @@
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
 | 
			
		||||
	<ItemGroup Condition="'$(TargetFramework)'=='net8.0'">
 | 
			
		||||
		<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="8.0.16" />
 | 
			
		||||
		<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="$(NET8Version)" />
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
	<ItemGroup Condition="'$(TargetFramework)'=='net9.0'">
 | 
			
		||||
		<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="9.0.5" />
 | 
			
		||||
		<PackageReference Include="Microsoft.AspNetCore.SignalR.Client" Version="$(NET9Version)" />
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
 | 
			
		||||
	<PropertyGroup>
 | 
			
		||||
 
 | 
			
		||||
@@ -14,6 +14,7 @@
 | 
			
		||||
      "ThingsGateway.SqlSugar",
 | 
			
		||||
      "ThingsGateway.Admin.Application",
 | 
			
		||||
      "ThingsGateway.Admin.Razor",
 | 
			
		||||
      "ThingsGateway.DB",
 | 
			
		||||
      "ThingsGateway.Razor"
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
 
 | 
			
		||||
@@ -14,6 +14,7 @@
 | 
			
		||||
      "ThingsGateway.SqlSugar",
 | 
			
		||||
      "ThingsGateway.Admin.Application",
 | 
			
		||||
      "ThingsGateway.Admin.Razor",
 | 
			
		||||
      "ThingsGateway.DB",
 | 
			
		||||
      "ThingsGateway.Razor"
 | 
			
		||||
    ]
 | 
			
		||||
  },
 | 
			
		||||
 
 | 
			
		||||
@@ -1 +1 @@
 | 
			
		||||
global using ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
@@ -18,6 +18,7 @@ using Microsoft.AspNetCore.Authorization;
 | 
			
		||||
using Microsoft.AspNetCore.Components;
 | 
			
		||||
using Microsoft.Extensions.Localization;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.Admin.Application;
 | 
			
		||||
using ThingsGateway.Admin.Razor;
 | 
			
		||||
using ThingsGateway.Extension;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -13,6 +13,8 @@ using Microsoft.Extensions.Localization;
 | 
			
		||||
 | 
			
		||||
using System.Diagnostics.CodeAnalysis;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.AdminServer;
 | 
			
		||||
 | 
			
		||||
public partial class AccessDenied
 | 
			
		||||
 
 | 
			
		||||
@@ -20,6 +20,7 @@ using Microsoft.Extensions.Options;
 | 
			
		||||
 | 
			
		||||
using System.Diagnostics.CodeAnalysis;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.Admin.Application;
 | 
			
		||||
using ThingsGateway.DataEncryption;
 | 
			
		||||
using ThingsGateway.NewLife.Extension;
 | 
			
		||||
using ThingsGateway.Razor;
 | 
			
		||||
 
 | 
			
		||||
@@ -17,6 +17,7 @@ using Microsoft.Extensions.Options;
 | 
			
		||||
 | 
			
		||||
using System.Diagnostics.CodeAnalysis;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.Admin.Application;
 | 
			
		||||
using ThingsGateway.Admin.Razor;
 | 
			
		||||
using ThingsGateway.Razor;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -40,6 +40,7 @@ public class SingleFilePublish : ISingleFilePublish
 | 
			
		||||
            "ThingsGateway.NewLife.X",
 | 
			
		||||
            "ThingsGateway.Razor",
 | 
			
		||||
            "ThingsGateway.Admin.Razor"   ,
 | 
			
		||||
             "ThingsGateway.DB",
 | 
			
		||||
            "ThingsGateway.Admin.Application",
 | 
			
		||||
            "ThingsGateway.SqlSugar",
 | 
			
		||||
        ];
 | 
			
		||||
 
 | 
			
		||||
@@ -25,6 +25,7 @@ using System.Text;
 | 
			
		||||
using System.Text.Encodings.Web;
 | 
			
		||||
using System.Text.Unicode;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.Admin.Application;
 | 
			
		||||
using ThingsGateway.Admin.Razor;
 | 
			
		||||
using ThingsGateway.Extension;
 | 
			
		||||
using ThingsGateway.NewLife.Caching;
 | 
			
		||||
@@ -47,11 +48,11 @@ public class Startup : AppStartup
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        // 事件总线
 | 
			
		||||
        services.AddEventBus(options =>
 | 
			
		||||
        {
 | 
			
		||||
        //// 事件总线
 | 
			
		||||
        //services.AddEventBus(options =>
 | 
			
		||||
        //{
 | 
			
		||||
 | 
			
		||||
        });
 | 
			
		||||
        //});
 | 
			
		||||
 | 
			
		||||
        // 任务调度
 | 
			
		||||
        services.AddSchedule(options =>
 | 
			
		||||
@@ -150,8 +151,6 @@ public class Startup : AppStartup
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        services.AddHealthChecks();
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        #region 控制台美化
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -45,7 +45,7 @@
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
 | 
			
		||||
	<ItemGroup>
 | 
			
		||||
		<PackageReference Include="Microsoft.Data.Sqlite" Version="9.0.5" />
 | 
			
		||||
		<PackageReference Include="Microsoft.Data.Sqlite" Version="$(NET9Version)" />
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
	<!--安装服务守护-->
 | 
			
		||||
	<ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' ">
 | 
			
		||||
@@ -54,8 +54,8 @@
 | 
			
		||||
		<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="8.0.1" />
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
	<ItemGroup Condition=" '$(TargetFramework)' == 'net9.0' ">
 | 
			
		||||
		<PackageReference Include="Microsoft.Extensions.Hosting.Systemd" Version="9.0.5" />
 | 
			
		||||
		<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="9.0.5" />
 | 
			
		||||
		<PackageReference Include="Microsoft.Extensions.Hosting.Systemd" Version="$(NET9Version)" />
 | 
			
		||||
		<PackageReference Include="Microsoft.Extensions.Hosting.WindowsServices" Version="$(NET9Version)" />
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
	
 | 
			
		||||
	<ItemGroup>
 | 
			
		||||
 
 | 
			
		||||
@@ -10,10 +10,10 @@
 | 
			
		||||
 | 
			
		||||
using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using System.Diagnostics.CodeAnalysis;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
/// <summary>
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@
 | 
			
		||||
 | 
			
		||||
using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,11 +8,11 @@
 | 
			
		||||
//  QQ群:605534569
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using System.Linq.Expressions;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
/// <inheritdoc/>
 | 
			
		||||
 
 | 
			
		||||
@@ -9,7 +9,7 @@
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@
 | 
			
		||||
 | 
			
		||||
using Microsoft.Extensions.Hosting;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -12,7 +12,7 @@ using BootstrapBlazor.Components;
 | 
			
		||||
 | 
			
		||||
using Microsoft.Extensions.Localization;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -8,12 +8,12 @@
 | 
			
		||||
//  QQ群:605534569
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using System.Collections;
 | 
			
		||||
using System.Data;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
/// <summary>
 | 
			
		||||
@@ -66,7 +66,8 @@ public static class CodeFirstUtils
 | 
			
		||||
            {
 | 
			
		||||
                // 按主键进行批量增加和更新
 | 
			
		||||
                var storage = db.StorageableByObject(seedData.ToList()).ToStorage();
 | 
			
		||||
                if (ignoreAdd == null) storage.AsInsertable.ExecuteCommand();//执行插入
 | 
			
		||||
                if (ignoreAdd == null)
 | 
			
		||||
                    storage.AsInsertable.ExecuteCommand();//执行插入
 | 
			
		||||
                if (ignoreUpdate == null && config.IsUpdateSeedData) storage.AsUpdateable.ExecuteCommand();//只有没有忽略更新的特性才执行更新
 | 
			
		||||
            }
 | 
			
		||||
            else// 没有主键或者不是预定义的主键(有重复的可能)
 | 
			
		||||
 
 | 
			
		||||
@@ -10,10 +10,9 @@
 | 
			
		||||
 | 
			
		||||
using Microsoft.Extensions.DependencyInjection;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.Extension;
 | 
			
		||||
using ThingsGateway.NewLife.Log;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -13,12 +13,11 @@ using BootstrapBlazor.Components;
 | 
			
		||||
using Newtonsoft.Json;
 | 
			
		||||
using Newtonsoft.Json.Linq;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
using System.Text.RegularExpressions;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.NewLife;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
/// <summary>
 | 
			
		||||
 
 | 
			
		||||
@@ -8,9 +8,8 @@
 | 
			
		||||
//  QQ群:605534569
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
 | 
			
		||||
using ThingsGateway.ConfigurableOptions;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -13,7 +13,7 @@ using BootstrapBlazor.Components;
 | 
			
		||||
using Microsoft.AspNetCore.Builder;
 | 
			
		||||
using Microsoft.Extensions.DependencyInjection;
 | 
			
		||||
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
 | 
			
		||||
namespace ThingsGateway.Admin.Application;
 | 
			
		||||
 | 
			
		||||
@@ -32,11 +32,10 @@ public class Startup : AppStartup
 | 
			
		||||
 | 
			
		||||
        StaticConfig.EnableAllWhereIF = true;
 | 
			
		||||
 | 
			
		||||
        services.AddSingleton<ISugarAopService, SugarAopService>();
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public void Use(IApplicationBuilder applicationBuilder)
 | 
			
		||||
    public void Use(IServiceProvider serviceProvider)
 | 
			
		||||
    {
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -67,13 +67,13 @@ internal static class Penetrates
 | 
			
		||||
            ["patch"] = "PATCH"
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        IsApiControllerCached = new ConcurrentDictionary<Type, bool>();
 | 
			
		||||
        //IsApiControllerCached = new ConcurrentDictionary<Type, bool>();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    /// <see cref="IsApiController(Type)"/> 缓存集合
 | 
			
		||||
    /// </summary>
 | 
			
		||||
    private static readonly ConcurrentDictionary<Type, bool> IsApiControllerCached;
 | 
			
		||||
    ///// <summary>
 | 
			
		||||
    ///// <see cref="IsApiController(Type)"/> 缓存集合
 | 
			
		||||
    ///// </summary>
 | 
			
		||||
    //private static readonly ConcurrentDictionary<Type, bool> IsApiControllerCached;
 | 
			
		||||
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    /// 是否是Api控制器
 | 
			
		||||
@@ -82,8 +82,8 @@ internal static class Penetrates
 | 
			
		||||
    /// <returns></returns>
 | 
			
		||||
    internal static bool IsApiController(Type type)
 | 
			
		||||
    {
 | 
			
		||||
        return IsApiControllerCached.GetOrAdd(type, Function);
 | 
			
		||||
 | 
			
		||||
        //return IsApiControllerCached.GetOrAdd(type, Function);
 | 
			
		||||
        return Function(type);
 | 
			
		||||
        // 本地静态方法
 | 
			
		||||
        static bool Function(Type type)
 | 
			
		||||
        {
 | 
			
		||||
 
 | 
			
		||||
@@ -43,18 +43,18 @@
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
 | 
			
		||||
	<ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' ">
 | 
			
		||||
		<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.16" />
 | 
			
		||||
		<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="8.0.16" />
 | 
			
		||||
		<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="$(NET8Version)" />
 | 
			
		||||
		<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="$(NET8Version)" />
 | 
			
		||||
		<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="8.0.2" />
 | 
			
		||||
		<PackageReference Include="System.Reflection.MetadataLoadContext" Version="8.0.1" />
 | 
			
		||||
		<PackageReference Include="System.Text.Json" Version="8.0.5" />
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
	<ItemGroup Condition=" '$(TargetFramework)' == 'net9.0' ">
 | 
			
		||||
		<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="9.0.5" />
 | 
			
		||||
		<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="9.0.5" />
 | 
			
		||||
		<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="9.0.5" />
 | 
			
		||||
		<PackageReference Include="System.Reflection.MetadataLoadContext" Version="9.0.5" />
 | 
			
		||||
		<PackageReference Include="System.Text.Json" Version="9.0.5" />
 | 
			
		||||
		<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="$(NET9Version)" />
 | 
			
		||||
		<PackageReference Include="Microsoft.AspNetCore.Authentication.JwtBearer" Version="$(NET9Version)" />
 | 
			
		||||
		<PackageReference Include="Microsoft.Extensions.DependencyModel" Version="$(NET9Version)" />
 | 
			
		||||
		<PackageReference Include="System.Reflection.MetadataLoadContext" Version="$(NET9Version)" />
 | 
			
		||||
		<PackageReference Include="System.Text.Json" Version="$(NET9Version)" />
 | 
			
		||||
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -13,10 +13,10 @@
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
	<ItemGroup Condition=" '$(TargetFramework)' == 'net8.0' ">
 | 
			
		||||
		<PackageReference Include="Microsoft.AspNetCore.Components.WebView" Version="8.0.16" />
 | 
			
		||||
		<PackageReference Include="Microsoft.AspNetCore.Components.WebView" Version="$(NET8Version)" />
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
	<ItemGroup Condition=" '$(TargetFramework)' == 'net9.0' ">
 | 
			
		||||
		<PackageReference Include="Microsoft.AspNetCore.Components.WebView" Version="9.0.5" />
 | 
			
		||||
		<PackageReference Include="Microsoft.AspNetCore.Components.WebView" Version="$(NET9Version)" />
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
 | 
			
		||||
</Project>
 | 
			
		||||
 
 | 
			
		||||
@@ -59,7 +59,7 @@ public class Startup : AppStartup
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /// <inheritdoc/>
 | 
			
		||||
    public void Use(IApplicationBuilder applicationBuilder)
 | 
			
		||||
    public void Use(IServiceProvider serviceProvider)
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -7,7 +7,7 @@
 | 
			
		||||
	</PropertyGroup>
 | 
			
		||||
	<ItemGroup>
 | 
			
		||||
		<PackageReference Include="BootstrapBlazor.FontAwesome" Version="9.0.2" />
 | 
			
		||||
		<PackageReference Include="BootstrapBlazor" Version="9.7.0" />
 | 
			
		||||
		<PackageReference Include="BootstrapBlazor" Version="9.7.3" />
 | 
			
		||||
		<PackageReference Include="Yitter.IdGenerator" Version="1.0.14" />
 | 
			
		||||
	</ItemGroup>
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -26,6 +26,10 @@
 | 
			
		||||
    height: var(--line-chart-table-height);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.wb-control .wb-full {
 | 
			
		||||
    display: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.dialog-table {
 | 
			
		||||
    height: calc(100vh - 200px);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,5 @@
 | 
			
		||||
//  QQ群:605534569
 | 
			
		||||
//------------------------------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
global using SqlSugar.TDengineAdo;
 | 
			
		||||
 | 
			
		||||
global using ThingsGateway.NewLife.Extension;
 | 
			
		||||
global using ThingsGateway.NewLife.Extension;
 | 
			
		||||
global using ThingsGateway.SqlSugar.TDengineAdo;
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
using CsvHelper.Configuration;
 | 
			
		||||
using CsvHelper.TypeConversion;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public class CsvHelperEnumToIntConverter : ITypeConverter
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public class QuestDbPageSizeBulkCopy
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
using System.Data.Common;
 | 
			
		||||
using System.Text;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    internal static class QuestDbRestAPHelper
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -10,7 +10,7 @@ using System.Globalization;
 | 
			
		||||
using System.Net.Http.Headers;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Web;
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    /// QuestDb RestAPI
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public static class QuestDbSqlSugarClientExtensions
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
using System.Data;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public partial class AdoAccessory
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ using System.Data;
 | 
			
		||||
using System.Data.Common;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
using System.Text.RegularExpressions;
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    ///<summary>
 | 
			
		||||
    /// ** description:ActiveX Data Objects
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
using System.Data;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public class AopProvider
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public class SugarCacheProvider
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Text.RegularExpressions;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public partial class CodeFirstProvider : ICodeFirst
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public class SplitCodeFirstProvider
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,5 +1,5 @@
 | 
			
		||||
using System.Text;
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public class TableDifferenceProvider
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
using System.Data.Common;
 | 
			
		||||
using System.Text;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public partial class DbBindAccessory
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -2,7 +2,7 @@
 | 
			
		||||
using System.Data;
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public abstract partial class DbBindProvider : DbBindAccessory, IDbBind
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,7 @@ using System.Reflection;
 | 
			
		||||
using System.Reflection.Emit;
 | 
			
		||||
using System.Xml.Linq;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    ///<summary>
 | 
			
		||||
    /// ** description:IDataReader Entity Builder
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
using System.Data;
 | 
			
		||||
using System.Xml.Linq;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public static partial class IDataRecordExtensions
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Text.RegularExpressions;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public abstract partial class DbFirstProvider : IDbFirst
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
using System.Text;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public static class DbFirstTemplate
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
using System.Text;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public class RazorFirst
 | 
			
		||||
    {
 | 
			
		||||
@@ -11,7 +11,7 @@ namespace SqlSugar
 | 
			
		||||
@"using System;
 | 
			
		||||
using System.Linq;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using SqlSugar;
 | 
			
		||||
using ThingsGateway.SqlSugar;
 | 
			
		||||
namespace @Model.Namespace 
 | 
			
		||||
{
 | 
			
		||||
    ///<summary>
 | 
			
		||||
@@ -31,7 +31,7 @@ namespace @Model.Namespace
 | 
			
		||||
         @:/// Default:@item.DefaultValue
 | 
			
		||||
         @:/// Nullable:@item.IsNullable
 | 
			
		||||
         @:/// </summary>     
 | 
			
		||||
         @:[SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]      
 | 
			
		||||
         @:[ThingsGateway.SqlSugar.SugarColumn(IsPrimaryKey = true, IsIdentity = true)]      
 | 
			
		||||
         @:public @item.DataType @item.DbColumnName {get;set;}
 | 
			
		||||
         }
 | 
			
		||||
        else if(item.IsPrimarykey)
 | 
			
		||||
@@ -41,7 +41,7 @@ namespace @Model.Namespace
 | 
			
		||||
         @:/// Default:@item.DefaultValue
 | 
			
		||||
         @:/// Nullable:@item.IsNullable
 | 
			
		||||
         @:/// </summary>    
 | 
			
		||||
         @:[SqlSugar.SugarColumn(IsPrimaryKey = true)]       
 | 
			
		||||
         @:[ThingsGateway.SqlSugar.SugarColumn(IsPrimaryKey = true)]       
 | 
			
		||||
         @:public @item.DataType @item.DbColumnName {get;set;}
 | 
			
		||||
         } 
 | 
			
		||||
        else if(item.IsIdentity)
 | 
			
		||||
@@ -51,7 +51,7 @@ namespace @Model.Namespace
 | 
			
		||||
         @:/// Default:@item.DefaultValue
 | 
			
		||||
         @:/// Nullable:@item.IsNullable
 | 
			
		||||
         @:/// </summary>       
 | 
			
		||||
         @:[SqlSugar.SugarColumn(IsIdentity = true)]    
 | 
			
		||||
         @:[ThingsGateway.SqlSugar.SugarColumn(IsIdentity = true)]    
 | 
			
		||||
         @:public @item.DataType @item.DbColumnName {get;set;}
 | 
			
		||||
         }
 | 
			
		||||
         else
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
using System.Text.RegularExpressions;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public abstract partial class DbMaintenanceProvider : IDbMaintenance
 | 
			
		||||
    {
 | 
			
		||||
@@ -886,20 +886,20 @@ namespace SqlSugar
 | 
			
		||||
            var isMax = item.Length > 4000 || item.Length == -1;
 | 
			
		||||
            if (isMax)
 | 
			
		||||
            {
 | 
			
		||||
                dataSize = item.Length > 0 ? string.Format("({0})", "max") : null;
 | 
			
		||||
                dataSize = item?.Length > 0 ? string.Format("({0})", "max") : null;
 | 
			
		||||
            }
 | 
			
		||||
            else if (item.Length == 0 && item.DecimalDigits > 0)
 | 
			
		||||
            {
 | 
			
		||||
                item.Length = 10;
 | 
			
		||||
                dataSize = string.Format("({0},{1})", item.Length, item.DecimalDigits);
 | 
			
		||||
            }
 | 
			
		||||
            else if (item.Length > 0 && item.DecimalDigits == 0)
 | 
			
		||||
            else if (item?.Length > 0 && item.DecimalDigits == 0)
 | 
			
		||||
            {
 | 
			
		||||
                dataSize = item.Length > 0 ? string.Format("({0})", item.Length) : null;
 | 
			
		||||
                dataSize = item?.Length > 0 ? string.Format("({0})", item.Length) : null;
 | 
			
		||||
            }
 | 
			
		||||
            else if (item.Length > 0 && item.DecimalDigits > 0)
 | 
			
		||||
            else if (item?.Length > 0 && item.DecimalDigits > 0)
 | 
			
		||||
            {
 | 
			
		||||
                dataSize = item.Length > 0 ? string.Format("({0},{1})", item.Length, item.DecimalDigits) : null;
 | 
			
		||||
                dataSize = item?.Length > 0 ? string.Format("({0},{1})", item.Length, item.DecimalDigits) : null;
 | 
			
		||||
            }
 | 
			
		||||
            return dataSize;
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public abstract partial class DbMaintenanceProvider : IDbMaintenance
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public class DeleteMethodInfo
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
using System.Linq.Expressions;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public class DeleteNavMethodInfo
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public class DeleteablePage<T> where T : class, new()
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -4,7 +4,7 @@ using System.Linq.Expressions;
 | 
			
		||||
using System.Text;
 | 
			
		||||
using System.Text.RegularExpressions;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public class DeleteableProvider<T> : IDeleteable<T> where T : class, new()
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public class LogicDeleteProvider<T> where T : class, new()
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public class SplitTableDeleteByObjectProvider<T> where T : class, new()
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
using System.Text.RegularExpressions;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public class SplitTableDeleteProvider<T> where T : class, new()
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public class CommonMethodInfo
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
using System.Reflection.Emit;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public static class DynamicBuilderHelper
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    /// <summary>
 | 
			
		||||
    /// Dynamically construct Type, the property is self, with this type
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
using System.Reflection.Emit;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
 | 
			
		||||
    public class DynamicProperyBuilder
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
using System.Reflection.Emit;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    internal static class EmitTool
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
using System.Reflection.Emit;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public partial class DynamicBuilder
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,7 +1,7 @@
 | 
			
		||||
using System.Reflection;
 | 
			
		||||
using System.Reflection.Emit;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public partial class DynamicBuilder
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
@@ -1,6 +1,6 @@
 | 
			
		||||
using System.Linq.Expressions;
 | 
			
		||||
 | 
			
		||||
namespace SqlSugar
 | 
			
		||||
namespace ThingsGateway.SqlSugar
 | 
			
		||||
{
 | 
			
		||||
    public static class EntityColumnExtension
 | 
			
		||||
    {
 | 
			
		||||
 
 | 
			
		||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user