Skip to content

Commit 37a2168

Browse files
committed
refactor: 调整已上传列表逻辑
1 parent 0aaa130 commit 37a2168

File tree

4 files changed

+31
-32
lines changed

4 files changed

+31
-32
lines changed

src/BootstrapBlazor/Components/Upload/AvatarUpload.razor.cs

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -148,18 +148,6 @@ protected override void OnParametersSet()
148148
};
149149
}
150150

151-
private bool CheckCanUpload()
152-
{
153-
// 允许多上传
154-
if (IsMultiple)
155-
{
156-
return !MaxFileCount.HasValue || Files.Count < MaxFileCount;
157-
}
158-
159-
// 只允许单个上传
160-
return Files.Count == 0;
161-
}
162-
163151
/// <summary>
164152
/// 获得 数据验证客户端 ID
165153
/// </summary>

src/BootstrapBlazor/Components/Upload/CardUpload.razor.cs

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ public partial class CardUpload<TValue>
1919
.AddClass("is-invalid", item.Code != 0)
2020
.Build();
2121
private string? ItemClassString => CssBuilder.Default("upload-item")
22-
.AddClass("disabled", IsDisabled)
22+
.AddClass("disabled", CheckCanUpload() == false)
2323
.Build();
2424

2525
private string? BodyClassString => CssBuilder.Default("upload-body is-card")
@@ -252,18 +252,6 @@ protected override void OnParametersSet()
252252
FileIconFile ??= IconTheme.GetIconByKey(ComponentIcons.FileIconFile);
253253
}
254254

255-
private bool CheckCanUpload()
256-
{
257-
// 允许多上传
258-
if (IsMultiple)
259-
{
260-
return !MaxFileCount.HasValue || Files.Count < MaxFileCount;
261-
}
262-
263-
// 只允许单个上传
264-
return Files.Count == 0;
265-
}
266-
267255
private async Task OnCardFileDelete(UploadFile item)
268256
{
269257
await OnFileDelete(item);

src/BootstrapBlazor/Components/Upload/DropUpload.razor.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -204,16 +204,16 @@ public partial class DropUpload
204204
private IStringLocalizer<UploadBase<string>>? Localizer { get; set; }
205205

206206
private string? ClassString => CssBuilder.Default("upload is-drop")
207-
.AddClass("disabled", IsDisabled)
207+
.AddClass("disabled", CheckCanUpload() == false)
208208
.AddClassFromAttributes(AdditionalAttributes)
209209
.Build();
210210

211211
private string? BodyClassString => CssBuilder.Default("upload-drop-body")
212-
.AddClass("btn-browser", !IsDisabled)
212+
.AddClass("btn-browser", CheckCanUpload())
213213
.Build();
214214

215215
private string? TextClassString => CssBuilder.Default("upload-drop-text")
216-
.AddClass("text-muted", IsDisabled)
216+
.AddClass("text-muted", CheckCanUpload() == false)
217217
.Build();
218218

219219
/// <summary>

src/BootstrapBlazor/Components/Upload/UploadBase.cs

Lines changed: 27 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ protected async Task OnFileChange(InputFileChangeEventArgs args)
151151

152152
foreach (var item in items)
153153
{
154+
_filesCache = null;
154155
UploadFiles.Add(item);
155156

156157
// trigger OnChange event callback
@@ -209,6 +210,7 @@ protected virtual async Task<bool> OnFileDelete(UploadFile item)
209210
}
210211
UploadFiles.Remove(item);
211212
DefaultFileList?.Remove(item);
213+
_filesCache = null;
212214
}
213215
StateHasChanged();
214216
return ret;
@@ -235,8 +237,8 @@ protected void Update(UploadFile file)
235237

236238
private List<UploadFile>? _filesCache;
237239
/// <summary>
238-
/// Get the files collection.
239240
/// 获得当前文件集合
241+
/// <para>Get the files collection.</para>
240242
/// </summary>
241243
/// <returns></returns>
242244
protected List<UploadFile> GetUploadFiles()
@@ -253,8 +255,31 @@ protected List<UploadFile> GetUploadFiles()
253255
return _filesCache;
254256
}
255257

258+
/// <summary>
259+
/// 检查是否可以继续上传文件
260+
/// <para>Check whether can upload file.</para>
261+
/// </summary>
262+
/// <returns></returns>
263+
protected bool CheckCanUpload()
264+
{
265+
if(IsDisabled)
266+
{
267+
return false;
268+
}
269+
270+
// 允许多上传
271+
if (IsMultiple)
272+
{
273+
return !MaxFileCount.HasValue || Files.Count < MaxFileCount;
274+
}
275+
276+
// 只允许单个上传
277+
return Files.Count == 0;
278+
}
279+
256280
/// <summary>
257281
/// 清空上传列表方法
282+
/// <para>Clear the upload files collection.</para>
258283
/// </summary>
259284
public virtual void Reset()
260285
{
@@ -274,9 +299,7 @@ public override void ToggleMessage(IEnumerable<ValidationResult> results)
274299
var messages = results.Where(item => item.MemberNames.Any(m => m == FieldIdentifier.Value.FieldName)).ToList();
275300
if (messages.Count == 0)
276301
{
277-
messages = results.Where(item => item.MemberNames.Any(m =>
278-
UploadFiles.Any(f => f.ValidateId?.Equals(m, StringComparison.OrdinalIgnoreCase) ?? false)))
279-
.ToList();
302+
messages = [.. results.Where(item => item.MemberNames.Any(m => UploadFiles.Any(f => f.ValidateId?.Equals(m, StringComparison.OrdinalIgnoreCase) ?? false)))];
280303
}
281304
if (messages.Count > 0)
282305
{

0 commit comments

Comments
 (0)