v1.php 3.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. <?php
  2. namespace zin;
  3. require_once dirname(__DIR__) . DS . 'input' . DS . 'v1.php';
  4. class datetimePicker extends wg
  5. {
  6. /**
  7. * Define widget properties.
  8. *
  9. * @var array
  10. * @access protected
  11. */
  12. protected static $defineProps = array
  13. (
  14. 'id?: string="$GID"', // 组件根元素的 ID。
  15. 'formID?: string', // 组件隐藏的表单元素 ID。
  16. 'className?: string|array', // 类名。
  17. 'style?: array', // 样式。
  18. 'tagName?: string', // 组件根元素的标签名。
  19. 'attrs?: array', // 附加到组件根元素上的属性。
  20. 'clickType?: "toggle"|"open"', // 点击类型,`toggle` 表示点击按钮时切换显示隐藏,`open` 表示点击按钮时只打。
  21. 'afterRender?: function', // 渲染完成后的回调函数。
  22. 'beforeDestroy?: function', // 销毁前的回调函数。
  23. 'name?: string', // 作为表单项的名称。
  24. 'value?: string|string[]', // 默认值。
  25. 'onChange?: function', // 值变更回调函数。
  26. 'disabled?: boolean', // 是否禁用。
  27. 'readonly?: boolean', // 是否只读。
  28. 'multiple?: boolean|number=false', // 是否允许选择多个值,如果指定为数字,则限制多选的数目,默认 `false`。
  29. 'required?: boolean', // 是否必选(不允许空值,不可以被清除)。
  30. 'placeholder?: string', // 选择框上的占位文本。
  31. 'icon?: string|array="calendar"', // 在输入框右侧显示的图标。
  32. 'weekNames?: string[]', // 星期名称,索引为 0 表示周日。
  33. 'monthNames?: string[]', // 月份名称,索引为 0 表示一月份。
  34. 'yearText?: string', // 用于显示年份的格式化文本。
  35. 'todayText?: string', // 用于显示“今天”的文本。
  36. 'clearText?: string', // 用于显示“清除”的文本。
  37. 'weekStart?: int', // 一周从星期几开始,默认 1。
  38. 'minDate?: string|int', // 最小可选的日期。
  39. 'maxDate?: string|int', // 最大可选的日期。
  40. 'menu?: array', // 左侧显示的菜单设置。
  41. 'actions?: array', // 底部工具栏设置。
  42. 'onInvalid?: function', // 日期值无效时的回调函数。
  43. 'dateFormat?: string', // 日期格式,默认 yyyy-MM-dd。
  44. 'timeFormat?: string', // 时间格式,默认 hh:mm
  45. 'joiner?: string' // 日期与时间的连接符,默认为单个空格
  46. );
  47. /**
  48. * Build the widget.
  49. *
  50. * @access protected
  51. * @return mixed
  52. */
  53. protected function build()
  54. {
  55. list($props, $restProps) = $this->props->split(array_keys(static::definedPropsList()));
  56. if(isset($props['id']))
  57. {
  58. $props['_id'] = $props['id'];
  59. unset($props['id']);
  60. }
  61. return zui::datetimePicker
  62. (
  63. set::_class('form-group-wrapper'),
  64. set::_map(array('value' => 'defaultValue', 'formID' => 'id')),
  65. set($props),
  66. set::_props($restProps),
  67. $this->children()
  68. );
  69. }
  70. }