企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# UI表单 根据数据库生成的表格文件在app/ui/form目录下。 表单本来想自己写,后来在看到开源项目[http://php.form-create.com/](http://php.form-create.com/) 这个已经完成了大部分ui封装,就用这个项目进行了二次封装,[https://github.com/suframe/form](https://github.com/suframe/form),把配置给设置成了类,后来作者接受我的意见,也完成了这方面的升级,所以你也可以按上面开源项目的写法进行开发表单,参照文档:[http://php.form-create.com/docs/2.0/guide/form](http://php.form-create.com/docs/2.0/guide/form) 一个form文件格式如下: ``` <?php namespace demo; class Demo { public function title() { return [ 'type' => 'input', 'title' => '名称', 'field' => 'title', 'col' => ['span' => 12], 'props' => [ 'placeholder' => '请输入名称', ], 'validate' => [ ['required' => true, 'message' => '不能为空'] ], 'callback' => function($element){ $element->clearable(true); $element->prefixIcon('el-icon-s-goods'); return $element; } ]; } public function image() { return [ 'type' => 'uploadImage', 'action' => '图片上传地址', 'title' => '封面图片', 'col' => ['span' => 12], 'field' => 'image', 'validate' => [ [ 'required' => true, 'message' => '不能为空', ], ], ]; } public function number() { return [ 'type' => 'number', 'title' => '数值', 'field' => 'number', 'col' => ['span' => 12], 'props' => [ 'placeholder' => '请输入数值', ], 'validate' => [ ['required' => true], ['min' => 999, 'message' => '最小999'], ['max' => 9999], ] ]; } public function enable() { return [ 'type' => 'radio', 'title' => '有效', 'field' => 'enable', 'col' => ['span' => 6], 'props' => [], 'validate' => [], 'options' => [ ['value' => "2", 'label' => "不包邮", 'disabled' => false], ['value' => "1", 'label' => "包邮", 'disabled' => true], ], ]; } public function open() { return [ 'type' => 'switch', 'title' => '是否上架', 'field' => 'open', 'col' => ['span' => 6], 'props' => [ 'activeValue' => "1", 'inactiveValue' => "0", ], ]; } public function city() { return [ 'type' => 'city', 'col' => ['span' => 6], 'title' => '所在区域', 'field' => 'city', 'options' => [ ['value' => "2", 'label' => "不包邮", 'disabled' => false], ['value' => "1", 'label' => "包邮", 'disabled' => true], ], ]; } public function date() { return [ 'type' => 'DatePicker', 'title' => '时间选择', 'field' => 'date', 'props' => [ 'type' => "datetimerange", 'format' => "yyyy-MM-dd HH:mm:ss", 'placeholder' => '请选择活动日期', ], ]; } public function content() { return [ 'type' => 'editor', 'title' => '详细内容', 'field' => 'content', 'action' => '', //图片上传地址 'preview' => true ]; } } ```