后台更新

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;
return $this->data;
}else{
return $this->data;
}
}
@@ -52,6 +54,9 @@ class Menu extends Admin{
$this->data['data'] = $res;
return $this->data;
}else{
$this->data['template'] = 'edit';
return $this->data;
}
}

View File

@@ -16,7 +16,15 @@ class User extends Admin{
* @title 系统首页
*/
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">
<!-- Theme style -->
<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
folder instead of downloading all of them to reduce the load. -->
<link rel="stylesheet" href="__css__/themes.css">

View File

@@ -1,101 +1,91 @@
{extend name="admin/base"/}
{block name="style"}
<link rel="stylesheet" type="text/css" href="__PUBLIC__/css/libs/bootstrap-editable.css">
{block name="head"}
<script type="text/javascript" src="__static__/plugins/bootstrap-treetable/bootstrap-treetable.js"></script>
{/block}
{block name="body"}
<div class="main-box no-header clearfix">
<div class="box box-primary">
<header class="box-header with-border">
<h3 class="box-title">{$meta_title|default='新功能'}</h3>
<h3 class="box-title">栏目管理</h3>
<div class="pull-right">
<a class="btn btn-primary" href="{:url('add')}"><i class="fa fa-plus-circle fa-lg"></i> 新 增</a>
</div>
</header>
<div class="box-body">
<!-- 表格列表 -->
<div class="table-responsive clearfix">
<div class="tabs-wrapper">
<ul class="nav nav-tabs">
<li {if $model_id == ''}class="active"{/if}><a href="{:url('admin/category/index')}">全部</a></li>
{volist name="model_list" id="item"}
<li {if $item['id'] == $model_id}class="active"{/if}>
<a href="{:url('admin/category/index',array('model_id'=>$item['id']))}">{$item['title']}</a>
</li>
{/volist}
</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 class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add(0)">
<i class="fa fa-plus"></i> 新增
</a>
<a class="btn btn-primary" onclick="$.operate.edit()">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-info" id="expandAllBtn">
<i class="fa fa-exchange"></i> 展开/折叠
</a>
</div>
<!-- /表格列表 -->
<div class="table-striped">
<table id="bootstrap-tree-table"></table>
</div>
</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();
var addFlag = "";
var editFlag = "";
var removeFlag = "";
$.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>
{/block}

View File

@@ -1,76 +1,73 @@
{extend name="admin/base"/}
{block name="body"}
<!-- Default box -->
<div class="box box-primary">
<div class="box-header with-border">
<h3 class="box-title">{$mate_title|default="新功能"}</h3>
<div class="box-tools pull-right">
<a href="{:url('/admin/config/index')}" class="btn btn-primary"><i class="fa fa-list"></i> 配置列表</a>
<a href="{:url('/admin/config/add')}" class="btn btn-danger"><i class="fa fa-list"></i> 添加配置</a>
<ul class="nav nav-tabs">
{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 class="box-body">
<div class="tabs-wrapper">
<ul class="nav nav-tabs">
{volist name="config['config_group_list']" id="item"}
<li {if condition="$key eq $id"}class="active"{/if}>
<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 class="btn-group-sm" style="text-align: right; padding-bottom: 10px;">
<a href="{:url('/admin/config/index')}" class="btn btn-primary"><i class="fa fa-list"></i> 配置列表</a>
<a href="{:url('/admin/config/add')}" class="btn btn-danger"><i class="fa fa-list"></i> 添加配置</a>
</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><!-- /.box-body -->
</div><!-- /.box -->

View File

@@ -70,13 +70,13 @@ folder instead of downloading all of them to reduce the load. -->
<li class="user-body">
<div class="row">
<div class="col-xs-4 text-center">
<a href="#">网站首页</a>
<a href="{:url('index/index')}" target="_blank">网站首页</a>
</div>
<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 class="col-xs-4 text-center">
<a href="#">修改密码</a>
<a href="/admin/user/resetpwd.html" data-action="url" data-type="open">修改密码</a>
</div>
</div>
<!-- /.row -->
@@ -84,10 +84,10 @@ folder instead of downloading all of them to reduce the load. -->
<!-- Menu Footer-->
<li class="user-footer">
<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 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>
</li>
</ul>

View File

@@ -39,9 +39,6 @@
<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>

View File

@@ -1,87 +1,87 @@
{extend name="admin/base"/}
{block name="body"}
<div class="box box-primary">
<header class="box-header with-border">
<h3 class="box-title">{$meta_title|default='新功能'}</h3>
<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>
</header>
<div class="box-body">
<div class="table-responsive clearfix">
<table class="table table-striped">
<thead>
<tr>
<th class="row-selected row-selected">
<input class="check-all" type="checkbox"/>
</th>
<th class="">编号</th>
<th class="">标识</th>
<th class="">名称</th>
<th class="">创建时间</th>
<th class="">状态</th>
<th class="">操作</th>
</tr>
</thead>
<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 class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add()">
<i class="fa fa-plus"></i> 新增
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()">
<i class="fa fa-remove"></i> 删除
</a>
</div>
<div class="table-striped">
<table id="bootstrap-table" data-mobile-responsive="true"></table>
</div>
{$page|raw}
</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(){
$("#search").click(function(){
var url = $(this).attr('url');
var status = $('select[name=status]').val();
var search = $('input[name=search]').val();
if(status != ''){
url += '/status/' + status;
}
if(search != ''){
url += '/search/' + search;
}
window.location.href = url;
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,49 +4,84 @@
<header class="box-header with-border">
<h3 class="box-title">{$meta_title|default='新功能'}</h3>
<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>
</header>
<div class="box-body">
<div class="table-responsive clearfix">
<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>规则</th>
<th>排序</th>
<th>SEO标题</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{volist name="list" id="item"}
<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 class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add()">
<i class="fa fa-plus"></i> 新增
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()">
<i class="fa fa-remove"></i> 删除
</a>
</div>
<div class="table-striped">
<table id="bootstrap-table" data-mobile-responsive="true"></table>
</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">
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>
{/block}

View File

@@ -1,47 +1,87 @@
{extend name="admin/base"/}
{block name="style"}
<link rel="stylesheet" type="text/css" href="__PUBLIC__/css/libs/bootstrap-editable.css">
{/block}
{block name="body"}
<div class="box box-primary">
<header class="box-header with-border">
<h3 class="box-title">{$meta_title|default='新功能'}</h3>
<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>
</header>
<div class="box-body">
<div class="table-responsive clearfix">
<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>地址</th>
<th>操作</th>
</tr>
</thead>
<tbody>
{volist name="list" id="item"}
<tr>
<td><input class="ids row-selected" type="checkbox" name="id[]" value="{$item['id']}"></td>
<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 class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add()">
<i class="fa fa-plus"></i> 新增
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()">
<i class="fa fa-remove"></i> 删除
</a>
</div>
<div class="table-striped">
<table id="bootstrap-table" data-mobile-responsive="true"></table>
</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/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}

View File

@@ -4,96 +4,83 @@
<header class="box-header with-border">
<h3 class="box-title">{$meta_title|default='新功能'}</h3>
<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>
</header>
<div class="box-body">
<div class="navbar navbar-default">
<form action="" class="navbar-form form-inline" method="get">
<div class="form-group">
<label class="control-label" for="input-order-id">用户名</label>
<div class="input-group">
<input type="text" name="username" value="{$param['username']|default=''}" placeholder="用户名" class="form-control">
</div>
</div>
<div class="form-group">
<label class="control-label" for="input-order-id">昵称</label>
<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 class="btn-group-sm" id="toolbar" role="group">
<a class="btn btn-success" onclick="$.operate.add()">
<i class="fa fa-plus"></i> 新增
</a>
<a class="btn btn-primary single disabled" onclick="$.operate.edit()">
<i class="fa fa-edit"></i> 修改
</a>
<a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()">
<i class="fa fa-remove"></i> 删除
</a>
</div>
<div class="table-responsive">
<table class="table user-list table-hover">
<thead>
<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 class="table-striped">
<table id="bootstrap-table" data-mobile-responsive="true"></table>
</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}

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}