/// <summary>
    ///
    /// </summary>
    /// <param name="args"></param>
    /// <returns></returns>
    protected override async Task OnFileChange(InputFileChangeEventArgs args)
    {
        CurrentFile = new UploadFile()
        {
            OriginFileName = args.File.Name,
            Size           = args.File.Size,
            File           = args.File,
            Uploaded       = false
        };
        CurrentFile.ValidateId = $"{Id}_{CurrentFile.GetHashCode()}";

        if (IsSingle)
        {
            // 单图片模式
            DefaultFileList?.Clear();
            UploadFiles.Clear();
        }

        UploadFiles.Add(CurrentFile);

        await base.OnFileChange(args);

        // ValidateFile 后 IsValid 才有值
        CurrentFile.IsValid = IsValid;

        if (OnChange != null)
        {
            await OnChange(CurrentFile);
        }
        else
        {
            await CurrentFile.RequestBase64ImageFileAsync(CurrentFile.File.ContentType, 320, 240);
        }
    }
    /// <summary>
    /// 获得当前图片集合
    /// </summary>
    /// <returns></returns>
    protected virtual List <UploadFile> GetUploadFiles()
    {
        var ret = new List <UploadFile>();

        if (IsSingle)
        {
            if (DefaultFileList?.Any() ?? false)
            {
                ret.Add(DefaultFileList.First());
            }
            if (ret.Count == 0 && UploadFiles.Any())
            {
                ret.Add(UploadFiles.First());
            }
        }
        else
        {
            if (DefaultFileList != null)
            {
                ret.AddRange(DefaultFileList);
            }
            ret.AddRange(UploadFiles);
        }
        return(ret);
    }
Пример #3
0
    /// <summary>
    /// OnFileDelete 回调委托
    /// </summary>
    /// <param name="item"></param>
    /// <returns></returns>
    protected override async Task <bool> OnFileDelete(UploadFile item)
    {
        var ret = await base.OnFileDelete(item);

        if (ret)
        {
            UploadFiles.Remove(item);
            if (!string.IsNullOrEmpty(item.ValidateId))
            {
                await JSRuntime.InvokeVoidAsync(null, "bb_tooltip", item.ValidateId, "dispose");
            }
            if (DefaultFileList != null)
            {
                DefaultFileList.Remove(item);
            }
        }
        return(ret);
    }
Пример #4
0
 /// <summary>
 /// 清空上传列表方法
 /// </summary>
 public override void Reset()
 {
     DefaultFileList?.Clear();
     base.Reset();
 }