* * Bootstraper for Admin. * * Here you can remove builtin form field: * * extend custom field: * Dcat\Admin\Form::extend('php', PHPEditor::class); * Dcat\Admin\Grid\Column::extend('php', PHPEditor::class); * Dcat\Admin\Grid\Filter::extend('php', PHPEditor::class); * * Or require js and css assets: * Admin::css('/packages/prettydocs/css/styles.css'); * Admin::js('/packages/prettydocs/js/main.js'); * */ // 地图 Form\Field\Map::collectAssets(); // 官方例子,验证字符长度 Field\Text::macro('len', function (int $length, ?string $error = null) { // 前端验证逻辑扩展 Admin::script( <<<'JS' Dcat.validator.extend('len', function ($el) { console.log($el.val().length , $el.attr('data-len')); return $el.val().length != $el.attr('data-len'); }); JS ); // 同时添加后端验证逻辑,这个可以看需要 $this->rules('size:'.$length); return $this->attribute([ 'data-len' => $length, 'data-len-error' => str_replace( [':attribute', ':len'], [$this->label, $length], $error ?: "只能输入:len个字符" ), ]); }); /* 验证最多包含两位小数的浮点数,可不带小数 */ Field\Text::macro('floatTwo', function (int $bit = 2, ?string $error = null) { // 前端验证逻辑扩展 Admin::script( <<<'JS' Dcat.validator.extend('floatTwo', function ($el) { return !(/^(([1-9]{1}\d*)|(0{1}))(\.\d{0,2})?$/.test($el.val())); }); JS ); // 同时添加后端验证逻辑,这个可以看需要 // $this->rules('size:'.$length); return $this->attribute([ 'data-floatTwo' => '^(([1-9]{1}\d*)|(0{1}))(\.\d{0,2})?$', 'data-floatTwo-error' => "只能输入数字(最多包含两位小数)" ]); }); /* 验证-选择不同优惠类型时的优惠金额验证 */ Field\Text::macro('discount', function ( ?string $error = null) { // 前端验证逻辑扩展 Admin::script( <<<'JS' Dcat.validator.extend('discount', function ($el) { $discount_type = $(''); return !(/^(([1-9]{1}\d*)|(0{1}))(\.\d{0,2})?$/.test($el.val())); }); JS ); // 同时添加后端验证逻辑,这个可以看需要 // $this->rules('size:'.$length); return $this->attribute([ 'data-discount' => '1', 'data-discount-error' => "只能输入数字" ]); });