using VberZero.Tools.StringModel;
namespace VberAdmin.Web.Models.Input;
public class VmInputFile : VmInputBase
{
public VmInputFile(string name, string displayName) : base(name, displayName, VmInputType.File)
{
FileInfoField = $"info_{name}";
FileNameField = $"name_{name}";
FileExtField = $"ext_{name}";
IsImage = false;
MaxSize = 5;
}
public string FileInfoField { get; set; }
public string FileNameField { get; set; }
public string FileExtField { get; set; }
public bool IsImage { get; set; }
public string ControlDataStr =>
$" data-vb-file-target-info=\"{FileInfoField}\"" +
$" data-vb-file-target-name=\"{FileNameField}\"" +
$" data-vb-file-target-ext=\"{FileExtField}\"" +
$" data-vb-file-image=\"{(IsImage ? "1" : "0")}\"" +
$" data-vb-file-max-size=\"{MaxSize}\" ";
///
/// 文件选择框设置信息
///
///
public VmInputFile WithFile(bool isImage = false)
{
IsImage = isImage;
FileInfoField = "fileInfo";
FileNameField = "fileName";
FileExtField = "fileExt";
return this;
}
///
/// 文件选择框设置信息
///
///
public VmInputFile WithFile(string fileInfoField, string fileNameField = null, string fileExtField = null, int maxSize = 5)
{
IsImage = false;
FileInfoField = fileInfoField.Empty() ? Name : fileInfoField;
FileNameField = fileNameField ?? $"name_{FileInfoField}";
FileExtField = fileExtField ?? $"ext_{FileInfoField}";
return this;
}
public VmInputFile WithImage(string fileInfoField, string fileNameField = null, string fileExtField = null, int maxSize = 5)
{
IsImage = true;
FileInfoField = fileInfoField.Empty() ? Name : fileInfoField;
FileNameField = fileNameField ?? $"name_{FileInfoField}";
FileExtField = fileExtField ?? $"ext_{FileInfoField}";
return this;
}
public VmInputFile WithMaxSize(int size)
{
MaxSize = size;
return this;
}
///
/// 文件最大M(默认5M)
///
public int MaxSize { get; set; }
}