xaboy 6 年之前
父节点
当前提交
5d1ca52725
共有 3 个文件被更改,包括 278 次插入0 次删除
  1. 34 0
      demo/demo.php
  2. 120 0
      demo/elm.php
  3. 124 0
      demo/iview.php

+ 34 - 0
demo/demo.php

@@ -0,0 +1,34 @@
+<?php
+
+namespace App;
+
+use  FormBuilder\Factory\Elm;
+use FormBuilder\Form\IviewForm;
+
+require '../vendor/autoload.php';
+
+
+$action = '/save.php';
+$method = 'POST';
+
+$input = Elm::input('goods_name', '商品名称')->required();
+$textarea = Elm::textarea('goods_info', '商品简介');
+$switch = Elm::switches('is_open', '是否开启')->activeText('开启')->inactiveText('关闭');
+
+//创建表单
+$form = (new IviewForm($action))->setMethod($method);
+
+//添加组件
+$form->setRule([$input, $textarea]);
+$form->append($switch);
+
+$form->formData([
+    'goods_name' => 'goods_name123',
+    'asdf' => 'asdfafd',
+    'is_open' => '0'
+])->setValue('goods_info', "asdf\r\nadfa");
+
+//生成表单页面
+$formHtml = $form->view();
+
+echo $formHtml;

+ 120 - 0
demo/elm.php

@@ -0,0 +1,120 @@
+<?php
+
+namespace App;
+
+
+require '../vendor/autoload.php';
+
+use FormBuilder\Factory\Elm;
+use FormBuilder\Handle\ElmFormHandle;
+use FormBuilder\UI\Elm\Components\Rate;
+use FormBuilder\UI\Iview\Components\DatePicker;
+
+
+class GoodsForm extends ElmFormHandle
+{
+    protected $action = 'save.php';
+    protected $title = '测试 Handle';
+    protected $fieldTitles = [
+        'start_time' => '开启时间',
+        'star' => '点赞'
+    ];
+
+    protected $scene = 'get';
+
+    protected function getScene()
+    {
+        $this->except = ['goods_name'];
+    }
+
+    public function goods_name_field()
+    {
+        return Elm::input('goods_name', '商品名称')->required();
+    }
+
+    public function goods_info_field()
+    {
+        return Elm::textarea('goods_info', '商品简介');
+    }
+
+    public function is_open_field()
+    {
+        return Elm::switches('is_open', '是否开启');
+    }
+
+    public function id_field()
+    {
+        return Elm::hidden('1', '1');
+    }
+
+    public function frame_field()
+    {
+        return Elm::frameFile('as', 'asd', 'afsdfasdf');
+    }
+
+    public function test_field()
+    {
+        return Elm::uploadFiles('aaa', 'aaa', 'bbb', [1])->required();
+    }
+
+    public function row_field()
+    {
+        return [
+            'type' => 'row',
+            'children' => [
+                [
+                    'type' => 'input',
+                    'field' => 'row',
+                    'title' => 'test Row',
+                    'value' => '123',
+                    'col' => [
+                        'span' => 12
+                    ]
+                ],
+                Elm::input('row2', 'row2', 'asdf')->col(12)
+            ],
+            'native' => true
+        ];
+    }
+
+    /**
+     * 通过依赖注入方式生成组件
+     *
+     * @param DatePicker $date
+     * @return DatePicker
+     */
+    public function start_time_field(DatePicker $date)
+    {
+        return $date->required()->info('asdfasdfasdfsf');
+    }
+
+    public function starField(Rate $rate)
+    {
+        return $rate;
+    }
+
+    protected function getFormConfig()
+    {
+        $config = Elm::config();
+        $config->createResetBtn()->show(true);
+
+        return $config;
+    }
+
+    protected function getFormData()
+    {
+        return [
+            'goods_name' => 'goods_name123',
+            'asdf' => 'asdfafd',
+            'is_open' => '0',
+            'goods_info' => "asdf\r\nadfa",
+            'star' => 0,
+            'row' => 'adsfasdfasd'
+        ];
+    }
+}
+
+$formHtml = (new GoodsForm())->view();
+//$formHtml = (new GoodsForm())->form()->view();
+
+echo $formHtml;

+ 124 - 0
demo/iview.php

@@ -0,0 +1,124 @@
+<?php
+
+namespace App;
+
+
+require '../vendor/autoload.php';
+
+use  FormBuilder\Factory\Iview;
+use FormBuilder\Handle\ElmFormHandle;
+use FormBuilder\Handle\IviewFormHandle;
+use FormBuilder\FormHandle;
+use FormBuilder\UI\Elm\Components\Checkbox;
+use FormBuilder\UI\Elm\Components\Rate;
+use FormBuilder\UI\Iview\Components\DatePicker;
+
+
+class GoodsForm extends IviewFormHandle
+{
+    protected $action = 'save.php';
+    protected $title = '测试 Handle';
+    protected $fieldTitles = [
+        'start_time' => '开启时间',
+        'star' => '点赞'
+    ];
+
+    protected $scene = 'get';
+
+    protected function getScene()
+    {
+        $this->except = ['goods_name'];
+    }
+
+    public function goods_name_field()
+    {
+        return Iview::input('goods_name', '商品名称')->required();
+    }
+
+    public function goods_info_field()
+    {
+        return Iview::textarea('goods_info', '商品简介');
+    }
+
+    public function is_open_field()
+    {
+        return Iview::switches('is_open', '是否开启');
+    }
+
+    public function id_field()
+    {
+        return Iview::hidden('1', '1');
+    }
+
+    public function frame_field()
+    {
+        return Iview::frame('as', 'asd', 'afsdfasdf');
+    }
+
+    public function test_field()
+    {
+        return Iview::dateTime('aaa', 'aaa')->required();
+    }
+
+    public function row_field()
+    {
+        return [
+            'type' => 'row',
+            'children' => [
+                [
+                    'type' => 'input',
+                    'field' => 'row',
+                    'title' => 'test Row',
+                    'value' => '123',
+                    'col' => [
+                        'span' => 12
+                    ]
+                ],
+                Iview::input('row2', 'row2', 'asdf')->col(12)
+            ],
+            'native' => true
+        ];
+    }
+
+    /**
+     * 通过依赖注入方式生成组件
+     *
+     * @param DatePicker $date
+     * @return DatePicker
+     */
+    public function start_time_field(DatePicker $date)
+    {
+        return $date->required()->info('asdfasdfasdfsf');
+    }
+
+    public function starField(Rate $rate)
+    {
+        return $rate;
+    }
+
+    protected function getFormConfig()
+    {
+        $config = Iview::config();
+        $config->createResetBtn()->show(true);
+
+        return $config;
+    }
+
+    protected function getFormData()
+    {
+        return [
+            'goods_name' => 'goods_name123',
+            'asdf' => 'asdfafd',
+            'is_open' => '0',
+            'goods_info' => "asdf\r\nadfa",
+            'start_time' => '1999-11-11',
+            'star' => 0,
+            'row' => 'adsfasdfasd'
+        ];
+    }
+}
+
+$formHtml = (new GoodsForm())->view();
+//$formHtml = (new GoodsForm())->form()->view();
+
+echo $formHtml;