FormBuilder.php 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. <?php
  2. /**
  3. *
  4. * @author: xaboy<365615158@qq.com>
  5. * @day: 2017/11/23
  6. */
  7. namespace service;
  8. use FormBuilder\Form;
  9. use think\Url;
  10. class FormBuilder extends Form
  11. {
  12. /**
  13. * 快速创建POST提交表单
  14. * @param $title
  15. * @param array $field
  16. * @param $url
  17. * @param $jscallback $f.submitStatus({loading: false}); 成功按钮状态false
  18. * 1 父级刷新 不能再提交
  19. * 2 父级刷新关闭弹框 不能再提交 成功关闭
  20. * 3 父页面刷新可以重复添加 可以再次提交
  21. * 4 父级不刷新 不能再提交
  22. * 5 父级不刷新 不能再提交 关闭弹窗
  23. * 6 父级不刷新 当前窗口刷新
  24. * str 自定义
  25. * @return $this
  26. */
  27. public static function make_post_form($title,array $field,$url,$jscallback = 2){
  28. $form = Form::create($url);//提交地址
  29. $form->setMethod('POST');//提交方式
  30. $form->components($field);//表单字段
  31. $form->setTitle($title);//表单标题
  32. $js = '';//提交成功不执行任何动作
  33. switch ($jscallback){
  34. case 1:
  35. $js = 'parent.$(".J_iframe:visible")[0].contentWindow.location.reload();';//提交成功父级页面刷新
  36. break;
  37. case 2:
  38. $js = 'parent.$(".J_iframe:visible")[0].contentWindow.location.reload(); setTimeout(function(){parent.layer.close(parent.layer.getFrameIndex(window.name));},2000);';//提交成功父级页面刷新并关闭当前页面
  39. break;
  40. case 3:
  41. $js = 'parent.$(".J_iframe:visible")[0].contentWindow.location.reload();$r.btn.disabled(false);$r.btn.finish();';//提交成功父级页面刷新继续添加
  42. break;
  43. case 4:
  44. $js = '$r.btn.disabled(false);$r.btn.finish();';//提交成功不能再提交
  45. break;
  46. case 5:
  47. $js = '$r.btn.disabled(false);$r.btn.finish();setTimeout(function(){parent.layer.close(parent.layer.getFrameIndex(window.name));},2000);';//父级不刷新 不能再提交 关闭弹窗
  48. break;
  49. case 6:
  50. $js = 'setTimeout(function(){window.location.reload(),2000});';//父级不刷新 当前窗口刷新
  51. break;
  52. case 7:
  53. $js = 'parent.$(".J_iframe:visible")[0].contentWindow.location.reload();$r.btn.disabled(false);$r.btn.finish();';//父级刷新 提交成功不能再提交
  54. break;
  55. default:
  56. $js = $jscallback;
  57. break;
  58. }
  59. $form->setSuccessScript($js);//提交成功执行js
  60. return $form;
  61. }
  62. /** 选择多图片
  63. * @param string $title 表单名称
  64. * @param string $field 表单字段名称
  65. * @param array $value 表单值
  66. * @method maxLength(int $length) value的最大数量, 默认无限制
  67. * @method icon(String $icon) 打开弹出框的按钮图标
  68. * @method height(String $height) 弹出框高度
  69. * @method width(String $width) 弹出框宽度
  70. * @method spin(Boolean $bool) 是否显示加载动画, 默认为 true
  71. * @method frameTitle(String $title) 弹出框标题
  72. * @method handleIcon(Boolean $bool) 操作按钮的图标, 设置为false将不显示, 设置为true为默认的预览图标, 类型为file时默认为false, image类型默认为true
  73. * @method allowRemove(Boolean $bool) 是否可删除, 设置为false是不显示删除按钮
  74. */
  75. public static function formFrameImages($field,$title,$value = [],$icon = 'images',$frameTitle = '图库',$maxLength=5,$width = '945px',$height = '500px',$spin = true,$handleIcon = true,$allowRemove = true){
  76. $url = Url::build('admin/widget.images/index',array('fodder'=>$field));
  77. return Form::frameImages($field,$title,$url,$value)->maxLength($maxLength)->icon($icon)->width($width)->height($height)->frameTitle($frameTitle)->spin($spin)->handleIcon($handleIcon)->allowRemove($allowRemove);
  78. }
  79. /** 选择单图片
  80. * @param string $title 表单名称
  81. * @param string $field 表单字段名称
  82. * @param array $value 表单值
  83. * @method icon(String $icon) 打开弹出框的按钮图标
  84. * @method height(String $height) 弹出框高度
  85. * @method width(String $width) 弹出框宽度
  86. * @method spin(Boolean $bool) 是否显示加载动画, 默认为 true
  87. * @method frameTitle(String $title) 弹出框标题
  88. * @method handleIcon(Boolean $bool) 操作按钮的图标, 设置为false将不显示, 设置为true为默认的预览图标, 类型为file时默认为false, image类型默认为true
  89. * @method allowRemove(Boolean $bool) 是否可删除, 设置为false是不显示删除按钮
  90. */
  91. public static function formFrameImageOne($field,$title,$value = '',$icon = 'images',$frameTitle = '图库',$width = '945px',$height = '500px',$spin = true,$handleIcon = true,$allowRemove = true){
  92. $url = Url::build('admin/widget.images/index',array('fodder'=>$field));
  93. return Form::frameImageOne($field,$title,$url,$value)->icon($icon)->width($width)->height($height)->frameTitle($frameTitle)->spin($spin)->handleIcon($handleIcon)->allowRemove($allowRemove);
  94. }
  95. }