| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- <?php
- namespace App\Module\Dev\AdminControllers\Helper;
- use App\Module\Dev\Enums\DEV_LOG_TYPE;
- use App\Module\Dev\Enums\DEV_STATUS;
- use Dcat\Admin\Form;
- use Dcat\Admin\Form\Field;
- /**
- * 表单辅助特性
- *
- * 提供开发工具模块后台控制器的表单构建功能的具体实现
- */
- trait FormHelperTrait
- {
- /**
- * 添加开发工具名称输入
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Field\Text
- */
- public function textDevName(string $field = 'name', string $label = '名称'): Field\Text
- {
- return $this->form->text($field, $label)
- ->required()
- ->rules('required|max:100');
- }
- /**
- * 添加开发工具描述输入
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Field\Textarea
- */
- public function textareaDevDescription(string $field = 'description', string $label = '描述'): Field\Textarea
- {
- return $this->form->textarea($field, $label)
- ->rows(3)
- ->rules('max:200');
- }
- /**
- * 添加开发工具状态选择
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Field\Select|Field\Radio
- */
- public function selectDevStatus(string $field = 'status', string $label = '状态', bool $useRadio = true)
- {
- $options = DEV_STATUS::getAll();
- if ($useRadio) {
- return $this->form->radio($field, $label)
- ->options($options)
- ->default(DEV_STATUS::ENABLED->value);
- }
- return $this->form->select($field, $label)
- ->options($options)
- ->default(DEV_STATUS::ENABLED->value);
- }
- /**
- * 添加开发日志类型选择
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Field\Select
- */
- public function selectDevLogType(string $field = 'type', string $label = '日志类型'): Field\Select
- {
- return $this->form->select($field, $label)
- ->options(DEV_LOG_TYPE::getAll())
- ->default(DEV_LOG_TYPE::INFO->value)
- ->required();
- }
- /**
- * 添加开发日志内容输入
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Field\Textarea
- */
- public function textareaDevLogContent(string $field = 'content', string $label = '日志内容'): Field\Textarea
- {
- return $this->form->textarea($field, $label)
- ->rows(5)
- ->required();
- }
- /**
- * 添加开发日志额外数据输入
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Field\Textarea
- */
- public function textareaDevLogExtraData(string $field = 'extra_data', string $label = '额外数据'): Field\Textarea
- {
- return $this->form->textarea($field, $label)
- ->rows(5)
- ->help('请输入JSON格式的数据');
- }
- /**
- * 添加开发配置键输入
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Field\Text
- */
- public function textDevConfigKey(string $field = 'key', string $label = '配置键'): Field\Text
- {
- return $this->form->text($field, $label)
- ->required()
- ->rules('required|max:100');
- }
- /**
- * 添加开发配置值输入
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Field\Textarea
- */
- public function textareaDevConfigValue(string $field = 'value', string $label = '配置值'): Field\Textarea
- {
- return $this->form->textarea($field, $label)
- ->rows(5)
- ->required();
- }
- /**
- * 添加开发配置描述输入
- *
- * @param string $field 字段名
- * @param string $label 标签名
- * @return Field\Textarea
- */
- public function textareaDevConfigDescription(string $field = 'description', string $label = '配置描述'): Field\Textarea
- {
- return $this->form->textarea($field, $label)
- ->rows(3)
- ->rules('max:200');
- }
- }
|