v1.php 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. <?php
  2. namespace zin;
  3. requireWg('thinkRadio');
  4. /**
  5. * 多选题型部件类
  6. * The thinkCheckbox widget class
  7. */
  8. class thinkCheckbox extends thinkRadio
  9. {
  10. /**
  11. * @var mixed[]
  12. */
  13. protected static $defineProps = array
  14. (
  15. 'minCount?: string',
  16. 'maxCount?: string',
  17. );
  18. protected function buildFormItem()
  19. {
  20. global $lang, $app;
  21. $app->loadLang('thinkstep');
  22. $formItems = parent::buildFormItem();
  23. list($step, $minCount, $maxCount, $required, $setOption) = $this->prop(array('step', 'minCount', 'maxCount', 'required', 'setOption'));
  24. if($step)
  25. {
  26. $required = $step->options->required;
  27. $minCount = $step->options->minCount ?? null;
  28. $maxCount = $step->options->maxCount ?? null;
  29. $setOption = !empty($step->options->setOption) ? $step->options->setOption : 0;
  30. }
  31. $className = 'selectable-rows' . (empty($required) ? ' hidden' : '');
  32. $formItems[] = formRow
  33. (
  34. setClass('gap-4'),
  35. formGroup(set::label($lang->thinkstep->label->minCount), set::labelClass('required'), setClass($className, 'min-count'), input
  36. (
  37. set::placeholder($lang->thinkstep->placeholder->inputContent),
  38. set::type('number'),
  39. set::min(1),
  40. set::name('options[minCount]'),
  41. set::value($minCount),
  42. set::disabled($setOption)
  43. )),
  44. formGroup
  45. (
  46. set::label($lang->thinkstep->label->maxCount),
  47. set::labelClass('required'),
  48. setClass($className, 'max-count'),
  49. input
  50. (
  51. set::placeholder($setOption ? $lang->thinkstep->placeholder->maxCount : $lang->thinkstep->placeholder->inputContent),
  52. set::type('number'),
  53. set::min(1),
  54. set::name('options[maxCount]'),
  55. set::value($maxCount),
  56. set::disabled($setOption)
  57. )
  58. )
  59. );
  60. $formItems[] = $this->children();
  61. return $formItems;
  62. }
  63. }