VmInputSelect.cs 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. namespace VberAdmin.Web.Models.Input;
  2. public class VmInputSelect : VmInputBase
  3. {
  4. public VmInputSelect(string name, string displayName) : base(name, displayName, VmInputType.Select)
  5. {
  6. DefaultClass = "form-select form-select-sm form-control-sm form-select-solid";
  7. }
  8. public VmInputSelect(string name, string displayName, string options, bool isAddBlank, bool isTree, bool isMultiple) : this(name, displayName)
  9. {
  10. Options = options;
  11. IsAddBlank = isAddBlank;
  12. IsTree = isTree;
  13. IsMultiple = isMultiple;
  14. }
  15. private string _options;
  16. public string Options
  17. {
  18. get => $"{(IsAddBlank ? $"<option value=\"\">请选择{DisplayName}</option>\r\n" : "")}{_options}";
  19. set => _options = value;
  20. }
  21. public bool IsAddBlank { get; set; }
  22. public bool IsTree { get; set; }
  23. public bool IsMultiple { get; set; }
  24. public override string Other
  25. {
  26. get
  27. {
  28. //data-allow-clear=\"true\"
  29. string str = $"data-control=\"select2\" data-placeholder=\"{PlaceholderStr}\" data-dropdown-parent=\"#{ModalId}\"";
  30. if (IsTree)
  31. {
  32. str += " data-select-tree=\"true\"";
  33. }
  34. if (IsMultiple)
  35. {
  36. str += " multiple=\"multiple\"";
  37. }
  38. return $"{base.Other ?? ""} {str}";
  39. }
  40. set => _other = value;
  41. }
  42. }