初始化项目
This commit is contained in:
96
application/admin/view/menu/edit.html
Normal file
96
application/admin/view/menu/edit.html
Normal file
@@ -0,0 +1,96 @@
|
||||
{extend name="public/base"/}
|
||||
{block name="body"}
|
||||
<div class="main-box clearfix">
|
||||
<header class="main-box-header clearfix">
|
||||
<div class="pull-left">
|
||||
<h2>{:isset($info['id'])?'编辑':'新增'}后台菜单</h2>
|
||||
</div>
|
||||
<div class="pull-right"></div>
|
||||
</header>
|
||||
<div class="main-box-body clearfix">
|
||||
<form method="post" class="form form-horizontal">
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">标题</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" class="form-control" name="title" value="{$info.title|default=''}" style="width: 80%">
|
||||
<span class="help-block">(用于后台显示的配置标题)</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">小图标</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" class="form-control" name="icon" value="{$info.icon|default=''}" style="width: 80%">
|
||||
<span class="help-block">(用于显示在菜单左侧,不填则不显示)</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">排序</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" class="form-control" name="sort" value="{$info.sort|default=0}" style="width: 60%">
|
||||
<span class="help-block">(用于分组显示的顺序)</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">链接</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" class="form-control" name="url" value="{$info['url']|default=''}" style="width: 80%">
|
||||
<span class="help-block">(U函数解析的URL或者外链)</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">上级菜单</label>
|
||||
<div class="col-lg-10">
|
||||
<select name="pid" class="form-control" style="width: 50%">
|
||||
{volist name="Menus" id="menu"}
|
||||
<option value="{$menu['id']}" {if $info['pid'] == $menu['id']}selected{/if}>{$menu.title_show}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
<span class="help-block">(所属的上级菜单)</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">分组</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" class="form-control" name="group" value="{$info['group']|default=''}" style="width: 50%">
|
||||
<span class="help-block">(用于左侧分组二级菜单)</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">是否隐藏</label>
|
||||
<div class="col-lg-1">
|
||||
<select name="hide" class="form-control">
|
||||
<option value="0" >否</option>
|
||||
<option value="1" {if isset($info['hide']) && $info['hide']==1}selected{/if}>是
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">仅开发者模式可见</label>
|
||||
<div class="col-lg-1">
|
||||
<select name="is_dev" class="form-control">
|
||||
<option value="0" >否</option>
|
||||
<option value="1" {if isset($info['is_dev']) && $info['is_dev']==1}selected{/if}>是
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">说明</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" class="form-control" name="tip" value="{$info.tip|default=''}" style="width: 60%;">
|
||||
<span class="help-block">(菜单详细说明)</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<div class="col-lg-offset-2 col-lg-10">
|
||||
<input type="hidden" name="id" value="{$info['id']|default=''}">
|
||||
<button class="btn btn-success submit-btn ajax-post" type="submit" target-form="form-horizontal">确 定</button>
|
||||
<button class="btn btn-danger btn-return" onclick="javascript:history.back(-1);return false;">返 回</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
29
application/admin/view/menu/import.html
Normal file
29
application/admin/view/menu/import.html
Normal file
@@ -0,0 +1,29 @@
|
||||
{extend name="public/base"/}
|
||||
{block name="body"}
|
||||
<div class="main-box clearfix">
|
||||
<header class="main-box-header clearfix">
|
||||
<div class="pull-left">
|
||||
<h2>批量导入 [{$data['title']|default='顶级菜单'}]</h2>
|
||||
</div>
|
||||
</header>
|
||||
<div class="main-box-body clearfix">
|
||||
<form id="form" action="{:url('import')}" method="post" class="form form-horizontal">
|
||||
<!-- 基础文档模型 -->
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">导入的内容</label>
|
||||
<div class="col-lg-10">
|
||||
<textarea name="tree" class="form-control" style="width:80%; height:160px;"></textarea>
|
||||
<span class="help-block"><b>导入格式:</b><br/>首页|Index/index|0|分组名称<br/>更新缓存|Index/clear|0|分组名称<br/>(请按照导入格式输入)</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<div class="col-lg-offset-2 col-lg-10">
|
||||
<input type="hidden" name="id" value="{$info.id|default=''}">
|
||||
<button class="btn btn-success submit-btn ajax-post" type="submit" target-form="form-horizontal">确 定</button>
|
||||
<button class="btn btn-danger btn-return" onclick="javascript:history.back(-1);return false;">返 回</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
120
application/admin/view/menu/index.html
Normal file
120
application/admin/view/menu/index.html
Normal file
@@ -0,0 +1,120 @@
|
||||
{extend name="public/base"/}
|
||||
{block name="style"}
|
||||
<link rel="stylesheet" type="text/css" href="__PUBLIC__/css/libs/bootstrap-editable.css">
|
||||
{/block}
|
||||
{block name="body"}
|
||||
<div class="main-box clearfix">
|
||||
<header class="main-box-header clearfix">
|
||||
<div class="pull-left">
|
||||
<h2>{present name="data"}[ {$data['title']} ] 子{/present}菜单管理</h2>
|
||||
</div>
|
||||
<div class="pull-right">
|
||||
<!-- <div class="search-form pull-left">
|
||||
<div class="form-group">
|
||||
<input type="text" name="title" class="form-control" value="{:input('title')}"
|
||||
placeholder="请输入菜单名称">
|
||||
<span class="input-group-btn"><a class="btn btn-default" href="javascript:;" id="search" url="__SELF__"><i class="icon-search"></i></a></span>
|
||||
</div>
|
||||
</div> -->
|
||||
<a class="btn btn-primary" href="{:url('add',array('pid'=>input('get.pid',0)))}">新 增</a>
|
||||
<button class="btn btn-danger ajax-post confirm" url="{:url('del')}" target-form="ids">删 除</button>
|
||||
<a class="btn btn-success" href="{:url('import',array('pid'=>input('get.pid',0)))}">导 入</a>
|
||||
</div>
|
||||
</header>
|
||||
<div class="main-box-body clearfix">
|
||||
<form class="ids">
|
||||
<div class="table-responsive clearfix">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th class="row-selected">
|
||||
<input class="checkbox check-all" type="checkbox">
|
||||
</th>
|
||||
<th>ID</th>
|
||||
<th>名称</th>
|
||||
<th>上级菜单</th>
|
||||
<th>分组</th>
|
||||
<th>URL</th>
|
||||
<th>排序</th>
|
||||
<th>仅开发者模式显示</th>
|
||||
<th>隐藏</th>
|
||||
<th>操作</th>
|
||||
</tr>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
{notempty name="list"}
|
||||
{volist name="list" id="menu"}
|
||||
<tr>
|
||||
<td><input class="ids row-selected" type="checkbox" name="id[]" value="{$menu.id}"></td>
|
||||
<td>{$menu.id}</td>
|
||||
<td>
|
||||
{$menu['level_show']}
|
||||
<a href="#" class="editable editable-click" data-id="{$menu['id']}" data-name="title" data-type="text" data-pk="{$menu['id']}" data-url="{:url('editable')}">{$menu['title']}</a>
|
||||
<a class="add-sub-cate" title="添加子分类" href="{:url('add?pid='.$menu['id'])}">
|
||||
<i class="fa fa-plus-square"></i>
|
||||
</a>
|
||||
</td>
|
||||
<td>{$menu.up_title|default='无'}</td>
|
||||
<td>{$menu.group}</td>
|
||||
<td>{$menu.url}</td>
|
||||
<td><a href="#" class="editable editable-click" data-id="{$menu['id']}" data-name="sort" data-type="text" data-pk="{$menu['id']}" data-url="{:url('editable')}">{$menu['sort']}</a></td>
|
||||
<td>
|
||||
<a href="{:url('toogleDev',array('id'=>$menu['id'],'value'=>abs($menu['is_dev']-1)))}"
|
||||
class="ajax-get">
|
||||
{$menu.is_dev_text}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a href="{:url('toogleHide',array('id'=>$menu['id'],'value'=>abs($menu['hide']-1)))}"
|
||||
class="ajax-get">
|
||||
{$menu.hide_text}
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a title="编辑" href="{:url('edit?id='.$menu['id'])}">编辑</a>
|
||||
<a class="confirm ajax-get" title="删除" href="{:url('del?id='.$menu['id'])}">删除</a>
|
||||
</td>
|
||||
</tr>
|
||||
{/volist}
|
||||
{else/}
|
||||
<td colspan="10" class="text-center"> aOh! 暂时还没有内容!</td>
|
||||
{/notempty}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
{block name="script"}
|
||||
<script type="text/javascript" src="__PUBLIC__/js/bootstrap-editable.min.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(function () {
|
||||
$.fn.editable.defaults.mode = 'popup';
|
||||
$.fn.editableform.buttons = '<button type="submit" class="btn btn-success editable-submit btn-mini"><i class="fa fa-check-square-o fa-white"></i></button>' +
|
||||
'<button type="button" class="btn editable-cancel btn-mini"><i class="fa fa-times"></i></button>';
|
||||
$('.editable').editable();
|
||||
//搜索功能
|
||||
$("#search").click(function () {
|
||||
var url = $(this).attr('url');
|
||||
var query = $('.search-form').find('input').serialize();
|
||||
query = query.replace(/(&|^)(\w*?\d*?\-*?_*?)*?=?((?=&)|(?=$))/g, '');
|
||||
query = query.replace(/^&/g, '');
|
||||
if (url.indexOf('?') > 0) {
|
||||
url += '&' + query;
|
||||
} else {
|
||||
url += '?' + query;
|
||||
}
|
||||
window.location.href = url;
|
||||
});
|
||||
//回车搜索
|
||||
$(".search-input").keyup(function (e) {
|
||||
if (e.keyCode === 13) {
|
||||
$("#search").click();
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
{/block}
|
||||
111
application/admin/view/menu/sort.html
Normal file
111
application/admin/view/menu/sort.html
Normal file
@@ -0,0 +1,111 @@
|
||||
{extend name="public/base"/}
|
||||
{block name="body"}
|
||||
<div class="main-box clearfix">
|
||||
<header class="main-box-header clearfix">
|
||||
<div class="pull-left">
|
||||
<h2>菜单排序 [ <a href="{:url('index',array('pid'=>I('pid')))}">返回列表</a> ]</h2>
|
||||
</div>
|
||||
</header>
|
||||
<div class="main-box-body clearfix">
|
||||
<form action="{:url('sort')}" method="post" class="form form-horizontal">
|
||||
<div class="form-group">
|
||||
<div class="col-lg-2">
|
||||
<select value="" size="8" class="form-control">
|
||||
{volist name="list" id="vo"}
|
||||
<option class="ids" title="{$vo.title}" value="{$vo.id}">{$vo.title}</option>
|
||||
{/volist}
|
||||
</select>
|
||||
</div>
|
||||
<div class="col-lg-2">
|
||||
<button class="top btn btn-primary btn-block" type="button"><i class="fa fa-arrow-up"></i> 第 一</button>
|
||||
<button class="up btn btn-primary btn-block" type="button"><i class="fa fa-chevron-up"></i> 上 移</button>
|
||||
<button class="down btn btn-primary btn-block" type="button"><i class="fa fa-chevron-down"></i> 下 移</button>
|
||||
<button class="bottom btn btn-primary btn-block" type="button"><i class="fa fa-arrow-down"></i> 最 后</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="sort_bottom form-group">
|
||||
<div class="col-lg-12">
|
||||
<input type="hidden" name="ids">
|
||||
<button class="sort_confirm btn btn-primary submit-btn" type="button">确 定</button>
|
||||
<button class="sort_cancel btn btn-dafault btn-return" type="button" url="{$Think.cookie.__forward__}">返 回</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
{/block}
|
||||
|
||||
{block name="script"}
|
||||
<script type="text/javascript">
|
||||
$(function(){
|
||||
sort();
|
||||
$(".top").click(function(){
|
||||
rest();
|
||||
$("option:selected").prependTo("select");
|
||||
sort();
|
||||
})
|
||||
$(".bottom").click(function(){
|
||||
rest();
|
||||
$("option:selected").appendTo("select");
|
||||
sort();
|
||||
})
|
||||
$(".up").click(function(){
|
||||
rest();
|
||||
$("option:selected").after($("option:selected").prev());
|
||||
sort();
|
||||
})
|
||||
$(".down").click(function(){
|
||||
rest();
|
||||
$("option:selected").before($("option:selected").next());
|
||||
sort();
|
||||
})
|
||||
$(".search").click(function(){
|
||||
var v = $("input").val();
|
||||
$("option:contains("+v+")").attr('selected','selected');
|
||||
})
|
||||
function sort(){
|
||||
$('option').text(function(){return ($(this).index()+1)+'.'+$(this).text()});
|
||||
}
|
||||
|
||||
//重置所有option文字。
|
||||
function rest(){
|
||||
$('option').text(function(){
|
||||
return $(this).text().split('.')[1]
|
||||
});
|
||||
}
|
||||
|
||||
//获取排序并提交
|
||||
$('.sort_confirm').click(function(){
|
||||
var arr = new Array();
|
||||
$('.ids').each(function(){
|
||||
arr.push($(this).val());
|
||||
});
|
||||
$('input[name=ids]').val(arr.join(','));
|
||||
$.post(
|
||||
$('form').attr('action'),
|
||||
{
|
||||
'ids' : arr.join(',')
|
||||
},
|
||||
function(data){
|
||||
if (data.status) {
|
||||
updateAlert(data.info + ' 页面即将自动跳转~','alert-success');
|
||||
}else{
|
||||
updateAlert(data.info,'alert-success');
|
||||
}
|
||||
setTimeout(function(){
|
||||
if (data.status) {
|
||||
$('.sort_cancel').click();
|
||||
}
|
||||
},1500);
|
||||
},
|
||||
'json'
|
||||
);
|
||||
});
|
||||
|
||||
//点击取消按钮
|
||||
$('.sort_cancel').click(function(){
|
||||
window.location.href = $(this).attr('url');
|
||||
});
|
||||
})
|
||||
</script>
|
||||
{/block}
|
||||
Reference in New Issue
Block a user