通用内容简介

万能表单功能

  1. 表单字段类型:

    • 文本输入字段:支持单行文本、多行文本、密码等类型。
    • 选择字段:支持单选框、复选框、下拉列表等类型。
    • 数字输入字段:支持整数、小数等类型。
    • 日期和时间字段:支持日期选择器、时间选择器等类型。
    • 文件上传字段:支持上传文件、 图像选择 ,并限制文件类型和大小。
  2. 动态字段显示:

    • 根据条件显示或隐藏字段:根据其他字段的值或选择,动态显示或隐藏某些字段。
    • 字段依赖关系:某些字段的可用选项或验证规则取决于其他字段的值。
  3. 字段验证:

    • 必填字段验证:确保必填字段不为空。
    • 数据格式验证:验证输入数据的格式,如电子邮件、电话号码、URL、地理位置、最少字数限制等。
    • 自定义验证规则:允许定义自定义验证规则,以满足特定的业务需求。
  4. 数据关联:

    • 字段选项关联:根据其他字段的值,动态更新字段的选项列表。
    • 字段显示内容关联:根据其他字段的值,动态更新字段的显示内容。
  5. 表单逻辑:

    • 条件逻辑:根据用户的输入或选择,显示或隐藏特定的字段或部分。
    • 验证规则逻辑:根据用户的输入或选择,动态改变字段的验证规则。
  6. 数据存储:

    • 将用户提交的表单数据存储到数据库或其他数据存储系统中。
    • 确保数据的安全性和完整性,包括数据加密、防止重复提交等。
  7. 数据导出:

    • 支持将表单数据导出为常见的文件格式,如CSV、Excel等。
    • 允许选择导出的字段和数据范围。
  8. 权限控制:

    • 根据用户角色或权限,限制对表单的访问和操作权限。
    • 管理员角色可以查看和编辑所有表单数据,普通用户只能查看和编辑自己的数据。
  9. 表单预览和编辑:

    • 提供预览表单的功能,以便用户在提交之前查看表单的样式和内容。
    • 允许用户在提交之前对表单进行编辑和修改。
  10. 自定义样式:

    • 允许用户自定义表单的样式和布局,包括颜色、字体、边框等。
    • 提供预设的样式模板供用户选择。

 

方法列表

设置字段

/*
* 字段信息
* identification 字段标识
* name 字段名称,显示在页面上的
* placeholder 输入框显示的提示
* formtype 表单类型
* value
* datas 其他数据
* required 是否必填
* rule 验证规则
* regex 正则验证
* maxlength 最大长度,0不限制
* disabled 是否禁用
* cssClass 样式,数组形式,["div class","input class1 class2"]
* callback 回调函数
* jsfunction js函数
*
*
* */
field($identification, $name, $value = '', $formtype = "text", $datas = [])

csrf字段

csrf_field()

表单提交地址

formAction($url)

method设置 默认post

method($method)

表单标题

formTitle($title)

页面标题

pageTitle($title)

提交|编辑按钮名称

actionName($name)

返回名称

backName($name)

列表页,搜索字段设置

searchField($identification, $placeholder, $value="" ,  $formtype = "text", $datas = [])

列表页面右上角

[
['actionName'=>'添加','actionUrl'=>url("admin/formtools/testadd"),'cssClass'=>"bg-info"],
['actionName'=>'删除','actionUrl'=>url('admin/formtools/testdel'),'cssClass'=>"bg-danger"]
]
listAction($datas=[])

分页链接追加参数

linkAppend($value=[])

列表字段追加

rightAction($datas, $field = "")

获取表单数据,不显示模板

getData()

表单模板

formView($pageData=[],$view = "")

列表模板

listView($pageData=[],$datas=[])

 

使用代码

提交编辑

$pageData = getURIByRoute($this->request);
FormTool::create()
            ->field("id","")->formtype("id","hidden")->value("id",5)
            ->field("name","名称")->placeholder("name","请输入名称")->value("name",'名称')

            ->field("password","密码")->placeholder("password","请输入密码")->formtype("password","password")
            ->field("password2","确认密码")->placeholder("password2","请确认密码")->formtype("password2","password")

            ->field("cate_id","分类")->placeholder("cate_id","请选择分类")->formtype("cate_id","select")->value("cate_id",2)
            ->datas('cate_id',[["value"=>1,"name"=>"测试1"],["value"=>2,"name"=>"测试2"]])

            ->field("name2","只读名称")->placeholder("name2","只读名称")->value('name2','我只能读取')->formtype('name2','readonly')

            ->field("name3","禁用名称")->placeholder("name3","禁用名称")->value('name3','禁用读取')->disabled('name3',"disabled")

            ->field("cate_id2","分类2")->placeholder("cate_id2","请选择分类")->formtype("cate_id2","radio")->value("cate_id2",2)
            ->datas('cate_id2',[["value"=>1,"name"=>"测试3"],["value"=>2,"name"=>"测试4"]])

            ->field("cate_id3[]","分类3")->placeholder("cate_id3[]","请选择分类")->formtype("cate_id3[]","checkbox")->value("cate_id3[]",[1,2])
            ->datas('cate_id3[]',[["value"=>1,"name"=>"测试5"],["value"=>2,"name"=>"测试6"]])

            ->field("des","描述")->placeholder("des","请输入描述")->formtype("des","textarea")->value("des",'描述')

            ->field("img",['name'=>'图片','placeholder'=>"请选择图片",'formtype'=>"image"])->value("img",'https://gimg2.baidu.com/image_search/src=http%3A%2F%2Fsafe-img.xhscdn.com%2Fbw1%2Fc03a255b-2dee-4ec6-afd3-9b5ca0af9d55%3FimageView2%2F2%2Fw%2F1080%2Fformat%2Fjpg&refer=http%3A%2F%2Fsafe-img.xhscdn.com&app=2002&size=f9999,10000&q=a80&n=0&g=0n&fmt=auto?sec=1704401180&t=4586b7dc12b7ad8d9b81e13bc06cb76d')

            ->field('file',"上传文件")->placeholder("file","请选择文件")->formtype("file","file")


            ->csrf_field()
            ->formTitle("万能模型编辑")
            ->pageTitle("模型管理")
            ->formAction(url('admin/formtools/testdo'))
            ->formView($pageData);

 

列表

$pageData = getURIByRoute($this->request);
$datas = DB::table('module_formtools_banners as banners')
                ->leftJoin("module_formtools_banner_cate as banner_cate",'banners.cate_id','banner_cate.id')
                ->select(['banners.*','banner_cate.name as cate_id'])
                ->paginate(getLen());

        return FormTool::create()
            ->field("id","ID")
            ->field("title","名称")
            ->field("url",'图片')
            ->field("cate_id","分类")
            ->rightAction([
                ['actionName'=>'编辑','actionUrl'=>url("admin/formtools/testedit"),'cssClass'=>"btn-success",'param'=>['page'=>$_GET['page']]],
                ['actionName'=>'删除','actionUrl'=>url('admin/formtools/testdel'),'cssClass'=>"btn-danger","confirm"=>true,'param'=>['page'=>$_GET['page']]
            ]],"id")
            ->pageTitle("模型管理")
            ->formTitle("万能模型列表")
            ->searchField("title","请输入名称",$all['title']??"")
            ->searchField("cate_id","请选择分类",$all['cate_id'],"select",[["value"=>1,"name"=>"测试1"],["value"=>2,"name"=>"测试2"]])
            ->listAction([
                ['actionName'=>'添加','actionUrl'=>url("admin/formtools/testadd"),'cssClass'=>"bg-info"],
                ['actionName'=>'删除','actionUrl'=>url('admin/formtools/testdel'),'cssClass'=>"bg-danger"]
            ])
            ->linkAppend($all)
            ->listView($pageData,$datas);

 

 

 

 

评论
列表