thinkphp-wechat/application/admin/view/menu/index.html
Wenbin.Wang d49c9fde59 代码
2021-12-24 16:40:05 +08:00

204 lines
9.7 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{extend name="layout" /}
{block name="plugins-css"}
<link href="__LIBS__/jquery-nestable/jquery.nestable.css" rel="stylesheet" type="text/css" />
{/block}
{block name="content"}
<div class="alert alert-warning alert-dismissable">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<p><strong><i class="fa fa-fw fa-info-circle"></i> 提示:</strong>按住表头可拖动节点,调整后点击【保存节点】。</p>
</div>
<div class="row">
<div class="col-md-12">
<div class="block">
{notempty name="tab_nav"}
<ul class="nav nav-tabs">
{volist name="tab_nav['tab_list']" id="tab"}
<li {eq name="tab_nav.curr_tab" value="$key"}class="active"{/eq}>
<a href="{$tab.url}">{$tab.title}</a>
</li>
{/volist}
<li {eq name="tab_nav.curr_tab" value="module-sort"}class="active"{/eq}>
<a href="{:url('', ['group' => 'module-sort'])}">模块排序</a>
</li>
<li class="pull-right">
<ul class="block-options push-10-t push-10-r">
<li>
<button type="button" data-toggle="block-option" data-action="fullscreen_toggle"></button>
</li>
<li>
<button type="button" data-toggle="block-option" data-action="refresh_toggle" data-action-mode="demo"><i class="si si-refresh"></i></button>
</li>
<li>
<button type="button" data-toggle="block-option" data-action="content_toggle"></button>
</li>
<li>
<button type="button" data-toggle="block-option" data-action="close"><i class="si si-close"></i></button>
</li>
</ul>
</li>
</ul>
{else/}
<div class="block-header bg-gray-lighter">
<ul class="block-options">
<li>
<button type="button" data-toggle="block-option" data-action="fullscreen_toggle"></button>
</li>
<li>
<button type="button" data-toggle="block-option" data-action="refresh_toggle" data-action-mode="demo"><i class="si si-refresh"></i></button>
</li>
<li>
<button type="button" data-toggle="block-option" data-action="content_toggle"></button>
</li>
<li>
<button type="button" data-toggle="block-option" data-action="close"><i class="si si-close"></i></button>
</li>
</ul>
<h3 class="block-title">{$page_title|raw}</h3>
</div>
{/notempty}
<div class="block-content tab-content">
<div class="tab-pane active">
{notempty name="menus"}
<div class="row data-table-toolbar">
<div class="col-sm-12">
<form action="{$Request.url}" method="get">
<div class="toolbar-btn-action">
<a title="新增" class="btn btn-primary" href="{:url('add', ['module' => $Request.param.group])}"><i class="fa fa-plus-circle"></i> 新增</a>
<button title="保存" type="button" class="btn btn-default disabled" id="save" disabled><i class="fa fa-check-circle-o"></i> 保存节点</button>
<button title="隐藏禁用节点" type="button" class="btn btn-danger" id="hide_disable"><i class="fa fa-eye-slash"></i> 隐藏禁用节点</button>
<button title="显示禁用节点" type="button" class="btn btn-info" id="show_disable"><i class="fa fa-eye"></i> 显示禁用节点</button>
<button title="展开所有节点" type="button" class="btn btn-success" id="expand-all"><i class="fa fa-plus"></i> 展开所有节点</button>
<button title="收起所有节点" type="button" class="btn btn-warning" id="collapse-all"><i class="fa fa-minus"></i> 收起所有节点</button>
<span class="form-inline">
<input class="form-control" type="text" name="max" value="{$Request.get.max|default=''}" placeholder="显示层数">
</span>
</div>
</form>
</div>
</div>
<div class="dd" id="menu_list">
<ol class="dd-list">{$menus|raw}</ol>
</div>
{/notempty}
{notempty name="modules"}
<form action="{:url('')}" method="post" name="sort-form" class="sort-form">
<button title="保存" type="submit" class="btn btn-success push-10 ajax-post" target-form="sort-form">保存排序</button>
<div class="row">
<div class="col-md-12">
<div id="sortable" class="connectedSortable push-20">
{volist name="modules" id="module"}
<div class="sortable-item pull-left">
<input type="hidden" name="sort[]" value="{$key}">
<i class="{$module.icon}"></i> {$module.title}
</div>
{/volist}
</div>
</div>
</div>
</form>
{/notempty}
</div>
</div>
</div>
</div>
</div>
{/block}
{block name="script"}
<script src="__LIBS__/jquery-nestable/jquery.nestable.js"></script>
<script src="__LIBS__/jquery-ui/jquery-ui.min.js"></script>
<script>
$(document).ready(function(){
// 模块拖拽
$( "#sortable" ).sortable({
connectWith: ".connectedSortable"
}).disableSelection();
// 保存节点
$('#save').click(function(){
Dolphin.loading();
$.post("{:url('save')}", {menus: $('#menu_list').nestable('serialize')}, function(data) {
Dolphin.loading('hide');
if (data.code) {
$('#save').removeClass('btn-success').addClass('btn-default disabled');
Dolphin.notify(data.msg, 'success');
} else {
Dolphin.notify(data.msg, 'danger');
}
});
});
// 初始化节点拖拽
$('#menu_list').nestable({maxDepth:4}).on('change', function(){
$('#save').removeAttr("disabled").removeClass('btn-default disabled').addClass('btn-success');
});
// 隐藏禁用节点
$('#hide_disable').click(function(){
$('.dd-disable').hide();
});
// 显示禁用节点
$('#show_disable').click(function(){
$('.dd-disable').show();
});
// 展开所有节点
$('#expand-all').click(function(){
$('#menu_list').nestable('expandAll');
});
// 收起所有节点
$('#collapse-all').click(function(){
$('#menu_list').nestable('collapseAll');
});
// 禁用节点
$('.dd3-content').delegate('.disable', 'click', function(){
var self = $(this);
var ids = self.data('ids');
var ajax_url = '{:url("disable", ["table" => "admin_menu"])}';
Dolphin.loading();
$.post(ajax_url, {ids:ids}, function(data) {
Dolphin.loading('hide');
if (data.code) {
self.attr('data-original-title', '启用').removeClass('disable').addClass('enable')
.children().removeClass('fa-ban').addClass('fa-check-circle-o')
.closest('.dd-item')
.addClass('dd-disable');
} else {
Dolphin.notify(data.msg, 'danger');
}
});
return false;
});
// 启用节点
$('.dd3-content').delegate('.enable', 'click', function(){
var self = $(this);
var ids = self.data('ids');
var ajax_url = '{:url("enable", ["table" => "admin_menu"])}';
Dolphin.loading();
$.post(ajax_url, {ids:ids}, function(data) {
Dolphin.loading('hide');
if (data.code) {
self.attr('data-original-title', '禁用').removeClass('enable').addClass('disable')
.children().removeClass('fa-check-circle-o').addClass('fa-ban')
.closest('.dd-item')
.removeClass('dd-disable');
} else {
Dolphin.notify(data.msg, 'danger');
}
});
return false;
});
});
</script>
{/block}