Iview.php 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <?php
  2. /**
  3. * PHP表单生成器
  4. *
  5. * @package FormBuilder
  6. * @author xaboy <xaboy2005@qq.com>
  7. * @version 2.0
  8. * @license MIT
  9. * @link https://github.com/xaboy/form-builder
  10. * @document http://php.form-create.com
  11. */
  12. namespace FormBuilder\Factory;
  13. use FormBuilder\Exception\FormBuilderException;
  14. use FormBuilder\Form;
  15. use FormBuilder\UI\Iview\Components\Button;
  16. use FormBuilder\UI\Iview\Components\Option;
  17. use FormBuilder\UI\Iview\Components\Poptip;
  18. use FormBuilder\UI\Iview\Components\Tooltip;
  19. use FormBuilder\UI\Iview\Config;
  20. use FormBuilder\UI\Iview\Traits\CascaderFactoryTrait;
  21. use FormBuilder\UI\Iview\Traits\CheckBoxFactoryTrait;
  22. use FormBuilder\UI\Iview\Traits\ColorPickerFactoryTrait;
  23. use FormBuilder\UI\Iview\Traits\DatePickerFactoryTrait;
  24. use FormBuilder\UI\Iview\Traits\FrameFactoryTrait;
  25. use FormBuilder\UI\Iview\Traits\FormStyleFactoryTrait;
  26. use FormBuilder\UI\Iview\Traits\HiddenFactoryTrait;
  27. use FormBuilder\UI\Iview\Traits\InputFactoryTrait;
  28. use FormBuilder\UI\Iview\Traits\InputNumberFactoryTrait;
  29. use FormBuilder\UI\Iview\Traits\RadioFactoryTrait;
  30. use FormBuilder\UI\Iview\Traits\RateFactoryTrait;
  31. use FormBuilder\UI\Iview\Traits\SelectFactoryTrait;
  32. use FormBuilder\UI\Iview\Traits\SliderFactoryTrait;
  33. use FormBuilder\UI\Iview\Traits\SwitchesFactoryTrait;
  34. use FormBuilder\UI\Iview\Traits\TimePickerFactoryTrait;
  35. use FormBuilder\UI\Iview\Traits\TreeFactoryTrait;
  36. use FormBuilder\UI\Iview\Traits\UploadFactoryTrait;
  37. use FormBuilder\UI\Iview\Traits\ValidateFactoryTrait;
  38. abstract class Iview
  39. {
  40. use CascaderFactoryTrait;
  41. use CheckBoxFactoryTrait;
  42. use ColorPickerFactoryTrait;
  43. use DatePickerFactoryTrait;
  44. use FrameFactoryTrait;
  45. use HiddenFactoryTrait;
  46. use InputNumberFactoryTrait;
  47. use InputFactoryTrait;
  48. use RadioFactoryTrait;
  49. use RateFactoryTrait;
  50. use SliderFactoryTrait;
  51. use SelectFactoryTrait;
  52. use FormStyleFactoryTrait;
  53. use SwitchesFactoryTrait;
  54. use TimePickerFactoryTrait;
  55. use TreeFactoryTrait;
  56. use UploadFactoryTrait;
  57. use ValidateFactoryTrait;
  58. /**
  59. * 获取选择类组件 option 类
  60. *
  61. * @param string|number $value
  62. * @param string $label
  63. * @param bool $disabled
  64. * @return Option
  65. */
  66. public static function option($value, $label = '', $disabled = false)
  67. {
  68. return new Option($value, $label, $disabled);
  69. }
  70. /**
  71. * 全局配置
  72. *
  73. * @param array $config
  74. * @return Config
  75. */
  76. public static function config(array $config = [])
  77. {
  78. return new Config($config);
  79. }
  80. /**
  81. * 组件提示消息配置 Poptip
  82. *
  83. * @return Poptip
  84. */
  85. public static function poptip()
  86. {
  87. return new Poptip();
  88. }
  89. /**
  90. * 组件提示消息配置 Tooltip
  91. *
  92. * @return Tooltip
  93. */
  94. public static function tooltip()
  95. {
  96. return new Tooltip();
  97. }
  98. /**
  99. * 按钮组件
  100. *
  101. * @return Button
  102. */
  103. public static function button()
  104. {
  105. return new Button();
  106. }
  107. /**
  108. * 创建表单
  109. *
  110. * @param string $action
  111. * @param array $rule
  112. * @param array $config
  113. * @return Form
  114. * @throws FormBuilderException
  115. */
  116. public static function createForm($action = '', $rule = [], $config = [])
  117. {
  118. return Form::iview($action, $rule, $config);
  119. }
  120. /**
  121. * 创建表单 v4版本
  122. *
  123. * @param string $action
  124. * @param array $rule
  125. * @param array $config
  126. * @return Form
  127. * @throws FormBuilderException
  128. */
  129. public static function createFormV4($action = '', $rule = [], $config = [])
  130. {
  131. return Form::iview4($action, $rule, $config);
  132. }
  133. }