single_select_field.py 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. # coding=utf-8
  2. """
  3. @project: maxkb
  4. @Author:虎
  5. @file: single_select_field.py
  6. @date:2023/10/31 18:00
  7. @desc:
  8. """
  9. from typing import List, Dict
  10. from common.forms import BaseLabel
  11. from common.forms.base_field import TriggerType, BaseExecField
  12. class SingleSelect(BaseExecField):
  13. """
  14. 下拉单选
  15. """
  16. def __init__(self,
  17. label: str or BaseLabel,
  18. text_field: str,
  19. value_field: str,
  20. option_list: List[str:object],
  21. provider: str = None,
  22. method: str = None,
  23. required: bool = False,
  24. default_value: object = None,
  25. relation_show_field_dict: Dict = None,
  26. relation_trigger_field_dict: Dict = None,
  27. trigger_type: TriggerType = TriggerType.OPTION_LIST,
  28. attrs: Dict[str, object] = None,
  29. props_info: Dict[str, object] = None):
  30. super().__init__("SingleSelect", label, text_field, value_field, provider, method, required, default_value,
  31. relation_show_field_dict, relation_trigger_field_dict, trigger_type, attrs, props_info)
  32. self.option_list = option_list
  33. def to_dict(self):
  34. return {**super().to_dict(), 'option_list': self.option_list}