123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta charset="utf-8">
- <title>layui</title>
- <meta name="renderer" content="webkit">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
- <link rel="stylesheet" href="__PUBLIC__/layui/css/layui.css" media="all">
- <link rel="stylesheet" href="__PUBLIC__/font-awesome/css/font-awesome.min.css" media="all"/>
- <link rel="stylesheet" href="__CSS__/admin.css" media="all">
- </head>
- <body style="padding:10px;">
- <div class="tplay-body-div">
- <div class="layui-tab">
- <ul class="layui-tab-title">
- <li class="layui-this">系统菜单</li>
- <li><a href="{:url('admin/menu/publish')}" class="a_menu">添加新菜单</a></li>
- </ul>
- </div>
- <div id="toolbar" style="display: none">
- <button class="layui-btn layui-btn-sm layui-btn-primary" id="open-all"><i
- class="layui-icon layui-icon-triangle-d"></i>展开
- </button>
- <button class="layui-btn layui-btn-sm layui-btn-primary" id="close-all"><i
- class="layui-icon layui-icon-triangle-r"></i>收缩
- </button>
- <button class="layui-btn layui-btn-sm" onclick="batchAdd()">批量添加</button>
- </div>
- <form class="layui-form" id="admin">
- <table class="layui-table layui-form" id="tree-table" lay-size="sm"></table>
- <button class="layui-btn layui-btn-sm" lay-submit lay-filter="admin" style="display: none" id="sort">更新排序
- </button>
- </form>
- {include file="public/foot"}
- <script type="text/javascript">
- layui.extend({
- treeTable: 'treeTable/js/treeTable'
- }).use(['treeTable', 'layer', 'form'], function () {
- var treeTable = layui.treeTable,
- form = layui.form,
- layer = layui.layer;
- //第一个实例
- var re = treeTable.render({
- elem: '#tree-table',
- url: '{:url("index")}', //数据接口
- icon_key: 'name',
- cols: [
- {
- key: 'sort', title: '排序', width: '40px', template: function (row) {
- return '<input type="text" name="orders[]" value="' + row.orders + '" style="width: 20px;" class="orders"><input type="hidden" name="id[]" value="' + row.id + '">';
- }
- },
- {key: 'id', title: 'ID', width: '40px'},
- {key: 'name', title: '名称', width: '250px'},
- {key: 'controller', title: '控制器', width: '100px'},
- {key: 'function', title: '方法', width: '100px'},
- {key: 'description', title: '备注', width: '100px'},
- {key: 'type_text', title: '状态', width: '100px'},
- {key: 'is_display_text', title: '类型', width: '120px'},
- {
- title: '操作', align: 'center', width: '120px',
- template: function (item) {
- var html = '<div class="layui-btn-group">';
- html += '<a href="publish?id=' + item.id + '" class="layui-btn layui-btn-xs a_menu layui-btn-primary" style="margin-right: 0;font-size:12px;"><i class="layui-icon"></i></a>';
- html += '<a href="publish?pid=' + item.id + '" class="layui-btn layui-btn-xs a_menu layui-btn-primary" style="margin-right: 0;font-size:12px;"><i class="layui-icon"></i></a>';
- html += '<a href="javascript:;" class="layui-btn layui-btn-xs layui-btn-primary delete" id="' + item.id + '" style="margin-right: 0;font-size:12px;"><i class="layui-icon"></i></a>';
- html += '</div>';
- return html;
- }
- }
- ],
- end: function (e) {
- form.render();
- if (e.data.length > 0) {
- $('#toolbar').show();
- $('#sort').show();
- }
- // 全部展开
- $('#open-all').click(function () {
- treeTable.openAll(re);
- })
- // 全部关闭
- $('#close-all').click(function () {
- treeTable.closeAll(re);
- })
- del();
- },
- });
- });
- </script>
- <form id="myForm" style="display:none;margin: 10px 30px;" class="layui-form alert-form">
- {empty name="noInsertRoutes"}当前没有路由可添加{/empty}
- {foreach name="noInsertRoutes" item="noInsertRoute" key="k"}
- <div class="layui-form-item">
- <div class="layui-inline">
- <div class="layui-input-inline">
- <select name="pid[{$k}]" lay-search="" lay-verify="required">
- <option value="">选择上级节点</option>
- <option value="0">作为顶级菜单</option>
- {volist name="$menus" id="vo"}
- <option value="{$vo.id}">{$vo.str}{$vo.name}</option>
- {/volist}
- </select>
- </div>
- <div class="layui-input-inline" style="width: 150px;">
- <input type="text" name="name[{$k}]" placeholder="节点名称" autocomplete="off" class="layui-input">
- </div>
- <div class="layui-input-inline" style="width: 100px;">
- <input type="text" name="module[{$k}]" placeholder="模块名" value="{$noInsertRoute[0]}" autocomplete="off" class="layui-input">
- </div>
- <div class="layui-input-inline" style="width: 100px;">
- <input type="text" name="controller[{$k}]" placeholder="控制器名" value="{$noInsertRoute[1]}" autocomplete="off" class="layui-input">
- </div>
- <div class="layui-input-inline" style="width: 100px;">
- <input type="text" name="function[{$k}]" placeholder="方法名" value="{$noInsertRoute[2]}" autocomplete="off" class="layui-input">
- </div>
- <div class="layui-input-inline" style="width: 140px;">
- <select name="is_display[{$k}]">
- <option value="2">只做为操作节点</option>
- <option value="1">显示在左侧菜单</option>
- </select>
- </div>
- <div class="layui-input-inline" style="width: 100px;">
- <select name="type[{$k}]">
- <option value="1">权限节点</option>
- <option value="2">普通节点</option>
- </select>
- </div>
- </div>
- </div>
- {/foreach}
- </form>
- <script>
- function batchAdd() {
- var fromobj = $('#myForm');
- if(fromobj.text().trim() == '当前没有路由可添加'){
- layer.msg('当前没有路由可添加');
- return;
- }
- //弹出框
- layer.open({
- type: 1,
- title: '未添加的路由 (只有填上节点名称的才会添加路由)',
- area: ['1100px', '500px'],
- id: 'layerDemo', //防止重复弹出
- content: fromobj,
- btn: ['批量添加', '关闭'],
- btnAlign: 'c', //按钮居中
- yes: function (index, layero) {
- var post_data = fromobj.serializeJson();
- $.post("{:url('admin/menu/batchAdd')}", post_data, function (json) {
- layer.msg(json.msg);
- if (json.code > 0) {
- layer.close(index);
- location.reload()
- }
- });
- },
- btn2: function (index) {
- },
- zIndex: 999 //重点1
- });
- }
- </script>
- <script>
- function del() {
- $('.delete').click(function () {
- var id = $(this).attr('id');
- layer.confirm('确定要删除?', function (index) {
- $.ajax({
- url: "{:url('admin/menu/delete')}",
- data: {id: id},
- dataType: 'json',
- success: function (res) {
- layer.msg(res.msg);
- if (res.code == 1) {
- setTimeout(function () {
- location.href = res.url;
- }, 1500)
- }
- }
- })
- })
- })
- }
- //排序
- layui.use(['layer', 'form'], function () {
- var layer = layui.layer,
- $ = layui.jquery,
- form = layui.form;
- $(window).on('load', function () {
- form.on('submit(admin)', function (data) {
- $.ajax({
- url: "{:url('admin/menu/orders')}",
- data: $('#admin').serialize(),
- type: 'post',
- dataType: 'json',
- async: false,
- success: function (res) {
- if (res.code == 1) {
- layer.alert(res.msg, function (index) {
- location.href = res.url;
- })
- } else {
- layer.msg(res.msg);
- }
- }
- })
- return false;
- });
- });
- });
- </script>
- </div>
- </body>
- </html>
|