menu-list.html 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253
  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <title>列表页面</title>
  5. <!--#include file="common/_header.html"-->
  6. <link rel="stylesheet" type="text/css" href="lib/select2/select2.min.css" />
  7. <style>
  8. .table .center{
  9. text-align:center;
  10. }
  11. </style>
  12. </head>
  13. <body>
  14. <nav class="breadcrumb">
  15. <i class="Hui-iconfont">&#xe67f;</i> 首页 <span class="c-gray en">&gt;</span> 菜单列表
  16. <a class="btn btn-success radius r"
  17. style="line-height: 1.6em; margin-top: 3px"
  18. href="javascript:location.replace(location.href);" title="刷新">
  19. <i class="Hui-iconfont">&#xe68f;</i></a>
  20. </nav>
  21. <div class="page-container">
  22. <div class="container mb-10">
  23. <form>
  24. <div class="row mb-10">
  25. <input id="menuName" type="text" class="input-text" style="width:250px" placeholder="菜单名称">
  26. <select id="parentSelect" class="select2" style="width:250px;" data-placeholder="选择上级菜单">
  27. <option value=""></option>
  28. </select>
  29. <button id="btnSearch" type="submit" class="btn btn-success" id="" name=""><i class="Hui-iconfont">&#xe665;</i> 查询</button>
  30. <button id="btnReset" type="reset" class="btn btn-default"><i class="Hui-iconfont">&#xe68f;</i> 重置</button>
  31. </div>
  32. </form>
  33. </div>
  34. <div class="cl pd-5 bg-1 bk-gray">
  35. <span class="l">
  36. <a href="javascript:batch_del();" class="btn btn-danger radius"><i class="Hui-iconfont">&#xe6e2;</i>批量删除</a>
  37. <a href="javascript:item_add();" class="btn btn-primary radius"><i class="Hui-iconfont">&#xe600;</i>添加</a>
  38. </span>
  39. </div>
  40. <div class="mt-20">
  41. <table id="grid1" class="table table-border table-bordered table-bg">
  42. <thead>
  43. <tr class="text-c">
  44. <th width="25"><input id="checkAll" type="checkbox" value="">选择</th>
  45. <th width="100">菜单名称</th>
  46. <th width="100">上级菜单</th>
  47. <th width="100">排序号</th>
  48. <th width="100">菜单地址</th>
  49. <th width="100">菜单类型</th>
  50. <th width="100">访问方式</th>
  51. <th width="100">创建时间</th>
  52. <th width="100">更新时间</th>
  53. <th width="100">操作</th>
  54. </tr>
  55. </thead>
  56. <tbody>
  57. </tbody>
  58. </table>
  59. </div>
  60. </div>
  61. <!--_footer 作为公共模版分离出去-->
  62. <!--#include file="common/_footer.html"-->
  63. <!--/_footer 作为公共模版分离出去-->
  64. <!--请在下方写此页面业务相关的脚本-->
  65. <script type="text/javascript" src="lib/My97DatePicker/4.8/WdatePicker.js"></script>
  66. <script type="text/javascript" src="lib/datatables/1.10.0/jquery.dataTables.min.js"></script>
  67. <script type="text/javascript" src="lib/laypage/1.2/laypage.js"></script>
  68. <script id="rowTmpl" type="text/template">
  69. <a href="javascript:item_edit('{{id}}')" class="ml-5" style="text-decoration:none"><i class="Hui-iconfont">&#xe6df;</i>编辑</a>
  70. <a href="javascript:item_del('{{id}}','{{name}}')" class="ml-5" style="text-decoration:none"><i class="Hui-iconfont">&#xe6e2;</i>删除</a>
  71. </script>
  72. <script type="text/javascript" src="lib/laypage/1.2/laypage.js"></script>
  73. <script type="text/javascript" src="scripts/global.js"></script>
  74. <script type="text/javascript" src="lib/select2/select2.full.js"></script>
  75. <script type="text/javascript" src="lib/select2/select2.zh-CN.js"></script>
  76. <script type="text/javascript">
  77. var path = global_backend_url;
  78. $(document).ready(function(){
  79. $('#grid1').dataTable({
  80. ajax: {
  81. url: path + "/menu/pageList",
  82. type: 'post',
  83. dataFilter: function(responseText){
  84. var jsonData = JSON.parse(responseText);
  85. // 处理返回json
  86. if(jsonData.result){
  87. return JSON.stringify(jsonData.data);
  88. }
  89. else{
  90. processError(jsonData);
  91. return null;
  92. }
  93. },
  94. data: function(searchParams){
  95. // 查询json
  96. searchParams["menuName"] = $("#menuName").val();
  97. searchParams["parentId"] = $("#parentSelect").val();
  98. }
  99. },
  100. serverSide: true,
  101. searching : false,
  102. ordering: false,
  103. columns: [
  104. {data:'id'},
  105. {data:'menuName'},
  106. {data:'parentName'},
  107. {data:'sortNo'},
  108. {data:'method'},
  109. {data:'menuUrl'},
  110. {data:'menuType'},
  111. {data:'createTime'},
  112. {data:'updateTime'},
  113. {"data":null}
  114. ],
  115. columnDefs: [
  116. {
  117. targets:0,
  118. sClass:'center',
  119. bSortable:false,
  120. render: function (data, type, row) {
  121. return '<input type="checkbox" name="checkItems" value="'+ data + '">';
  122. }
  123. },{
  124. targets:6,
  125. sClass:'center',
  126. bSortable:false,
  127. render: function (data, type, row) {
  128. if(data!=null){
  129. return data=='1' ? '前台页面' : '后台接口';
  130. }
  131. else{
  132. return '';
  133. }
  134. }
  135. },{
  136. targets:9,
  137. sClass:'center',
  138. bSortable:false,
  139. render: function (data, type, row) {
  140. return template("rowTmpl",{
  141. id: row.id
  142. });
  143. }
  144. }
  145. ]
  146. });
  147. $("#checkAll").change(function(){
  148. var checked = $(this).is(':checked');
  149. $("input[name='checkItems']").each(function(){
  150. $(this).attr("checked",checked);
  151. });
  152. });
  153. $("#btnSearch").click(function(){
  154. event.preventDefault();
  155. var table = $('#grid1').DataTable();
  156. table.ajax.reload();
  157. });
  158. $("#btnReset").click(function(){
  159. $(".select2").val(null).trigger('change');
  160. });
  161. });
  162. var menuOpts = {
  163. ajax: {
  164. url: global_backend_url + "/menu/query",
  165. dataType: 'json',
  166. delay: 250,
  167. method:'post',
  168. processResults: function (resp) {
  169. var results = resp.data.map(function(item){
  170. return {
  171. id : item.id,
  172. text : item.menuName
  173. }
  174. });
  175. return {
  176. results: results
  177. }
  178. }
  179. },
  180. language: "zh-CN",
  181. allowClear: true
  182. };
  183. $("#parentSelect").select2(menuOpts);
  184. function item_add(){
  185. layer_show("添加","menu-detail.html",600,400);
  186. }
  187. function item_edit(id){
  188. layer_show("编辑","menu-detail.html?id=" + id,600,400);
  189. }
  190. function item_del(id){
  191. layer.confirm("是否删除?",{
  192. btns:["是","否"]
  193. },function(){
  194. $.post(path + "/menu/delete/" + id,null,function(json){
  195. if(json.result){
  196. layer.msg("删除成功!",{icon:1,time:2000});
  197. reloadList();
  198. }
  199. else{
  200. layer.msg("删除失败!" + json.message);
  201. }
  202. });
  203. });
  204. }
  205. function reloadList(){
  206. $('#grid1').DataTable().ajax.reload(null,false);
  207. }
  208. function batch_del(){
  209. var arr = $("input[name='checkItems']:checked").map(function(){
  210. return $(this).val();
  211. }).get();
  212. if(arr.length==0){
  213. layer.msg("请选择记录!");
  214. return;
  215. }
  216. layer.confirm("是否删除选中项?",{
  217. btns:["是","否"]
  218. },function(){
  219. $.post(path + "/menu/batchDelete",{
  220. ids:arr.join(",")
  221. },function(json){
  222. if(json.result){
  223. layer.msg("删除成功!",{icon:1,time:2000});
  224. reloadList();
  225. }
  226. else{
  227. layer.msg("删除失败!" + json.message);
  228. }
  229. });
  230. })
  231. }
  232. </script>
  233. </body>
  234. </html>