form.html 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. <div class="think-box-shadow">
  2. <form class="layui-form layui-card" action="{:request()->url()}" data-auto="true" method="post" autocomplete="off">
  3. <div class="layui-card-body">
  4. <div class="layui-form-item">
  5. <label class="layui-form-label label-required">推送类型</label>
  6. <div class="layui-input-inline">
  7. <select name="type" lay-filter ="type">
  8. {foreach [2=>'搜索标签',3=>'模块详情',4=>'智能标签'] as $ck=>$cv}
  9. {if isset($vo.type)}
  10. <option {if $vo.type == $ck } selected {/if} value="{$ck}">{$cv}</option>
  11. {else}
  12. <option {if $ck == 2 } selected {/if} value="{$ck}">{$cv}</option>
  13. {/if}
  14. {/foreach}
  15. </select>
  16. </div>
  17. </div>
  18. <div class="layui-form-item">
  19. <label class="layui-form-label ">标签</label>
  20. <div class="layui-input-block">
  21. <input name="label" value='{$vo.label|default=""}' placeholder="请输入标签 不填默认全部发送" class="layui-input">
  22. </div>
  23. </div>
  24. <div class="layui-form-item">
  25. <label class="layui-form-label label-required">标题</label>
  26. <div class="layui-input-block">
  27. <input name="title" required value='{$vo.title|default=""}' placeholder="请输入推送标题" class="layui-input">
  28. </div>
  29. </div>
  30. <div class="label_div layui-form-item" {if !isset($vo.type) || $vo.type !== 4}style="display:none" {/if}>
  31. <label class="layui-form-label label-required">智能标签</label>
  32. <div class="layui-input-block">
  33. <div id="demo1"></div>
  34. </div>
  35. </div>
  36. <div class="module_div" {if !isset($vo.type) || $vo.type == 2}style="display:none" {/if}>
  37. <div class="layui-form-item">
  38. <label class="layui-form-label label-required">模块</label>
  39. <div class="layui-input-inline">
  40. <select name="module" lay-filter ="module">
  41. {foreach $module_arr as $ck=>$cv}
  42. <option data-sel_module="{$ck}" {if isset($vo.module) && $vo.module == $ck } selected {/if} value="{$ck}">{$cv}</option>
  43. {/foreach}
  44. </select>
  45. </div>
  46. </div>
  47. <div class="layui-form-item">
  48. <label class="layui-form-label label-required">详情</label>
  49. <div class="layui-input-inline">
  50. <select name="first_id" id="first_id" lay-filter ="first_id" lay-search="">
  51. </select>
  52. </div>
  53. <div class="layui-input-inline second_div">
  54. <select name="second_id" id="second_id" lay-filter ="second_id" lay-search="">
  55. </select>
  56. </div>
  57. </div>
  58. </div>
  59. <div class="layui-form-item">
  60. <label class="layui-form-label label-required">推送内容</label>
  61. <div class="layui-input-block">
  62. <textarea name="content" required rows="10" cols="98">{$vo.content|default=''}</textarea>
  63. </div>
  64. </div>
  65. <div class="layui-form-item">
  66. <label class="layui-form-label label-required">是否定时推送</label>
  67. <div class="layui-input-inline">
  68. <select name="is_regular" lay-filter ="is_regular">
  69. {if isset($vo.is_regular)}
  70. <option {if $vo.type == 1 } selected {/if} value="1">否</option>
  71. <option {if $vo.type == 0 } selected {/if} value="0">是</option>
  72. {else}
  73. <option selected value="1">否</option>
  74. <option value="0">是</option>
  75. {/if}
  76. </select>
  77. </div>
  78. </div>
  79. <div class="layui-form-item push_time" {if !isset($vo.is_regular) || $vo.is_regular == 1}style="display:none"{/if}>
  80. <label class="layui-form-label label-required">推送时间</label>
  81. <div class="layui-input-block">
  82. <input name="push_time" id="push_time" required class="layui-input" placeholder="" value="{$vo.push_time|default=''}">
  83. </div>
  84. </div>
  85. {notempty name='vo.id'}<input type='hidden' value='{$vo.id}' name='id'>{/notempty}
  86. <div class="layui-form-item text-center">
  87. <button class="layui-btn" type='submit'>保 存</button>
  88. <button class="layui-btn layui-btn-danger" type='button' data-close>取消编辑</button>
  89. </div>
  90. </div>
  91. </form>
  92. <!-- <script src="__ROOT__/static/xm-select.js"></script>-->
  93. <script type="text/javascript" src="https://webapi.amap.com/ui/1.0/main.js?v=1.0.11"></script>
  94. <script src="https://webapi.amap.com/maps?v=1.4.15&key=5295cbb966c063bde1ed33c1de7ed6bd&callback=init"></script>
  95. <script type="text/javascript" src="https://cache.amap.com/lbs/static/addToolbar.js"></script>
  96. <script>
  97. layui.use('form', function () {
  98. var form = layui.form;
  99. //日期时间范围
  100. laydate.render({
  101. elem: '#push_time'
  102. ,type: 'datetime'
  103. });
  104. //监听指定开关
  105. })
  106. form.on('select(is_regular)', function(data) {
  107. if (data.value == 0) {
  108. $(".push_time").show();
  109. } else {
  110. $(".push_time").hide();
  111. }
  112. })
  113. </script>
  114. <script>
  115. var user_label = {:json_encode($user_label)};
  116. console.log(user_label);
  117. var demo1 = xmSelect.render({
  118. el: '#demo1',
  119. language: 'zn',
  120. filterable: true,
  121. data: user_label
  122. })
  123. </script>
  124. <script>
  125. form.on('select(type)', function(data){
  126. if(data.value == 3) {
  127. $(".module_div").show();
  128. }else{
  129. $(".module_div").hide();
  130. }
  131. if(data.value == 4) {
  132. $(".label_div").show();
  133. $(".module_div").show();
  134. }else{
  135. $(".label_div").hide();
  136. }
  137. window.form.render();
  138. })
  139. var sel_first = {:isset($vo['first_id']) ? $vo['first_id']:0};
  140. var sel_second = {:isset($vo['second_id']) ? $vo['second_id']:0};
  141. var module_list = {:json_encode($module_list)};
  142. // 分类选择监听
  143. var arr = ['video','article','datum','supplier','recruit','mall'];
  144. first(1);
  145. form.on('select(module)', function(data){
  146. first(2)
  147. })
  148. // 详情关联监听
  149. form.on('select(first_id)', function(data){
  150. second(2);
  151. })
  152. function first(source) {
  153. sel_module = $("select[name='module']").find("option:selected").data('sel_module');
  154. if(arr.indexOf(sel_module) != -1) {
  155. $(".second_div").show();
  156. }else{
  157. $(".second_div").hide();
  158. }
  159. var cl_html = '<option value="0">请选择</option>';
  160. if(sel_module == '') {
  161. $("select[name='first_id']").html(cl_html);
  162. $("select[name='second_id']").html(cl_html);
  163. window.form.render();
  164. return true;
  165. }else{
  166. $.each(module_list,function (ck,cv) {
  167. if(cv.module == sel_module) {
  168. if(source == 1 && sel_first == cv.id) {
  169. cl_html +='<option selected value="'+cv.id+'">'+cv.title+'</option>';
  170. }else{
  171. cl_html +='<option value="'+cv.id+'">'+cv.title+'</option>';
  172. }
  173. }
  174. })
  175. $("select[name='first_id']").html(cl_html);
  176. $("select[name='second_id']").html('');
  177. }
  178. second(source);
  179. window.form.render();
  180. }
  181. function second(source) {
  182. var cl_html = '<option value="0">请选择</option>';
  183. sel_module = $("select[name='module']").find("option:selected").data('sel_module');
  184. first_id = $("select[name='first_id']").find("option:selected").val();
  185. $.each(module_list,function (ck,cv) {
  186. if(sel_module == cv.module && first_id == cv.id && arr.indexOf(sel_module) != -1) {
  187. $.each(cv.children,function (sk,sv) {
  188. if(source == 1 && sel_second == sv.id) {
  189. cl_html +='<option selected value="'+sv.id+'">'+sv.title+'</option>';
  190. }else{
  191. cl_html +='<option value="'+sv.id+'">'+sv.title+'</option>';
  192. }
  193. })
  194. $("select[name='second_id']").html(cl_html);
  195. $(".second_div").show();
  196. form.render();
  197. }
  198. })
  199. }
  200. </script>
  201. </div>