index.php 8.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title><?=$form->getTitle()?></title>
  6. <link href="{__FRAME_PATH}/css/bootstrap.min.css?v=3.4.0" rel="stylesheet">
  7. <link href="{__ADMIN_PATH}/css/layui-admin.css" rel="stylesheet">
  8. <link href="{__FRAME_PATH}/css/style.min.css?v=3.0.0" rel="stylesheet">
  9. <link href="{__FRAME_PATH}css/font-awesome.min.css?v=4.3.0" rel="stylesheet">
  10. <script src="{__PLUG_PATH}vue/dist/vue.min.js"></script>
  11. <link href="{__PLUG_PATH}iview/dist/styles/iview.css" rel="stylesheet">
  12. <script src="{__PLUG_PATH}iview/dist/iview.min.js"></script>
  13. <script src="{__PLUG_PATH}jquery/jquery.min.js"></script>
  14. <script src="{__PLUG_PATH}form-create/province_city.js"></script>
  15. <script src="{__PLUG_PATH}form-create/form-create.min.js"></script>
  16. <link href="{__PLUG_PATH}layui/css/layui.css" rel="stylesheet">
  17. <script src="{__PLUG_PATH}layui/layui.all.js"></script>
  18. <style>
  19. /*弹框样式修改*/
  20. .ivu-modal{top: 20px;}
  21. .ivu-modal .ivu-modal-body{padding: 10px;}
  22. .ivu-modal .ivu-modal-body .ivu-modal-confirm-head{padding:0 0 10px 0;}
  23. .ivu-modal .ivu-modal-body .ivu-modal-confirm-footer{display: none;padding-bottom: 10px;}
  24. .ivu-date-picker {display: inline-block;line-height: normal;width: 280px;}
  25. .ivu-modal-footer{display: none;}
  26. .ivu-poptip-popper{text-align: left;}
  27. .ivu-icon{padding-left: 5px;}
  28. .ivu-btn-long{width: 10%;min-width:100px;margin-left: 18%;}
  29. .layui-fluid{padding:15px;}
  30. .layui-tab-brief>.layui-tab-more li.layui-this:after, .layui-tab-brief>.layui-tab-title .layui-this:after{border-bottom-color: #0092DC;}
  31. .layui-tab-brief>.layui-tab-title .layui-this, .layui-tab-brief>.layui-tab-title .layui-this a {color: #0092DC;}
  32. </style>
  33. </head>
  34. <body class="gray-bg">
  35. <div class="layui-fluid">
  36. <div class="layui-card">
  37. <div class="layui-card-body">
  38. <div class="layui-tab layui-tab-brief">
  39. {if condition="$config_tab eq null"}
  40. <ul class="layui-tab-title">
  41. <li class="layui-this">系统配置</li>
  42. </ul>
  43. {else/}
  44. <ul class="layui-tab-title">
  45. {volist name="config_tab" id="vo"}
  46. {if condition="$vo['value'] eq $tab_id"}
  47. <li class="layui-this">
  48. <a href="{:Url('index',array('tab_id'=>$vo['value'],'type'=>$vo['type']))}"><i class="fa fa-{$vo.icon}"></i>{$vo.label}</a>
  49. </li>
  50. {else/}
  51. <li>
  52. <a href="{:Url('index',array('tab_id'=>$vo['value'],'type'=>$vo['type']))}"><i class="fa fa-{$vo.icon}"></i>{$vo.label}</a>
  53. </li>
  54. {/if}
  55. {/volist}
  56. </ul>
  57. {/if}
  58. <div class="layui-tab-content">
  59. <div class="layui-tab-item layui-show">
  60. <div class="layui-row layui-col-space15">
  61. <div class="layui-col-md12">
  62. {if condition="$tab_id eq '17'"}
  63. <div>若使用crmeb短信平台;请到[<b style="color: #2d8cf0;">设置</b>]中[<b style="color: #2d8cf0;">短信设置</b>]里配置[<a href="{:Url('setting.system_plat/index')}" style="color: #2d8cf0;">短信账户</a>]</div>
  64. {elseif condition="$tab_id eq '19'"/}
  65. <div>若没有配置oss上传,请到[<b style="color: #2d8cf0;">设置</b>]中[<b style="color: #2d8cf0;">阿里云管理</b>]里配置[<a href="{:Url('setting.system_bucket/index')}" style="color: #2d8cf0;">对象存储</a>]</div>
  66. {elseif condition="$tab_id eq '21'"/}
  67. <div>若没有配置阿里云直播,请到[<b style="color: #2d8cf0;">设置</b>]中[<b style="color: #2d8cf0;">阿里云管理</b>]里配置[<a href="{:Url('setting.system_broadcast/index')}" style="color: #2d8cf0;">直播配置</a>]</div>
  68. {/if}
  69. </div>
  70. <div class="layui-col-md12">
  71. <div id="configboay"></div>
  72. </div>
  73. </div>
  74. </div>
  75. </div>
  76. </div>
  77. </div>
  78. </div>
  79. </div>
  80. </body>
  81. <script>
  82. var element = layui.element;
  83. formCreate.formSuccess = function(form,$r){
  84. <?=$form->getSuccessScript()?>
  85. $r.btn.loading(false);
  86. };
  87. (function () {
  88. var create = (function () {
  89. var getRule = function () {
  90. var rule = <?=json_encode($form->getRules())?>;
  91. rule.forEach(function (c) {
  92. if ((c.type == 'cascader' || c.type == 'tree') && Object.prototype.toString.call(c.props.data) == '[object String]') {
  93. if (c.props.data.indexOf('js.') === 0) {
  94. c.props.data = window[c.props.data.replace('js.', '')];
  95. }
  96. }
  97. });
  98. return rule;
  99. }, vm = new Vue,name = 'formBuilderExec<?= !$form->getId() ? '' : '_'.$form->getId() ?>';
  100. var _b = false;
  101. window[name] = function create(el, callback) {
  102. if(_b) return ;
  103. _b = true;
  104. if (!el) el = document.getElementById('configboay');
  105. var $f = formCreate.create(getRule(), {
  106. el: el,
  107. form:<?=json_encode($form->getConfig('form'))?>,
  108. row:<?=json_encode($form->getConfig('row'))?>,
  109. submitBtn:<?=$form->isSubmitBtn() ? '{}' : 'false'?>,
  110. resetBtn:<?=$form->isResetBtn() ? 'true' : '{}'?>,
  111. iframeHelper:true,
  112. global:{
  113. upload: {
  114. props:{
  115. onExceededSize: function (file) {
  116. vm.$Message.error(file.name + '超出指定大小限制');
  117. },
  118. onFormatError: function () {
  119. vm.$Message.error(file.name + '格式验证失败');
  120. },
  121. onError: function (error) {
  122. vm.$Message.error(file.name + '上传失败,(' + error + ')');
  123. },
  124. onSuccess: function (res, file) {
  125. if (res.code == 200) {
  126. file.url = res.data.filePath;
  127. } else {
  128. vm.$Message.error(res.msg);
  129. }
  130. },
  131. },
  132. },
  133. },
  134. //表单提交事件
  135. onSubmit: function (formData) {
  136. $f.btn.loading(true);
  137. $.ajax({
  138. url: '<?=$form->getAction()?>',
  139. type: '<?=$form->getMethod()?>',
  140. dataType: 'json',
  141. data: formData,
  142. success: function (res) {
  143. if (res.code == 200) {
  144. vm.$Message.success(res.msg);
  145. $f.btn.loading(false);
  146. formCreate.formSuccess && formCreate.formSuccess(res, $f, formData);
  147. callback && callback(0, res, $f, formData);
  148. //TODO 表单提交成功!
  149. } else {
  150. vm.$Message.error(res.msg || '表单提交失败');
  151. $f.btn.loading(false);
  152. callback && callback(1, res, $f, formData);
  153. //TODO 表单提交失败
  154. }
  155. },
  156. error: function () {
  157. vm.$Message.error('表单提交失败');
  158. $f.btn.loading(false);
  159. }
  160. });
  161. }
  162. });
  163. return $f;
  164. };
  165. return window[name];
  166. }());
  167. window.$f = create();
  168. })();
  169. </script>
  170. </html>