FormBuilder.php 2.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. namespace crmeb\services;
  3. use FormBuilder\Form;
  4. class FormBuilder extends Form
  5. {
  6. /**
  7. * 快速创建POST提交表单
  8. * @param $title
  9. * @param array $field
  10. * @param $url
  11. * @param $jscallback $f.submitStatus({loading: false}); 成功按钮状态false
  12. * 1 父级刷新 不能再提交
  13. * 2 父级刷新关闭弹框 不能再提交 成功关闭
  14. * 3 父页面刷新可以重复添加 可以再次提交
  15. * 4 父级不刷新 不能再提交
  16. * 5 父级不刷新 不能再提交 关闭弹窗
  17. * 6 父级不刷新 当前窗口刷新
  18. * str 自定义
  19. * @return $this
  20. */
  21. public static function make_post_form($title, array $field, $url, $jscallback = 2)
  22. {
  23. $form = Form::create($url); //提交地址
  24. $form->setMethod('POST'); //提交方式
  25. $form->components($field); //表单字段
  26. $form->setTitle($title); //表单标题
  27. $js = ''; //提交成功不执行任何动作
  28. switch ($jscallback) {
  29. case 1:
  30. $js = 'parent.$(".J_iframe:visible")[0].contentWindow.location.reload();'; //提交成功父级页面刷新
  31. break;
  32. case 2:
  33. $js = 'parent.$(".J_iframe:visible")[0].contentWindow.location.reload(); setTimeout(function(){parent.layer.close(parent.layer.getFrameIndex(window.name));},2000);'; //提交成功父级页面刷新并关闭当前页面
  34. break;
  35. case 3:
  36. $js = 'parent.$(".J_iframe:visible")[0].contentWindow.location.reload();$r.btn.disabled(false);$r.btn.loading(false);'; //提交成功父级页面刷新继续添加
  37. break;
  38. case 4:
  39. $js = '$r.btn.disabled(false);$r.btn.loading(false);'; //提交成功不能再提交
  40. break;
  41. case 5:
  42. $js = 'console.log($r.btn);$r.btn.disabled(false);$r.btn.loading(false);setTimeout(function(){parent.layer.close(parent.layer.getFrameIndex(window.name));},2000);'; //父级不刷新 不能再提交 关闭弹窗
  43. break;
  44. case 6:
  45. $js = 'setTimeout(function(){window.location.reload(),2000});'; //父级不刷新 当前窗口刷新
  46. break;
  47. case 7:
  48. $js = 'console.log($r.btn);parent.$(".J_iframe:visible")[0].contentWindow.location.reload();$r.btn.disabled(false);$r.btn.loading(false);'; //父级刷新 提交成功不能再提交
  49. break;
  50. default:
  51. $js = $jscallback;
  52. break;
  53. }
  54. $form->setSuccessScript($js); //提交成功执行js
  55. return $form;
  56. }
  57. }