VmInputFile.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. using VberZero.Tools.StringModel;
  2. namespace VberAdmin.Web.Models.Input;
  3. public class VmInputFile : VmInputBase
  4. {
  5. public VmInputFile(string name, string displayName) : base(name, displayName, VmInputType.File)
  6. {
  7. FileInfoField = $"info_{name}";
  8. FileNameField = $"name_{name}";
  9. FileExtField = $"ext_{name}";
  10. IsImage = false;
  11. MaxSize = 5;
  12. }
  13. public string FileInfoField { get; set; }
  14. public string FileNameField { get; set; }
  15. public string FileExtField { get; set; }
  16. public bool IsImage { get; set; }
  17. public string ControlDataStr =>
  18. $" data-vb-file-target-info=\"{FileInfoField}\"" +
  19. $" data-vb-file-target-name=\"{FileNameField}\"" +
  20. $" data-vb-file-target-ext=\"{FileExtField}\"" +
  21. $" data-vb-file-image=\"{(IsImage ? "1" : "0")}\"" +
  22. $" data-vb-file-max-size=\"{MaxSize}\" ";
  23. /// <summary>
  24. /// 文件选择框设置信息
  25. /// </summary>
  26. /// <returns></returns>
  27. public VmInputFile WithFile(bool isImage = false)
  28. {
  29. IsImage = isImage;
  30. FileInfoField = "fileInfo";
  31. FileNameField = "fileName";
  32. FileExtField = "fileExt";
  33. return this;
  34. }
  35. /// <summary>
  36. /// 文件选择框设置信息
  37. /// </summary>
  38. /// <returns></returns>
  39. public VmInputFile WithFile(string fileInfoField, string fileNameField = null, string fileExtField = null, int maxSize = 5)
  40. {
  41. IsImage = false;
  42. FileInfoField = fileInfoField.Empty() ? Name : fileInfoField;
  43. FileNameField = fileNameField ?? $"name_{FileInfoField}";
  44. FileExtField = fileExtField ?? $"ext_{FileInfoField}";
  45. return this;
  46. }
  47. public VmInputFile WithImage(string fileInfoField, string fileNameField = null, string fileExtField = null, int maxSize = 5)
  48. {
  49. IsImage = true;
  50. FileInfoField = fileInfoField.Empty() ? Name : fileInfoField;
  51. FileNameField = fileNameField ?? $"name_{FileInfoField}";
  52. FileExtField = fileExtField ?? $"ext_{FileInfoField}";
  53. return this;
  54. }
  55. public VmInputFile WithMaxSize(int size)
  56. {
  57. MaxSize = size;
  58. return this;
  59. }
  60. /// <summary>
  61. /// 文件最大M(默认5M)
  62. /// </summary>
  63. public int MaxSize { get; set; }
  64. }