后台更新

This commit is contained in:
2019-09-01 22:49:21 +08:00
parent dd9fbd85fd
commit 0235d72e44
12 changed files with 789 additions and 373 deletions

View File

@@ -38,6 +38,8 @@ class Menu extends Admin{
$this->data['data'] = $res; $this->data['data'] = $res;
return $this->data; return $this->data;
}else{
return $this->data;
} }
} }
@@ -52,6 +54,9 @@ class Menu extends Admin{
$this->data['data'] = $res; $this->data['data'] = $res;
return $this->data; return $this->data;
}else{
$this->data['template'] = 'edit';
return $this->data;
} }
} }

View File

@@ -16,7 +16,15 @@ class User extends Admin{
* @title 系统首页 * @title 系统首页
*/ */
public function index(){ public function index(){
if ($this->request->isAjax()) {
return $this->data;
}
}
/**
* @title 个人资料
*/
public function profile(){
} }
/** /**

View File

@@ -13,7 +13,7 @@
<link rel="stylesheet" href="__static__/plugins/Ionicons/css/ionicons.min.css"> <link rel="stylesheet" href="__static__/plugins/Ionicons/css/ionicons.min.css">
<!-- Theme style --> <!-- Theme style -->
<link rel="stylesheet" href="__css__/sentcms.min.css"> <link rel="stylesheet" href="__css__/sentcms.min.css">
<link rel="stylesheet" href="__css__/style.css?v={$sent_version}"> <link rel="stylesheet" href="__css__/style.css?v={:time()}{$sent_version}">
<!-- AdminLTE Skins. Choose a skin from the css/skins <!-- AdminLTE Skins. Choose a skin from the css/skins
folder instead of downloading all of them to reduce the load. --> folder instead of downloading all of them to reduce the load. -->
<link rel="stylesheet" href="__css__/themes.css"> <link rel="stylesheet" href="__css__/themes.css">

View File

@@ -1,101 +1,91 @@
{extend name="admin/base"/} {extend name="admin/base"/}
{block name="style"} {block name="head"}
<link rel="stylesheet" type="text/css" href="__PUBLIC__/css/libs/bootstrap-editable.css"> <script type="text/javascript" src="__static__/plugins/bootstrap-treetable/bootstrap-treetable.js"></script>
{/block} {/block}
{block name="body"} {block name="body"}
<div class="main-box no-header clearfix"> <div class="box box-primary">
<header class="box-header with-border"> <header class="box-header with-border">
<h3 class="box-title">{$meta_title|default='新功能'}</h3> <h3 class="box-title">栏目管理</h3>
<div class="pull-right"> <div class="pull-right">
<a class="btn btn-primary" href="{:url('add')}"><i class="fa fa-plus-circle fa-lg"></i> 新 增</a>
</div> </div>
</header> </header>
<div class="box-body"> <div class="box-body">
<!-- 表格列表 --> <div class="btn-group-sm" id="toolbar" role="group">
<div class="table-responsive clearfix"> <a class="btn btn-success" onclick="$.operate.add(0)">
<div class="tabs-wrapper"> <i class="fa fa-plus"></i> 新增
<ul class="nav nav-tabs"> </a>
<li {if $model_id == ''}class="active"{/if}><a href="{:url('admin/category/index')}">全部</a></li> <a class="btn btn-primary" onclick="$.operate.edit()">
{volist name="model_list" id="item"} <i class="fa fa-edit"></i> 修改
<li {if $item['id'] == $model_id}class="active"{/if}> </a>
<a href="{:url('admin/category/index',array('model_id'=>$item['id']))}">{$item['title']}</a> <a class="btn btn-info" id="expandAllBtn">
</li> <i class="fa fa-exchange"></i> 展开/折叠
{/volist} </a>
</ul>
<div class="tab-content">
<div class="tab-pane fade in active" id="tab-home">
<table class="table table-hover">
<thead>
<tr>
<th width="30"><input class="checkbox check-all" type="checkbox"></th>
<th width="60">ID</th>
<th>名称</th>
<th width="120">排序</th>
<th width="120">发布</th>
<th width="120">状态</th>
<th width="120">生成导航</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{volist name="tree" id="list"}
<tr>
<td><input class="ids row-selected" type="checkbox" name="id[]" value="{$list.id}"></td>
<td>{$list['id']}</td>
<td>
{$list['level_show']}
<a href="#" class="editable editable-click" data-id="{$list['id']}" data-name="title" data-type="text" data-pk="{$list['id']}" data-url="{:url('editable')}">{$list['title']}</a>
<a class="add-sub-cate" title="添加子分类" href="{:url('add?pid='.$list['id'])}">
<i class="fa fa-plus-square"></i>
</a>
</td>
<td><a href="#" class="editable editable-click" data-id="{$list['id']}" data-name="sort" data-type="text" data-pk="{$list['id']}" data-url="{:url('editable')}">{$list['sort']}</a></td>
<td>{$list['allow_publish']?'是':'否'}</td>
<td>
{if $list['status']}
<span class="label label-primary">启用</span>
{else/}
<span class="label label-danger">禁用</span>
{/if}
</td>
<td>
{if $list['ismenu']}
<a href="{:url('admin/channel/del?id='.$list['ismenu'])}" class="ajax-get"><span class="label label-primary">已生成</span></a>
{else/}
<a href="{:url('add_channel?title='.$list['title'].'&model_id='.$list['model_id'].'&active='.$list['name'].'&mid='.$list['id'])}" ><span class="label label-danger">未生成</span></a>
{/if}
</td>
<td>
<a title="编辑" href="{:url('edit?id='.$list['id'].'&pid='.$list['pid'])}">编辑</a>
{if $list['status']}
<a href="{:url('status?id='.$list['id'].'&status=0')}" class="ajax-get">禁用</a>
{else/}
<a href="{:url('status?id='.$list['id'].'&status=1')}" class="ajax-get">启用</a>
{/if}
<a title="删除" href="{:url('remove?id='.$list['id'])}" class="confirm ajax-get">删除</a>
<a title="移动" href="{:url('operate?type=move&from='.$list['id'])}">移动</a>
<a title="合并" href="{:url('operate?type=merge&from='.$list['id'])}">合并</a>
</td>
</tr>
{/volist}
</tbody>
</table>
</div>
</div>
</div>
</div> </div>
<!-- /表格列表 --> <div class="table-striped">
<table id="bootstrap-tree-table"></table>
</div>
</div> </div>
</div> </div>
{/block} {/block}
{block name="script"} {block name="script"}
<script type="text/javascript" src="__PUBLIC__/js/bootstrap-editable.min.js"></script>
<script type="text/javascript"> <script type="text/javascript">
$(function(){ $(function(){
$.fn.editable.defaults.mode = 'popup'; var addFlag = "";
$.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>' + var editFlag = "";
'<button type="button" class="btn editable-cancel btn-mini"><i class="fa fa-times"></i></button>'; var removeFlag = "";
$('.editable').editable();
$.treeTable.init({
code: "id",
parentCode: "pid",
uniqueId: "id",
expandAll: false,
expandFirst: false,
url: "/admin/menu/index",
createUrl: "/admin/menu/add/{id}",
updateUrl: "/admin/menu/edit/{id}",
removeUrl: "/admin/menu/remove/{id}",
modalName: "菜单",
columns:[
{field: 'selectItem', radio: true},
{
title: '菜单名称',
field: 'title',
width: '20%',
formatter: function(value, row, index) {
if ($.common.isEmpty(row.icon)) {
return row.title;
} else {
return '<i class="' + row.icon + '"></i> <span class="nav-label">' + row.title + '</span>';
}
}
},
{
field: 'sort',
title: '排序',
width: '10%',
align: "left"
},
{
field: 'url',
title: '请求地址',
width: '15%',
align: "left"
},
{
title: '操作',
width: '20%',
align: "left",
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.menuId + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-info btn-xs ' + addFlag + '" href="javascript:void(0)" onclick="$.operate.add(\'' + row.menuId + '\')"><i class="fa fa-plus"></i>新增</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.menuId + '\')"><i class="fa fa-trash"></i>删除</a>');
return actions.join('');
}
}
]
});
}) })
</script> </script>
{/block} {/block}

View File

@@ -1,76 +1,73 @@
{extend name="admin/base"/} {extend name="admin/base"/}
{block name="body"} {block name="body"}
<!-- Default box --> <!-- Default box -->
<div class="box box-primary"> <div class="box box-primary">
<div class="box-header with-border"> <div class="box-header with-border">
<h3 class="box-title">{$mate_title|default="新功能"}</h3> <h3 class="box-title">{$mate_title|default="新功能"}</h3>
<div class="box-tools pull-right"> <div class="box-tools pull-right">
<a href="{:url('/admin/config/index')}" class="btn btn-primary"><i class="fa fa-list"></i> 配置列表</a> <ul class="nav nav-tabs">
<a href="{:url('/admin/config/add')}" class="btn btn-danger"><i class="fa fa-list"></i> 添加配置</a> {volist name="config['config_group_list']" id="item"}
<li {if $key == $id}class="active"{/if}><a href="/admin/config/group.html?id={$key}">{$item}</a></li>
{/volist}
</ul>
</div> </div>
</div> </div>
<div class="box-body"> <div class="box-body">
<div class="tabs-wrapper"> <div class="tabs-wrapper">
<ul class="nav nav-tabs"> <div class="btn-group-sm" style="text-align: right; padding-bottom: 10px;">
{volist name="config['config_group_list']" id="item"} <a href="{:url('/admin/config/index')}" class="btn btn-primary"><i class="fa fa-list"></i> 配置列表</a>
<li {if condition="$key eq $id"}class="active"{/if}> <a href="{:url('/admin/config/add')}" class="btn btn-danger"><i class="fa fa-list"></i> 添加配置</a>
<a href="{:url('/admin/config/group',array('id'=>$key))}">{$item}</a>
</li>
{/volist}
</ul>
<div class="tab-content">
<div class="tab-pane fade in active" id="tab-home">
<form method="post" class="form form-horizontal" role="ajax">
{volist name="list" id="item"}
<div class="form-group">
<label for="inputEmail1" class="col-lg-2 control-label">{$item['title']}</label>
<div class="col-lg-10">
{switch name="item['type']"}
{case value="text"}
<input type="text" class="form-control" name="config[{$item['name']}]" id="config[{$item['name']}]" value="{$item['value']}" placeholder="{$item['title']}" style="width:50%;">
{/case}
{case value="num"}
<input type="text" class="form-control" name="config[{$item['name']}]" id="config[{$item['name']}]" value="{$item['value']}" placeholder="{$item['title']}" style="width:30%;">
{/case}
{case value="string"}
<input type="text" class="form-control" name="config[{$item['name']}]" id="config[{$item['name']}]" value="{$item['value']}" placeholder="{$item['title']}" style="width:80%;">
{/case}
{case value="textarea"}
<textarea class="form-control" name="config[{$item['name']}]" id="config[{$item['name']}]" style="width:80%; height:120px;">{$item['value']}</textarea>
{/case}
{case value="select"}
<select class="form-control" name="config[{$item['name']}]" id="config[{$item['name']}]" data-toggle='cxselect' style="width:auto;">
{volist name=":parse_config_attr($item['extra'])" id="vo"}
<option value="{$key}" {eq name="item['value']" value="$key"}selected{/eq}>{$vo}</option>
{/volist}
</select>
{/case}
{case value="bool"}
<select class="form-control" name="config[{$item['name']}]" id="config[{$item['name']}]" data-toggle='cxselect' style="width:auto;">
{volist name=":parse_config_attr($item['extra'])" id="vo"}
<option value="{$key}" {eq name="item['value']" value="$key"}selected{/eq}>{$vo}</option>
{/volist}
</select>
{/case}
{case value="image"}
{:widget('common/Form/showConfig',array($item,$item))}
{/case}
{/switch}
{if condition="$item['remark']"}
<span class="help-block">{$item['remark']}</span>
{/if}
</div>
</div>
{/volist}
<div class="form-group">
<div class="col-lg-offset-2 col-lg-10">
<button type="submit" class="btn btn-success submit-btn ajax-post" target-form="form">确认提交</button>
<button class="btn btn-danger btn-return" onclick="javascript:history.back(-1);return false;">返 回</button>
</div>
</div>
</form>
</div>
</div> </div>
<form method="post" class="form form-horizontal" role="ajax">
{volist name="list" id="item"}
<div class="form-group">
<label for="inputEmail1" class="col-lg-2 control-label">{$item['title']}</label>
<div class="col-lg-10">
{switch name="item['type']"}
{case value="text"}
<input type="text" class="form-control" name="config[{$item['name']}]" id="config[{$item['name']}]" value="{$item['value']}" placeholder="{$item['title']}" style="width:50%;">
{/case}
{case value="num"}
<input type="text" class="form-control" name="config[{$item['name']}]" id="config[{$item['name']}]" value="{$item['value']}" placeholder="{$item['title']}" style="width:30%;">
{/case}
{case value="string"}
<input type="text" class="form-control" name="config[{$item['name']}]" id="config[{$item['name']}]" value="{$item['value']}" placeholder="{$item['title']}" style="width:80%;">
{/case}
{case value="textarea"}
<textarea class="form-control" name="config[{$item['name']}]" id="config[{$item['name']}]" style="width:80%; height:120px;">{$item['value']}</textarea>
{/case}
{case value="select"}
<select class="form-control" name="config[{$item['name']}]" id="config[{$item['name']}]" data-toggle='cxselect' style="width:auto;">
{volist name=":parse_config_attr($item['extra'])" id="vo"}
<option value="{$key}" {eq name="item['value']" value="$key"}selected{/eq}>{$vo}</option>
{/volist}
</select>
{/case}
{case value="bool"}
<select class="form-control" name="config[{$item['name']}]" id="config[{$item['name']}]" data-toggle='cxselect' style="width:auto;">
{volist name=":parse_config_attr($item['extra'])" id="vo"}
<option value="{$key}" {eq name="item['value']" value="$key"}selected{/eq}>{$vo}</option>
{/volist}
</select>
{/case}
{case value="image"}
{:widget('common/Form/showConfig',array($item,$item))}
{/case}
{/switch}
{if condition="$item['remark']"}
<span class="help-block">{$item['remark']}</span>
{/if}
</div>
</div>
{/volist}
<div class="form-group">
<div class="col-lg-offset-2 col-lg-10">
<button type="submit" class="btn btn-success submit-btn ajax-post" target-form="form">确认提交</button>
<button class="btn btn-danger btn-return" onclick="javascript:history.back(-1);return false;">返 回</button>
</div>
</div>
</form>
</div> </div>
</div><!-- /.box-body --> </div><!-- /.box-body -->
</div><!-- /.box --> </div><!-- /.box -->

View File

@@ -70,13 +70,13 @@ folder instead of downloading all of them to reduce the load. -->
<li class="user-body"> <li class="user-body">
<div class="row"> <div class="row">
<div class="col-xs-4 text-center"> <div class="col-xs-4 text-center">
<a href="#">网站首页</a> <a href="{:url('index/index')}" target="_blank">网站首页</a>
</div> </div>
<div class="col-xs-4 text-center"> <div class="col-xs-4 text-center">
<a href="#">个人资料</a> <a href="/admin/user/profile.html" data-action="url" data-type="tab">个人资料</a>
</div> </div>
<div class="col-xs-4 text-center"> <div class="col-xs-4 text-center">
<a href="#">修改密码</a> <a href="/admin/user/resetpwd.html" data-action="url" data-type="open">修改密码</a>
</div> </div>
</div> </div>
<!-- /.row --> <!-- /.row -->
@@ -84,10 +84,10 @@ folder instead of downloading all of them to reduce the load. -->
<!-- Menu Footer--> <!-- Menu Footer-->
<li class="user-footer"> <li class="user-footer">
<div class="pull-left"> <div class="pull-left">
<a href="#" class="btn btn-default btn-flat">个人资料</a> <a href="/admin/user/profile.html" class="btn btn-default btn-flat" data-action="url" data-type="tab">个人资料</a>
</div> </div>
<div class="pull-right"> <div class="pull-right">
<a href="#" class="btn btn-default btn-flat">退出</a> <a href="/admin/user/logout.html" class="btn btn-default btn-flat" data-action="url" data-type="msg">退出</a>
</div> </div>
</li> </li>
</ul> </ul>

View File

@@ -39,9 +39,6 @@
<label class="col-lg-2 control-label">上级菜单</label> <label class="col-lg-2 control-label">上级菜单</label>
<div class="col-lg-10"> <div class="col-lg-10">
<select name="pid" class="form-control" style="width: 50%"> <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> </select>
<span class="help-block">(所属的上级菜单)</span> <span class="help-block">(所属的上级菜单)</span>
</div> </div>

View File

@@ -1,87 +1,87 @@
{extend name="admin/base"/} {extend name="admin/base"/}
{block name="body"} {block name="body"}
<div class="box box-primary"> <div class="box box-primary">
<header class="box-header with-border"> <header class="box-header with-border">
<h3 class="box-title">{$meta_title|default='新功能'}</h3> <h3 class="box-title">{$meta_title|default='新功能'}</h3>
<div class="pull-right"> <div class="pull-right">
<a class="btn btn-success" href="{:url('Model/add')}">新 增</a>
<button class="btn ajax-post" target-form="ids" url="{:url('Model/status',array('status'=>0))}">禁 用</button>
</div> </div>
</header> </header>
<div class="box-body"> <div class="box-body">
<div class="table-responsive clearfix">
<table class="table table-striped"> <div class="btn-group-sm" id="toolbar" role="group">
<thead> <a class="btn btn-success" onclick="$.operate.add()">
<tr> <i class="fa fa-plus"></i> 新增
<th class="row-selected row-selected"> </a>
<input class="check-all" type="checkbox"/> <a class="btn btn-primary single disabled" onclick="$.operate.edit()">
</th> <i class="fa fa-edit"></i> 修改
<th class="">编号</th> </a>
<th class="">标识</th> <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()">
<th class="">名称</th> <i class="fa fa-remove"></i> 删除
<th class="">创建时间</th> </a>
<th class="">状态</th> </div>
<th class="">操作</th>
</tr> <div class="table-striped">
</thead> <table id="bootstrap-table" data-mobile-responsive="true"></table>
<tbody>
{notempty name="list"}
{volist name="list" id="item"}
<tr>
<td>
<input class="ids" type="checkbox" name="ids[]" value="{$item['id']}" />
</td>
<td>{$item['id']}</td>
<td><i class="fa fa-{$item['icon']}"></i> {$item['name']}</td>
<td>
<a data-id="{$item.id}" href="{:url('model/edit?id='.$item['id'])}">{$item.title}</a>
</td>
<td>
<span>{$item.create_time|time_format}</span>
</td>
<td>
{if $item['status']}
<span class="label label-primary">{$item['status_text']}</span>
{else/}
<span class="label label-danger">{$item['status_text']}</span>
{/if}
</td>
<td>
<a href="{:url('admin/attribute/index?model_id='.$item['id'])}">字段</a>
<a href="{:url('model/status?id='.$item['id'].'&status='.abs(1-$item['status']))}" class="ajax-get">{$item['status']|show_status_op}</a>
<a href="{:url('model/edit?id='.$item['id'])}">编辑</a>
<a href="{:url('model/del?id='.$item['id'])}" class="confirm ajax-get">删除</a>
<a href="{:url('admin/content/index?model_id='.$item['id'])}">数据</a>
</td>
</tr>
{/volist}
{else/}
<td colspan="7" class="text-center">aOh! 暂时还没有创建模型!</td>
{/notempty}
</tbody>
</table>
</div> </div>
{$page|raw}
</div> </div>
</div> </div>
{/block} {/block}
{block name="script"} {block name="script"}
<!-- bootstrap-table 表格插件 -->
<script src="__static__/plugins/bootstrap-table/bootstrap-table.min.js"></script>
<script src="__static__/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
<script src="__static__/plugins/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js"></script>
<script src="__static__/plugins/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.min.js"></script>
<script src="__static__/plugins/bootstrap-table/extensions/columns/bootstrap-table-fixed-columns.js"></script>
<script type="text/javascript"> <script type="text/javascript">
$(function(){ $(function(){
$("#search").click(function(){ var editFlag = "";
var url = $(this).attr('url'); var removeFlag = "";
var status = $('select[name=status]').val(); var resetPwdFlag = "";
var search = $('input[name=search]').val();
if(status != ''){ $.table.init({
url += '/status/' + status; url: "/admin/client/index",
} createUrl: "/admin/client/add",
if(search != ''){ updateUrl: "/admin/client/edit/id/{id}",
url += '/search/' + search; removeUrl: "/admin/client/remove",
} sortName: "id",
window.location.href = url; sortOrder: "desc",
modalName: "客户端",
columns: [
{
checkbox: true
},
{
field: 'title',
title: '客户端名称'
},
{
field: 'appid',
title: 'APPID'
},
{
field: 'appsecret',
title: 'APP秘钥'
},
{
field: 'create_time',
title: '创建时间',
sortable: true
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
return actions.join('');
}
}
]
}); });
}) })
</script> </script>
{/block} {/block}

View File

@@ -4,49 +4,84 @@
<header class="box-header with-border"> <header class="box-header with-border">
<h3 class="box-title">{$meta_title|default='新功能'}</h3> <h3 class="box-title">{$meta_title|default='新功能'}</h3>
<div class="pull-right"> <div class="pull-right">
<a class="btn btn-primary" href="{:url('add')}">新 增</a>
<button class="btn btn-danger ajax-post confirm" url="{:url('del')}" target-form="ids">删 除</button>
</div> </div>
</header> </header>
<div class="box-body"> <div class="box-body">
<div class="table-responsive clearfix">
<table class="table table-hover"> <div class="btn-group-sm" id="toolbar" role="group">
<thead> <a class="btn btn-success" onclick="$.operate.add()">
<tr> <i class="fa fa-plus"></i> 新增
<th width="30"><input class="checkbox check-all" type="checkbox"></th> </a>
<th width="60">ID</th> <a class="btn btn-primary single disabled" onclick="$.operate.edit()">
<th>名称</th> <i class="fa fa-edit"></i> 修改
<th>规则</th> </a>
<th>排序</th> <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()">
<th>SEO标题</th> <i class="fa fa-remove"></i> 删除
<th>操作</th> </a>
</tr> </div>
</thead>
<tbody> <div class="table-striped">
{volist name="list" id="item"} <table id="bootstrap-table" data-mobile-responsive="true"></table>
<tr>
<td><input class="ids row-selected" type="checkbox" name="id[]" value="{$item['id']}"></td>
<td>{$item['id']}</td>
<td>{$item['title']}</td>
<td>{$item['rule_name']}</td>
<td>{$item['sort']}</td>
<td>{$item['seo_title']}</td>
<td>
<a href="{:url('edit?id='.$item['id'])}">编辑</a>
<a href="{:url('del?id='.$item['id'])}" class="confirm ajax-get">删除</a>
</td>
</tr>
{/volist}
</tbody>
</table>
{$page|raw}
</div> </div>
</div> </div>
</div> </div>
{/block} {/block}
{block name="script"} {block name="script"}
<!-- bootstrap-table 表格插件 -->
<script src="__static__/plugins/bootstrap-table/bootstrap-table.min.js"></script>
<script src="__static__/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
<script src="__static__/plugins/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js"></script>
<script src="__static__/plugins/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.min.js"></script>
<script src="__static__/plugins/bootstrap-table/extensions/columns/bootstrap-table-fixed-columns.js"></script>
<script type="text/javascript"> <script type="text/javascript">
var isLoadModule = true; $(function(){
var editFlag = "";
var removeFlag = "";
var resetPwdFlag = "";
$.table.init({
url: "/admin/client/index",
createUrl: "/admin/client/add",
updateUrl: "/admin/client/edit/id/{id}",
removeUrl: "/admin/client/remove",
sortName: "id",
sortOrder: "desc",
modalName: "客户端",
columns: [
{
checkbox: true
},
{
field: 'title',
title: '客户端名称'
},
{
field: 'appid',
title: 'APPID'
},
{
field: 'appsecret',
title: 'APP秘钥'
},
{
field: 'create_time',
title: '创建时间',
sortable: true
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
return actions.join('');
}
}
]
});
})
</script> </script>
{/block} {/block}

View File

@@ -1,47 +1,87 @@
{extend name="admin/base"/} {extend name="admin/base"/}
{block name="style"}
<link rel="stylesheet" type="text/css" href="__PUBLIC__/css/libs/bootstrap-editable.css">
{/block}
{block name="body"} {block name="body"}
<div class="box box-primary"> <div class="box box-primary">
<header class="box-header with-border"> <header class="box-header with-border">
<h3 class="box-title">{$meta_title|default='新功能'}</h3> <h3 class="box-title">{$meta_title|default='新功能'}</h3>
<div class="pull-right"> <div class="pull-right">
<a class="btn btn-primary" href="{:url('addrewrite')}">新 增</a>
<button class="btn btn-danger ajax-post confirm" url="{:url('delrewrite')}" target-form="ids">删 除</button>
</div> </div>
</header> </header>
<div class="box-body"> <div class="box-body">
<div class="table-responsive clearfix">
<table class="table table-hover"> <div class="btn-group-sm" id="toolbar" role="group">
<thead> <a class="btn btn-success" onclick="$.operate.add()">
<tr> <i class="fa fa-plus"></i> 新增
<th width="30"><input class="checkbox check-all" type="checkbox"></th> </a>
<th width="60">ID</th> <a class="btn btn-primary single disabled" onclick="$.operate.edit()">
<th>规则</th> <i class="fa fa-edit"></i> 修改
<th>地址</th> </a>
<th>操作</th> <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()">
</tr> <i class="fa fa-remove"></i> 删除
</thead> </a>
<tbody> </div>
{volist name="list" id="item"}
<tr> <div class="table-striped">
<td><input class="ids row-selected" type="checkbox" name="id[]" value="{$item['id']}"></td> <table id="bootstrap-table" data-mobile-responsive="true"></table>
<td>{$item['id']}</td>
<td>{$item['rule']}</td>
<td>{$item['url']}</td>
<td>
<a href="{:url('editrewrite?id='.$item['id'])}">编辑</a>
<a href="{:url('delrewrite?id='.$item['id'])}" class="confirm ajax-get">删除</a>
</td>
</tr>
{/volist}
</tbody>
</table>
</div> </div>
</div> </div>
</div> </div>
{/block} {/block}
{block name="script"} {block name="script"}
<!-- bootstrap-table 表格插件 -->
<script src="__static__/plugins/bootstrap-table/bootstrap-table.min.js"></script>
<script src="__static__/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
<script src="__static__/plugins/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js"></script>
<script src="__static__/plugins/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.min.js"></script>
<script src="__static__/plugins/bootstrap-table/extensions/columns/bootstrap-table-fixed-columns.js"></script>
<script type="text/javascript">
$(function(){
var editFlag = "";
var removeFlag = "";
var resetPwdFlag = "";
$.table.init({
url: "/admin/client/index",
createUrl: "/admin/client/add",
updateUrl: "/admin/client/edit/id/{id}",
removeUrl: "/admin/client/remove",
sortName: "id",
sortOrder: "desc",
modalName: "客户端",
columns: [
{
checkbox: true
},
{
field: 'title',
title: '客户端名称'
},
{
field: 'appid',
title: 'APPID'
},
{
field: 'appsecret',
title: 'APP秘钥'
},
{
field: 'create_time',
title: '创建时间',
sortable: true
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
return actions.join('');
}
}
]
});
})
</script>
{/block} {/block}

View File

@@ -4,96 +4,83 @@
<header class="box-header with-border"> <header class="box-header with-border">
<h3 class="box-title">{$meta_title|default='新功能'}</h3> <h3 class="box-title">{$meta_title|default='新功能'}</h3>
<div class="pull-right"> <div class="pull-right">
<a href="{:url('add')}" class="btn btn-primary pull-right"> <i class="fa fa-plus-circle fa-lg"></i> 新增用户</a>
</div> </div>
</header> </header>
<div class="box-body"> <div class="box-body">
<div class="navbar navbar-default"> <div class="btn-group-sm" id="toolbar" role="group">
<form action="" class="navbar-form form-inline" method="get"> <a class="btn btn-success" onclick="$.operate.add()">
<div class="form-group"> <i class="fa fa-plus"></i> 新增
<label class="control-label" for="input-order-id">用户名</label> </a>
<div class="input-group"> <a class="btn btn-primary single disabled" onclick="$.operate.edit()">
<input type="text" name="username" value="{$param['username']|default=''}" placeholder="用户名" class="form-control"> <i class="fa fa-edit"></i> 修改
</div> </a>
</div> <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()">
<div class="form-group"> <i class="fa fa-remove"></i> 删除
<label class="control-label" for="input-order-id">昵称</label> </a>
<div class="input-group">
<input type="text" name="nickname" value="{$param['nickname']|default=''}" placeholder="昵称" class="form-control">
</div>
</div>
<button class="btn btn-primary" type="submit"><i class="fa fa-search"></i> 筛选</button>
</form>
</div> </div>
<div class="table-responsive">
<table class="table user-list table-hover"> <div class="table-striped">
<thead> <table id="bootstrap-table" data-mobile-responsive="true"></table>
<tr>
<th>
<span>用户</span>
</th>
<th>
<span>Email</span>
</th>
<th>
<span>手机号码</span>
</th>
<th>
<span>授权分组</span>
</th>
<th>
<span>创建时间</span>
</th>
<th class="text-center">
<span>状态</span>
</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{volist name="list" id="item"}
<tr>
<td>
{if isset($item['avatar_url']) && $item['avatar_url']}
<img src="{$item['avatar_url']}" alt="{$item['nickname']}"/>
{else/}
<img src="{:avatar($item['uid'])}" alt="{$item['nickname']}"/>
{/if}
<a href="#" class="user-link">{$item['nickname']}</a>
<span class="user-subhead">{$item['username']}</span>
</td>
<td>
<span >{$item['email']}</span>
</td>
<td>
<span >{$item['mobile']}</span>
</td>
<td>{$item['group_list']|implode=',',###}</td>
<td>{$item['reg_time']|date='Y-m-d',###}</td>
<td class="text-center">
{if condition="$item['status']"}
<span class="label label-primary">启用</span>
{else/}
<span class="label label-danger">禁用</span>
{/if}
</td>
<td>
<a href="{:url('User/edit',array('id'=>$item['uid']))}" class="table-link" title="">
编辑
</a>
<a href="{:url('User/auth',array('id'=>$item['uid']))}" class="table-link">
授权
</a>
<a href="{:url('User/del',array('id'=>$item['uid']))}" class="table-link confirm ajax-get">
删除
</a>
</td>
</tr>
{/volist}
</tbody>
</table>
{$page|raw}
</div> </div>
</div> </div>
</div> </div>
{/block}
{block name="script"}
<!-- bootstrap-table 表格插件 -->
<script src="__static__/plugins/bootstrap-table/bootstrap-table.min.js"></script>
<script src="__static__/plugins/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
<script src="__static__/plugins/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js"></script>
<script src="__static__/plugins/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.min.js"></script>
<script src="__static__/plugins/bootstrap-table/extensions/columns/bootstrap-table-fixed-columns.js"></script>
<script type="text/javascript">
$(function(){
var editFlag = "";
var removeFlag = "";
var resetPwdFlag = "";
$.table.init({
url: "/admin/user/index",
createUrl: "/admin/user/add",
updateUrl: "/admin/user/edit/id/{id}",
removeUrl: "/admin/user/remove",
sortName: "id",
sortOrder: "desc",
modalName: "客户端",
columns: [
{
checkbox: true
},
{
field: 'title',
title: '客户端名称'
},
{
field: 'appid',
title: 'APPID'
},
{
field: 'appsecret',
title: 'APP秘钥'
},
{
field: 'create_time',
title: '创建时间',
sortable: true
},
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a> ');
return actions.join('');
}
}
]
});
})
</script>
{/block} {/block}

View File

@@ -0,0 +1,357 @@
{extend name="admin/base"/}
{block name="body"}
<div class="row">
<div class="col-md-3">
<!-- Profile Image -->
<div class="box box-primary">
<div class="box-body box-profile">
<img class="profile-user-img img-responsive img-circle" src="../../dist/img/user4-128x128.jpg" alt="User profile picture">
<h3 class="profile-username text-center">Nina Mcintire</h3>
<p class="text-muted text-center">Software Engineer</p>
<ul class="list-group list-group-unbordered">
<li class="list-group-item">
<b>Followers</b> <a class="pull-right">1,322</a>
</li>
<li class="list-group-item">
<b>Following</b> <a class="pull-right">543</a>
</li>
<li class="list-group-item">
<b>Friends</b> <a class="pull-right">13,287</a>
</li>
</ul>
<a href="#" class="btn btn-primary btn-block"><b>Follow</b></a>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
<!-- About Me Box -->
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">About Me</h3>
</div>
<!-- /.box-header -->
<div class="box-body">
<strong><i class="fa fa-book margin-r-5"></i> Education</strong>
<p class="text-muted">
B.S. in Computer Science from the University of Tennessee at Knoxville
</p>
<hr>
<strong><i class="fa fa-map-marker margin-r-5"></i> Location</strong>
<p class="text-muted">Malibu, California</p>
<hr>
<strong><i class="fa fa-pencil margin-r-5"></i> Skills</strong>
<p>
<span class="label label-danger">UI Design</span>
<span class="label label-success">Coding</span>
<span class="label label-info">Javascript</span>
<span class="label label-warning">PHP</span>
<span class="label label-primary">Node.js</span>
</p>
<hr>
<strong><i class="fa fa-file-text-o margin-r-5"></i> Notes</strong>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam fermentum enim neque.</p>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
</div>
<!-- /.col -->
<div class="col-md-9">
<div class="nav-tabs-custom">
<ul class="nav nav-tabs">
<li class="active"><a href="#activity" data-toggle="tab">Activity</a></li>
<li><a href="#timeline" data-toggle="tab">Timeline</a></li>
<li><a href="#settings" data-toggle="tab">Settings</a></li>
</ul>
<div class="tab-content">
<div class="active tab-pane" id="activity">
<!-- Post -->
<div class="post">
<div class="user-block">
<img class="img-circle img-bordered-sm" src="../../dist/img/user1-128x128.jpg" alt="user image">
<span class="username">
<a href="#">Jonathan Burke Jr.</a>
<a href="#" class="pull-right btn-box-tool"><i class="fa fa-times"></i></a>
</span>
<span class="description">Shared publicly - 7:30 PM today</span>
</div>
<!-- /.user-block -->
<p>
Lorem ipsum represents a long-held tradition for designers,
typographers and the like. Some people hate it and argue for
its demise, but others ignore the hate as they create awesome
tools to help create filler text for everyone from bacon lovers
to Charlie Sheen fans.
</p>
<ul class="list-inline">
<li><a href="#" class="link-black text-sm"><i class="fa fa-share margin-r-5"></i> Share</a></li>
<li><a href="#" class="link-black text-sm"><i class="fa fa-thumbs-o-up margin-r-5"></i> Like</a>
</li>
<li class="pull-right">
<a href="#" class="link-black text-sm"><i class="fa fa-comments-o margin-r-5"></i> Comments
(5)</a></li>
</ul>
<input class="form-control input-sm" type="text" placeholder="Type a comment">
</div>
<!-- /.post -->
<!-- Post -->
<div class="post clearfix">
<div class="user-block">
<img class="img-circle img-bordered-sm" src="../../dist/img/user7-128x128.jpg" alt="User Image">
<span class="username">
<a href="#">Sarah Ross</a>
<a href="#" class="pull-right btn-box-tool"><i class="fa fa-times"></i></a>
</span>
<span class="description">Sent you a message - 3 days ago</span>
</div>
<!-- /.user-block -->
<p>
Lorem ipsum represents a long-held tradition for designers,
typographers and the like. Some people hate it and argue for
its demise, but others ignore the hate as they create awesome
tools to help create filler text for everyone from bacon lovers
to Charlie Sheen fans.
</p>
<form class="form-horizontal">
<div class="form-group margin-bottom-none">
<div class="col-sm-9">
<input class="form-control input-sm" placeholder="Response">
</div>
<div class="col-sm-3">
<button type="submit" class="btn btn-danger pull-right btn-block btn-sm">Send</button>
</div>
</div>
</form>
</div>
<!-- /.post -->
<!-- Post -->
<div class="post">
<div class="user-block">
<img class="img-circle img-bordered-sm" src="../../dist/img/user6-128x128.jpg" alt="User Image">
<span class="username">
<a href="#">Adam Jones</a>
<a href="#" class="pull-right btn-box-tool"><i class="fa fa-times"></i></a>
</span>
<span class="description">Posted 5 photos - 5 days ago</span>
</div>
<!-- /.user-block -->
<div class="row margin-bottom">
<div class="col-sm-6">
<img class="img-responsive" src="../../dist/img/photo1.png" alt="Photo">
</div>
<!-- /.col -->
<div class="col-sm-6">
<div class="row">
<div class="col-sm-6">
<img class="img-responsive" src="../../dist/img/photo2.png" alt="Photo">
<br>
<img class="img-responsive" src="../../dist/img/photo3.jpg" alt="Photo">
</div>
<!-- /.col -->
<div class="col-sm-6">
<img class="img-responsive" src="../../dist/img/photo4.jpg" alt="Photo">
<br>
<img class="img-responsive" src="../../dist/img/photo1.png" alt="Photo">
</div>
<!-- /.col -->
</div>
<!-- /.row -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->
<ul class="list-inline">
<li><a href="#" class="link-black text-sm"><i class="fa fa-share margin-r-5"></i> Share</a></li>
<li><a href="#" class="link-black text-sm"><i class="fa fa-thumbs-o-up margin-r-5"></i> Like</a>
</li>
<li class="pull-right">
<a href="#" class="link-black text-sm"><i class="fa fa-comments-o margin-r-5"></i> Comments
(5)</a></li>
</ul>
<input class="form-control input-sm" type="text" placeholder="Type a comment">
</div>
<!-- /.post -->
</div>
<!-- /.tab-pane -->
<div class="tab-pane" id="timeline">
<!-- The timeline -->
<ul class="timeline timeline-inverse">
<!-- timeline time label -->
<li class="time-label">
<span class="bg-red">
10 Feb. 2014
</span>
</li>
<!-- /.timeline-label -->
<!-- timeline item -->
<li>
<i class="fa fa-envelope bg-blue"></i>
<div class="timeline-item">
<span class="time"><i class="fa fa-clock-o"></i> 12:05</span>
<h3 class="timeline-header"><a href="#">Support Team</a> sent you an email</h3>
<div class="timeline-body">
Etsy doostang zoodles disqus groupon greplin oooj voxy zoodles,
weebly ning heekya handango imeem plugg dopplr jibjab, movity
jajah plickers sifteo edmodo ifttt zimbra. Babblely odeo kaboodle
quora plaxo ideeli hulu weebly balihoo...
</div>
<div class="timeline-footer">
<a class="btn btn-primary btn-xs">Read more</a>
<a class="btn btn-danger btn-xs">Delete</a>
</div>
</div>
</li>
<!-- END timeline item -->
<!-- timeline item -->
<li>
<i class="fa fa-user bg-aqua"></i>
<div class="timeline-item">
<span class="time"><i class="fa fa-clock-o"></i> 5 mins ago</span>
<h3 class="timeline-header no-border"><a href="#">Sarah Young</a> accepted your friend request
</h3>
</div>
</li>
<!-- END timeline item -->
<!-- timeline item -->
<li>
<i class="fa fa-comments bg-yellow"></i>
<div class="timeline-item">
<span class="time"><i class="fa fa-clock-o"></i> 27 mins ago</span>
<h3 class="timeline-header"><a href="#">Jay White</a> commented on your post</h3>
<div class="timeline-body">
Take me to your leader!
Switzerland is small and neutral!
We are more like Germany, ambitious and misunderstood!
</div>
<div class="timeline-footer">
<a class="btn btn-warning btn-flat btn-xs">View comment</a>
</div>
</div>
</li>
<!-- END timeline item -->
<!-- timeline time label -->
<li class="time-label">
<span class="bg-green">
3 Jan. 2014
</span>
</li>
<!-- /.timeline-label -->
<!-- timeline item -->
<li>
<i class="fa fa-camera bg-purple"></i>
<div class="timeline-item">
<span class="time"><i class="fa fa-clock-o"></i> 2 days ago</span>
<h3 class="timeline-header"><a href="#">Mina Lee</a> uploaded new photos</h3>
<div class="timeline-body">
<img src="http://placehold.it/150x100" alt="..." class="margin">
<img src="http://placehold.it/150x100" alt="..." class="margin">
<img src="http://placehold.it/150x100" alt="..." class="margin">
<img src="http://placehold.it/150x100" alt="..." class="margin">
</div>
</div>
</li>
<!-- END timeline item -->
<li>
<i class="fa fa-clock-o bg-gray"></i>
</li>
</ul>
</div>
<!-- /.tab-pane -->
<div class="tab-pane" id="settings">
<form class="form-horizontal">
<div class="form-group">
<label for="inputName" class="col-sm-2 control-label">Name</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="inputName" placeholder="Name">
</div>
</div>
<div class="form-group">
<label for="inputEmail" class="col-sm-2 control-label">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control" id="inputEmail" placeholder="Email">
</div>
</div>
<div class="form-group">
<label for="inputName" class="col-sm-2 control-label">Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputName" placeholder="Name">
</div>
</div>
<div class="form-group">
<label for="inputExperience" class="col-sm-2 control-label">Experience</label>
<div class="col-sm-10">
<textarea class="form-control" id="inputExperience" placeholder="Experience"></textarea>
</div>
</div>
<div class="form-group">
<label for="inputSkills" class="col-sm-2 control-label">Skills</label>
<div class="col-sm-10">
<input type="text" class="form-control" id="inputSkills" placeholder="Skills">
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<div class="checkbox">
<label>
<input type="checkbox"> I agree to the <a href="#">terms and conditions</a>
</label>
</div>
</div>
</div>
<div class="form-group">
<div class="col-sm-offset-2 col-sm-10">
<button type="submit" class="btn btn-danger">Submit</button>
</div>
</div>
</form>
</div>
<!-- /.tab-pane -->
</div>
<!-- /.tab-content -->
</div>
<!-- /.nav-tabs-custom -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->
{/block}