diff --git a/src/BootstrapBlazor/Components/Upload/MultipleUploadBase.cs b/src/BootstrapBlazor/Components/Upload/MultipleUploadBase.cs index 2f46d3c1ed02dc5ac3930d5910f1d3c5a0e32fcc..a3d23ea367f545b13defeeb1526e00718ecafb7c 100644 --- a/src/BootstrapBlazor/Components/Upload/MultipleUploadBase.cs +++ b/src/BootstrapBlazor/Components/Upload/MultipleUploadBase.cs @@ -51,7 +51,7 @@ public abstract class MultipleUploadBase : UploadBase UploadFiles.Remove(item); if (!string.IsNullOrEmpty(item.ValidateId)) { - await JSRuntime.InvokeVoidByIdAsync(identifier: "bb.Tooltip.dispose", item.ValidateId); + await RemoveInvalidTooltip(item); } if (DefaultFileList != null) { @@ -61,6 +61,18 @@ public abstract class MultipleUploadBase : UploadBase return ret; } + /// + /// 移除验证失败 Tooltip 信息 + /// + /// + protected async ValueTask RemoveInvalidTooltip(UploadFile item) + { + if (Module != null) + { + await Module.InvokeVoidAsync($"{ModuleName}.execute", Id, item.ValidateId, "disposeTooltip"); + } + } + /// /// 是否显示进度条方法 /// diff --git a/src/BootstrapBlazor/Components/Upload/SingleUploadBase.cs b/src/BootstrapBlazor/Components/Upload/SingleUploadBase.cs index 79899b853c29cf86ade0cf96ecd3f79d4ad28fb3..cc202dabdbf621b68682f750c7b3fa27ef800556 100644 --- a/src/BootstrapBlazor/Components/Upload/SingleUploadBase.cs +++ b/src/BootstrapBlazor/Components/Upload/SingleUploadBase.cs @@ -70,7 +70,7 @@ public abstract class SingleUploadBase : MultipleUploadBase } if (!string.IsNullOrEmpty(item.ValidateId)) { - await JSRuntime.InvokeVoidByIdAsync(identifier: "bb.Tooltip.dispose", item.ValidateId); + await RemoveInvalidTooltip(item); } RemoveItem(); } diff --git a/src/BootstrapBlazor/wwwroot/modules/upload.js b/src/BootstrapBlazor/wwwroot/modules/upload.js index a391ab4f672408526875eb37f03dde8a61875fb8..bc2eac7f819b28d571ccdadbde02cd9ea4834058 100644 --- a/src/BootstrapBlazor/wwwroot/modules/upload.js +++ b/src/BootstrapBlazor/wwwroot/modules/upload.js @@ -1,5 +1,6 @@ import EventHandler from "./base/event-handler.js" import BlazorComponent from "./base/blazor-component.js" +import { getElement } from "./base/index.js"; export class Upload extends BlazorComponent { static get Default() { @@ -57,6 +58,20 @@ export class Upload extends BlazorComponent { }); } + _execute(args) { + const tooltipId = args[0] + const method = args[1] + if (method === 'disposeTooltip' && tooltipId) { + const element = getElement(`#${tooltipId}`) + if (element) { + const tooltip = bootstrap.Tooltip.getInstance(element) + if (tooltip) { + tooltip.dispose() + } + } + } + } + _dispose() { EventHandler.off(this._element, 'click', this._config.browserClass) EventHandler.off(document, 'dragleave');