From cced81a004d5f863e8904a5bad1037153349ddb2 Mon Sep 17 00:00:00 2001 From: Argo-Asicotech Date: Fri, 14 Oct 2022 15:32:59 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=20Upload=20=E7=BB=84?= =?UTF-8?q?=E4=BB=B6=E6=B6=88=E9=99=A4=20Tooltip=20=E6=8A=A5=E9=94=99?= =?UTF-8?q?=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Components/Upload/MultipleUploadBase.cs | 14 +++++++++++++- .../Components/Upload/SingleUploadBase.cs | 2 +- src/BootstrapBlazor/wwwroot/modules/upload.js | 15 +++++++++++++++ 3 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/BootstrapBlazor/Components/Upload/MultipleUploadBase.cs b/src/BootstrapBlazor/Components/Upload/MultipleUploadBase.cs index 2f46d3c1e..a3d23ea36 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 79899b853..cc202dabd 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 a391ab4f6..bc2eac7f8 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'); -- Gitee