使用自定义布局

  1. <?php
  2. $form->row(function (Row $row, Form $form) {})

添加表单字段到自定义布局里

rowItem

  1. <?php
  2. $form->rowItem("UserName")

注意:要使用 $form->rowItem

代码示例

  1. <?php
  2. namespace App\Admin\Controllers;
  3. use SmallRuralDog\Admin\Components\Form\Checkbox;
  4. use SmallRuralDog\Admin\Components\Form\CheckboxGroup;
  5. use SmallRuralDog\Admin\Components\Form\Input;
  6. use SmallRuralDog\Admin\Components\Form\Radio;
  7. use SmallRuralDog\Admin\Components\Form\RadioGroup;
  8. use SmallRuralDog\Admin\Components\Form\WangEditor;
  9. use SmallRuralDog\Admin\Components\Widgets\Alert;
  10. use SmallRuralDog\Admin\Components\Widgets\Button;
  11. use SmallRuralDog\Admin\Components\Widgets\Card;
  12. use SmallRuralDog\Admin\Components\Widgets\Dialog;
  13. use SmallRuralDog\Admin\Components\Widgets\Divider;
  14. use SmallRuralDog\Admin\Components\Widgets\Markdown;
  15. use SmallRuralDog\Admin\Controllers\AdminController;
  16. use SmallRuralDog\Admin\Form;
  17. use SmallRuralDog\Admin\Layout\Column;
  18. use SmallRuralDog\Admin\Layout\Content;
  19. use SmallRuralDog\Admin\Layout\Row;
  20. class RowFormController extends AdminController
  21. {
  22. public function grid()
  23. {
  24. }
  25. public function store()
  26. {
  27. return \Admin::responseMessage("表单提交成功");
  28. }
  29. protected function form()
  30. {
  31. $form = new Form();
  32. $form->row(function (Row $row, Form $form) {
  33. $row->item(Alert::make("Laravel-Vue-Admin", "自定义布局表单,能实现你想要的各种布局排版!!")->type("success")->style("margin-bottom: 30px;"));
  34. $row->item(Card::make()->header("Card里面加表单字段")->content(function (Content $content) use ($form) {
  35. $content->row(function (Row $row) use ($form) {
  36. $row->column(8, $form->rowItem("UserName"));
  37. $row->column(8, $form->rowItem("UserName"));
  38. $row->column(8, $form->rowItem("UserName")->hideLabel()->component(Input::make()->placeholder("UserName")));
  39. $row->gutter(10);
  40. });
  41. }));
  42. });
  43. $form->row(function (Row $row) use ($form) {
  44. $row->column(8, function (Column $column) use ($form) {
  45. $column->row(Divider::make("基本信息"));
  46. $column->row(function (Row $row) use ($form) {
  47. $row->item($form->rowItem("UserName"));
  48. $faker = \Faker\Factory::create();
  49. $row->item($form->rowItem('Checkbox')->component(Checkbox::make(99999, $faker->name))->defaultValue(0));
  50. $row->item($form->rowItem('CheckboxGroup')->component(CheckboxGroup::make([10], [
  51. Checkbox::make(10, $faker->name),
  52. Checkbox::make(20, $faker->name),
  53. ]))->required("array"));
  54. $row->item($form->rowItem('RadioGroup')->component(RadioGroup::make(11, [
  55. Radio::make(10, $faker->name),
  56. Radio::make(11, $faker->name),
  57. ]))->required("number"));
  58. });
  59. });
  60. $row->column(16, function (Column $column) use ($form) {
  61. $column->row(Divider::make("详细信息"));
  62. $column->row(function (Row $row) use ($form) {
  63. $row->item($form->rowItem("UserName", "富文本内容")->labelWidth("auto")->component(WangEditor::make()->style("height:400px;")));
  64. });
  65. });
  66. $row->gutter(20);
  67. });
  68. $form->top(function (Content $content) {
  69. $content->row($this->code())->className('mb-10');
  70. });
  71. $form->actions(function (Form\FormActions $formActions) {
  72. $formActions->hideCancelButton();
  73. $formActions->submitButton()->content("提交表单")->style("width:200px");
  74. });
  75. //设置空注入,代替默认返回事件
  76. $form->successRefData("", "");
  77. return $form;
  78. }
  79. protected function code($name = "查看源代码", $ref = "codeButton")
  80. {
  81. return Button::make($name)->ref($ref)->dialog(function (Dialog $dialog) use ($name) {
  82. $dialog->width('80%')->title($name);
  83. $dialog->slot(function (Content $content) {
  84. $code = "```php\n";
  85. $code .= file_get_contents(admin_path("Controllers/RowFormController.php"));
  86. $code .= "\n```";
  87. $content->body(Markdown::make($code)->style("height:60vh;"));
  88. });
  89. });
  90. }
  91. }

实现效果

截屏2020-09-19 18.15.17.png