first commit

This commit is contained in:
yanwenwu
2018-11-16 17:45:37 +08:00
parent a9865a2982
commit 4d8f109e10
235 changed files with 38293 additions and 36 deletions

View File

@@ -0,0 +1,206 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="renderer" content="webkit">
<title>{:config('admin.title')}</title>
<meta name="keywords" content="H+后台主题,后台bootstrap框架,会员中心主题,后台HTML,响应式后台">
<meta name="description" content="H+是一个完全响应式基于Bootstrap3最新版本开发的扁平化主题她采用了主流的左右两栏式布局使用了Html5+CSS3等现代技术">
<!--[if lt IE 9]>
<meta http-equiv="refresh" content="0;ie.html" />
<![endif]-->
<link rel="shortcut icon" href="favicon.ico"> <link href="__CSS__/bootstrap.min.css?v=3.3.6" rel="stylesheet">
<link href="__CSS__/font-awesome.min.css?v=4.4.0" rel="stylesheet">
<link href="__CSS__/animate.css" rel="stylesheet">
<link href="__CSS__/style.css?v=4.1.0" rel="stylesheet">
</head>
<body class="fixed-sidebar full-height-layout gray-bg" style="overflow:hidden">
<div id="wrapper">
<!--左侧导航开始-->
<nav class="navbar-default navbar-static-side" role="navigation">
<div class="nav-close"><i class="fa fa-times-circle"></i>
</div>
<div class="sidebar-collapse">
<ul class="nav" id="side-menu">
<li class="nav-header">
<div class="dropdown profile-element">
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<span class="clear">
<span class="text-muted text-xs block">{$loginUser->name}<b class="caret"></b></span>
</span>
</a>
<ul class="dropdown-menu animated fadeInRight m-t-xs">
<li><a class="J_menuItem" href="{:url('user/edit', ['id' => $loginUser->id])}">个人资料</a>
</li>
<li class="divider"></li>
<li><a href="{:url('logout')}">安全退出</a>
</li>
</ul>
</div>
<div class="logo-element">GW</div>
</li>
<li>
<a href="#">
<i class="fa fa-home"></i>
<span class="nav-label">主页</span>
</a>
</li>
{foreach $permissions as $permission}
<li>
<a href="#">
<i class="fa fa-home"></i>
<span class="nav-label">{$permission->name}</span>
<span class="fa arrow"></span>
</a>
<ul class="nav nav-second-level">
{foreach $permission[$permission->id] as $p}
<li>
<a class="J_menuItem" href="{:url($p->controller . '/' . $p->action)}" data-index="0">{$p->name}</a>
</li>
{/foreach}
</ul>
</li>
{/foreach}
</ul>
</div>
</nav>
<!--左侧导航结束-->
<!--右侧部分开始-->
<div id="page-wrapper" class="gray-bg dashbard-1">
<div class="row border-bottom">
<nav class="navbar navbar-static-top" role="navigation" style="margin-bottom: 0">
<div class="navbar-header"><a class="navbar-minimalize minimalize-styl-2 btn btn-primary " href="#"><i class="fa fa-bars"></i> </a>
</div>
<!-- <ul class="nav navbar-top-links navbar-right">
<li class="dropdown">
<a class="dropdown-toggle count-info" data-toggle="dropdown" href="#">
<i class="fa fa-envelope"></i> <span class="label label-warning">16</span>
</a>
<ul class="dropdown-menu dropdown-messages">
<li class="m-t-xs">
<div class="dropdown-messages-box">
<a href="profile.html" class="pull-left">
<img alt="image" class="img-circle" src="__IMG__/a7.jpg">
</a>
<div class="media-body">
<small class="pull-right">46小时前</small>
<strong>小四</strong> 这个在日本投降书上签字的军官,建国后一定是个不小的干部吧?
<br>
<small class="text-muted">3天前 2014.11.8</small>
</div>
</div>
</li>
<li class="divider"></li>
<li>
<div class="dropdown-messages-box">
<a href="profile.html" class="pull-left">
<img alt="image" class="img-circle" src="__IMG__/a4.jpg">
</a>
<div class="media-body ">
<small class="pull-right text-navy">25小时前</small>
<strong>国民岳父</strong> 如何看待“男子不满自己爱犬被称为狗,刺伤路人”?——这人比犬还凶
<br>
<small class="text-muted">昨天</small>
</div>
</div>
</li>
<li class="divider"></li>
<li>
<div class="text-center link-block">
<a class="J_menuItem" href="mailbox.html">
<i class="fa fa-envelope"></i> <strong> 查看所有消息</strong>
</a>
</div>
</li>
</ul>
</li>
<li class="dropdown">
<a class="dropdown-toggle count-info" data-toggle="dropdown" href="#">
<i class="fa fa-bell"></i> <span class="label label-primary">8</span>
</a>
<ul class="dropdown-menu dropdown-alerts">
<li>
<a href="mailbox.html">
<div>
<i class="fa fa-envelope fa-fw"></i> 您有16条未读消息
<span class="pull-right text-muted small">4分钟前</span>
</div>
</a>
</li>
<li class="divider"></li>
<li>
<a href="profile.html">
<div>
<i class="fa fa-qq fa-fw"></i> 3条新回复
<span class="pull-right text-muted small">12分钟钱</span>
</div>
</a>
</li>
<li class="divider"></li>
<li>
<div class="text-center link-block">
<a class="J_menuItem" href="notifications.html">
<strong>查看所有 </strong>
<i class="fa fa-angle-right"></i>
</a>
</div>
</li>
</ul>
</li>
</ul>-->
</nav>
</div>
<div class="row content-tabs">
<button class="roll-nav roll-left J_tabLeft"><i class="fa fa-backward"></i>
</button>
<nav class="page-tabs J_menuTabs">
<div class="page-tabs-content">
<a href="javascript:;" class="active J_menuTab" data-id="index_v1.html">首页</a>
</div>
</nav>
<button class="roll-nav roll-right J_tabRight"><i class="fa fa-forward"></i>
</button>
<div class="btn-group roll-nav roll-right">
<button class="dropdown J_tabClose" data-toggle="dropdown">关闭操作<span class="caret"></span></button>
<ul role="menu" class="dropdown-menu dropdown-menu-right">
<li class="J_tabShowActive"><a>定位当前选项卡</a></li>
<li class="divider"></li>
<li class="J_tabCloseAll"><a>关闭全部选项卡</a></li>
<li class="J_tabCloseOther"><a>关闭其他选项卡</a></li>
</ul>
</div>
<a href="{:url('logout')}" class="roll-nav roll-right J_tabExit"><i class="fa fa fa-sign-out"></i> 退出</a>
</div>
<div class="row J_mainContent" id="content-main">
<iframe class="J_iframe" name="iframe0" width="100%" height="100%" src="{:url('index/main')}" frameborder="0" data-id="index_v1.html" seamless></iframe>
</div>
<div class="footer">
<div class="pull-right">&copy; 2014-2015 <a href="javascript:;" target="_blank">{:config('admin.title')}</a>
</div>
</div>
</div>
<!--右侧部分结束-->
</div>
<!-- 全局js -->
<script src="__JS__/jquery.min.js?v=2.1.4"></script>
<script src="__JS__/bootstrap.min.js?v=3.3.6"></script>
<script src="__PLUGINS__/js/metisMenu/jquery.metisMenu.js"></script>
<script src="__PLUGINS__/js/slimscroll/jquery.slimscroll.min.js"></script>
<script src="__PLUGINS__/js/layer/layer.min.js"></script>
<!-- 自定义js -->
<script src="__JS__/hplus.js?v=4.1.0"></script>
<script type="text/javascript" src="__JS__/contabs.js"></script>
<!-- 第三方插件 -->
<script src="__PLUGINS__/js/pace/pace.min.js"></script>
</body>
</html>

View File

@@ -0,0 +1,65 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>H+ 后台主题UI框架 - 登录</title>
<meta name="keywords" content="H+后台主题,后台bootstrap框架,会员中心主题,后台HTML,响应式后台">
<meta name="description" content="H+是一个完全响应式基于Bootstrap3最新版本开发的扁平化主题她采用了主流的左右两栏式布局使用了Html5+CSS3等现代技术">
<link rel="shortcut icon" href="favicon.ico"> <link href="__CSS__/bootstrap.min.css?v=3.3.6" rel="stylesheet">
<link href="__CSS__/font-awesome.css?v=4.4.0" rel="stylesheet">
<link href="__CSS__/animate.css" rel="stylesheet">
<link href="__CSS__/style.css?v=4.1.0" rel="stylesheet">
<link href="__PLUGINS__/css/toastr/toastr.min.css" rel="stylesheet">
<!--[if lt IE 9]>
<meta http-equiv="refresh" content="0;ie.html" />
<![endif]-->
<script>if(window.top !== window.self){ window.top.location = window.location;}</script>
</head>
<body class="gray-bg">
<div class="middle-box text-center loginscreen animated fadeInDown">
<div>
<div><h3 class="logo-name">GW</h3></div>
<h3>欢迎使用 {:config('admin.title')}</h3>
<form class="m-t" role="form" action="{:url('login')}" method="post">
<div class="form-group">
<input type="text" name="name" class="form-control" placeholder="用户名" required="">
</div>
<div class="form-group">
<input type="password" name="password" class="form-control" placeholder="密码" required="">
</div>
<button type="submit" class="btn btn-primary block full-width m-b">登 录</button>
<p class="text-muted text-center">
<a href="login.html#"><small>忘记密码了?</small></a> | <a href="register.html">注册一个新账号</a>
</p>
</form>
</div>
</div>
<!-- 全局js -->
<script src="__JS__/jquery.min.js?v=2.1.4"></script>
<script src="__JS__/bootstrap.min.js?v=3.3.6"></script>
<script src="__JS__/jquery.form.js"></script>
<script src="__PLUGINS__/js/toastr/toastr.min.js"></script>
</body>
</html>
<script>
toastr.options = {
positionClass: "toast-top-center",
showDuration: "300",
hideDuration: "1000",
timeOut: "2000",
extendedTimeOut: "1000",
};
$('form').ajaxForm(function(response) {
if (!response.code) {
toastr.warning(response.msg)
} else {
toastr.success(response.msg)
setTimeout(function(){
window.location.href = response.url
}, response.wait * 1000);
}
});
</script>

View File

@@ -0,0 +1,57 @@
{extend name="public:form" /}
{block name="menu"}菜单管理 / 创建菜单{/block}
{block name='action'}{:url('permission/create')}{/block}
{block name="form"}
{if condition="!$permissionId"}
<div class="form-group">
<label class="col-sm-2 control-label">选择父级菜单</label>
<div class="col-sm-4">
<select class="form-control m-b" name="pid">
<option value="0">--请选择父级菜单--</option>
{foreach $permissions as $permission}
<option value="{$permission->id}">{:str_repeat('&nbsp;&nbsp;', $permission->level)} {$permission->name}</option>
{/foreach}
</select>
</div>
</div>
{else/}
<input type="hidden" name="pid" value="{$permissionId}">
{/if}
<div class="form-group">
<label class="col-sm-2 control-label">菜单名称</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="name" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">菜单图标</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="icon" >
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">模块</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="module" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">控制器</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="controller" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">方法</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="action" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">展示</label>
<div class="col-sm-4 radio i-checks">
<label><input type="radio" checked value="1" name="is_show"> <i></i></label>
<label><input type="radio" value="2" name="is_show"><i></i></label>
</div>
</div>
{/block}

View File

@@ -0,0 +1,54 @@
{extend name="public:form" /}
{block name="menu"}菜单管理 / 创建菜单{/block}
{block name='action'}{:url('permission/edit')}{/block}
{block name="form"}
<div class="form-group">
<label class="col-sm-2 control-label">选择父级菜单</label>
<div class="col-sm-4">
<select class="form-control m-b" name="pid">
<option value="0">--请选择父级菜单--</option>
{foreach $permissions as $_permission}
<option value="{$_permission->id}" {if condition="$permission->pid eq $_permission->id"}selected{/if}>{:str_repeat('&nbsp;&nbsp;', $_permission->level)} {$_permission->name}</option>
{/foreach}
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">菜单名称</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="name" required value="{$permission->name}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">菜单图标</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="icon" value="{$permission->icon}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">模块</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="module" required value="{$permission->module}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">控制器</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="controller" required value="{$permission->controller}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">方法</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="action" required value="{$permission->action}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">展示</label>
<div class="col-sm-4 radio i-checks">
<label><input type="radio" value="1" name="is_show" {if condition="$permission->is_show eq 1"}checked{/if}> <i></i></label>
<label><input type="radio" value="2" name="is_show" {if condition="$permission->is_show eq 2"}checked{/if}><i></i></label>
</div>
</div>
<input type="hidden" name="id" value="{$permission->id}">
{/block}

View File

@@ -0,0 +1,37 @@
{extend name="public:base" /}
{block name="menu"}菜单管理{/block}
{block name="search"}
{:createButton(url('permission/create'), '创建菜单')}
{/block}
{block name="table-head"}
<tr>
<th>菜单名称</th>
<th>模块名称</th>
<th>路由</th>
<th>展示</th>
<th>创建时间</th>
<th>操作</th>
</tr>
{/block}
{block name="table-body"}
{if condition="!$permissions->count()"}
<tr>
<td colspan="7" class="text-center">没有数据</td>
</tr>
{else/}
{foreach $permissions as $permission}
<tr>
<td>{:str_repeat('&nbsp;&nbsp;', $permission->level)}{$permission->name}</td>
<td>{$permission->module}</td>
<td>{$permission->controller}@{$permission->action}</td>
<td>{$permission->is_show == 1 ? '是' : '否'}</td>
<td>{$permission->created_at}</td>
<td>
{:editButton(url('permission/edit', ['id' => $permission->id ]))}
{:deleteButton(url('permission/delete'), $permission->id)}
{:createButton(url('permission/create', ['id' => $permission->id ]), '创建子菜单', false)}
</td>
</tr>
{/foreach}
{/if}
{/block}

View File

@@ -0,0 +1,101 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{:config('admin.title')}</title>
<link rel="shortcut icon" href="favicon.ico">
<link href="__CSS__/bootstrap.min.css?v=3.3.6" rel="stylesheet">
<link href="__CSS__/font-awesome.css?v=4.4.0" rel="stylesheet">
<link href="__CSS__/animate.css" rel="stylesheet">
<link href="__CSS__/style.css?v=4.1.0" rel="stylesheet">
<link href="__PLUGINS__/css/toastr/toastr.min.css" rel="stylesheet">
{block name="css"}{/block}
<style>
.page-form-control {
background-color: rgb(255, 255, 255);
background-image: none;
color: inherit;
font-size: 1px;
border-color: rgb(229, 230, 231);
border-image: initial;
border-radius: 1px;
padding: 5px 12px;
}
.page-form-control-input {
background-color: rgb(255, 255, 255);
background-image: none;
color: inherit;
font-size: 1px;
padding: 5px 5px 1px 12px;
width: 10%;
}
</style>
</head>
<body class="gray-bg">
<div class="wrapper wrapper-content">
<div class="ibox-title">首页 / {block name="menu"}{/block}</div>
<form role="form" class="form-inline">
<div class="ibox-title">
{block name="search"}{/block}
</div>
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content">
{block name="button-create"}{/block}
<div class="table-responsive">
<table class="table">
<thead>
{block name="table-head"}{/block}
</thead>
<tbody>
{block name="table-body"}{/block}
</tbody>
</table>
</div>
{block name="paginate"}{/block}
</div>
</div>
</div>
</div>
</form>
</div>
<!-- 全局js -->
<script src="__JS__/jquery.min.js?v=2.1.4"></script>
<script src="__JS__/bootstrap.min.js?v=3.3.6"></script>
<script src="__PLUGINS__/js/toastr/toastr.min.js"></script>
<script src="__JS__/content.js?v=1.0.0"></script>
<script src="__PLUGINS__/js/layer/layer.js"></script>
{block name="js"}{/block}
</body>
</html>
<script>
$('.delete').click(function () {
id = $(this).attr('data');
url = $(this).attr('data-url')
var index = layer.confirm('确认删除?', {
btn: ['确认','取消'] //按钮
}, function(){
layer.close(index)
$.post(url, {id:id}, function (response) {
if (!response.code) {
warning(response.msg)
} else {
success(response.msg)
setTimeout(function(){
window.location.href = response.url
}, response.wait * 1000);
}
})
});
})
$('.hrefTo').click(function () {
$('form').submit();
})
$('.limit').change(function () {
$('input[name=page]').val(1)
$('form').submit();
})
</script>

View File

@@ -0,0 +1,66 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{:config('admin.title')}</title>
<link rel="shortcut icon" href="favicon.ico">
<link href="__CSS__/bootstrap.min.css?v=3.3.6" rel="stylesheet">
<link href="__CSS__/font-awesome.css?v=4.4.0" rel="stylesheet">
<link href="__PLUGINS__/css/iCheck/custom.css" rel="stylesheet">
<link href="__CSS__/animate.css" rel="stylesheet">
<link href="__CSS__/style.css?v=4.1.0" rel="stylesheet">
<link href="__PLUGINS__/css/toastr/toastr.min.css" rel="stylesheet">
{block name="css"}{/block}
</head>
<body class="gray-bg">
<div class="wrapper wrapper-content">
<div class="ibox-title">首页 / {block name="menu"}{/block}</div>
<div class="row">
<div class="col-sm-12">
<div class="ibox float-e-margins">
<div class="ibox-content">
<form method="post" class="form-horizontal" action="{block name='action'}{/block}">
{block name="form"}{/block}
<div class="form-group">
<div class="col-sm-4 col-sm-offset-2">
<button class="btn btn-primary" type="submit">保存</button>
<button class="btn btn-white" onclick="history.back()">返回</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<!-- 全局js -->
<script src="__JS__/jquery.min.js?v=2.1.4"></script>
<script src="__JS__/bootstrap.min.js?v=3.3.6"></script>
<!-- 自定义js -->
<script src="__PLUGINS__/js/toastr/toastr.min.js"></script>
<script src="__JS__/content.js?v=1.0.0"></script>
<script src="__JS__/jquery.form.js"></script>
<!-- iCheck -->
<script src="__PLUGINS__/js/iCheck/icheck.min.js"></script>
<script>
$(document).ready(function () {
$('.i-checks').iCheck({
checkboxClass: 'icheckbox_square-green',
radioClass: 'iradio_square-green',
});
});
$('form').ajaxForm(function(response) {
if (!response.code) {
warning(response.msg)
} else {
success(response.msg)
setTimeout(function(){
window.location.href = response.url
}, response.wait * 1000);
}
});
</script>
{block name="js"}{/block}
</body>
</html>

View File

@@ -0,0 +1,11 @@
{extend name="public:form" /}
{block name="menu"}角色管理 / 创建角色{/block}
{block name='action'}{:url('role/create')}{/block}
{block name="form"}
<div class="form-group">
<label class="col-sm-2 control-label">角色名</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="name">
</div>
</div>
{/block}

View File

@@ -0,0 +1,12 @@
{extend name="public:form" /}
{block name="menu"}角色管理 / 编辑角色{/block}
{block name='action'}{:url('role/edit')}{/block}
{block name="form"}
<div class="form-group">
<label class="col-sm-2 control-label">角色名</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="name" required value="{$role->name}">
</div>
<input type="hidden" name="id" value="{$role->id}">
</div>
{/block}

View File

@@ -0,0 +1,47 @@
{extend name="public:form" /}
{block name="menu"}角色管理 / 权限分配{/block}
{block name="css"}
<link rel="stylesheet" href="__PLUGINS__/css/ztree/bootstrapStyle/bootstrapStyle.css" type="text/css">
{/block}
{block name="form"}
<ul id="tree" class="ztree text-center"></ul>
{/block}
{block name="js"}
<script type="text/javascript" src="__PLUGINS__/js/ztree/jquery.ztree.core.js"></script>
<script type="text/javascript" src="__PLUGINS__/js/ztree/jquery.ztree.excheck.js"></script>
<script type="text/javascript" src="__PLUGINS__/js/ztree/jquery.ztree.exedit.js"></script>
<script>
let setting = {
view: {},
check: {enable: true},
data: {simpleData: {enable: true, pIdKey : "pid",}},
callback:{onCheck:onCheck}
};
$(document).ready(function(){
$.get('{:url("role/getPermissionsOfRole")}', {role_id:"{$role_id}"},function(response){
console.log(response.data)
$.fn.zTree.init($("#tree"), setting, response.data);
})
});
let ids = new Array();
function onCheck(e,treeId,treeNode){
let treeObj=$.fn.zTree.getZTreeObj("tree");
nodes = treeObj.getCheckedNodes(true);
for(let i=0; i<nodes.length; i++){
ids.push(nodes[i].id); //获取选中节点的值
}
}
$(".btn-primary").click(function(){
$.post("{:url('role/givePermissions')}", {role_id:"{$role_id}", permissions: ids}, function(response){
if (!response.code ) {
warning(response.msg); return false;
}
success(response.msg)
setTimeout(function(){
window.location.href = response.url
}, response.wait * 1000);
});
})
</script>
{/block}

View File

@@ -0,0 +1,36 @@
{extend name="public:base" /}
{block name="menu"}角色管理{/block}
{block name="search"}
{:createButton(url('role/create'), '创建角色')}
{/block}
{block name="table-head"}
<tr>
<th>ID</th>
<th>角色名</th>
<th>创建时间</th>
<th>操作</th>
</tr>
{/block}
{block name="table-body"}
{if condition="!$roles->count()"}
<tr>
<td colspan="7" class="text-center">没有数据</td>
</tr>
{else/}
{foreach $roles as $key => $role}
<tr>
<td>{$key + 1}</td>
<td>{$role->name}</td>
<td>{$role->created_at}</td>
<td>
{:editButton(url('role/edit', ['id' => $role->id ]))}
{:deleteButton(url('role/delete'), $role->id)}
{:createButton(url('role/givePermissions', ['id' => $role->id ]), '分配权限', false)}
</td>
</tr>
{/foreach}
{/if}
{/block}
{block name="paginate"}
{$roles->render()|raw}
{/block}

View File

@@ -0,0 +1,37 @@
{extend name="public:form" /}
{block name="menu"}用户管理 / 创建用户{/block}
{block name='action'}{:url('user/create')}{/block}
{block name="form"}
<div class="form-group">
<label class="col-sm-2 control-label">用户名</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="name">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">邮箱</label>
<div class="col-sm-4">
<input type="email" class="form-control" name="email" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">密码</label>
<div class="col-sm-4">
<input type="password" class="form-control" name="password" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">确认密码</label>
<div class="col-sm-4">
<input type="password" class="form-control" name="password_confirm" required>
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">角色分配</label>
<div class="col-sm-4 checkbox i-checks">
{foreach $roles as $role}
<label><input type="checkbox" value="{$role->id}" name="roles[]"><i></i>{$role->name}</label>
{/foreach}
</div>
</div>
{/block}

View File

@@ -0,0 +1,38 @@
{extend name="public:form" /}
{block name="menu"}用户管理 / 编辑用户{/block}
{block name='action'}{:url('user/edit')}{/block}
{block name="form"}
<div class="form-group">
<label class="col-sm-2 control-label">用户名</label>
<div class="col-sm-4">
<input type="text" class="form-control" name="name" value="{$user->name}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">邮箱</label>
<div class="col-sm-4">
<input type="email" class="form-control" name="email" value="{$user->email}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">密码</label>
<div class="col-sm-4">
<input type="password" class="form-control" name="password">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">确认密码</label>
<div class="col-sm-4">
<input type="password" class="form-control" name="password_confirm">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">角色分配</label>
<div class="col-sm-4 checkbox i-checks">
{foreach $roles as $role}
<label><input type="checkbox" value="{$role->id}" name="roles[]" {if condition="$role->checked"}checked{/if}><i></i>{$role->name}</label>
{/foreach}
</div>
</div>
<input type="hidden" name="id" value="{$user->id}">
{/block}

View File

@@ -0,0 +1,52 @@
{extend name="public:base" /}
{block name="menu"}用户管理{/block}
{block name="search"}
<div class="form-group">
<label for="name" class="sr-only">用户名</label>
<input type="text" name="name" placeholder="请输入用户名" id="name" class="form-control" value="{$Request.param.name}">
</div>
<div class="form-group">
<label for="email" class="sr-only">邮箱</label>
<input type="text" name="email" placeholder="请输入邮箱" id="email" class="form-control" value="{$Request.param.email}">
</div>
{:searchButton()}
{/block}
{block name="button-create"}
{:createButton(url('user/create'), '创建用户')}
{/block}
{block name="table-head"}
<tr>
<th>ID</th>
<th>用户名</th>
<th>邮箱</th>
<th>登录IP</th>
<th>登录时间</th>
<th>创建时间</th>
<th>操作</th>
</tr>
{/block}
{block name="table-body"}
{if condition="!$users->count()"}
<tr>
<td colspan="7" class="text-center">没有数据</td>
</tr>
{else/}
{foreach $users as $key => $user}
<tr>
<td>{$start + $key}</td>
<td>{$user->name}</td>
<td>{$user->email}</td>
<td>{$user->login_ip}</td>
<td>{$user->login_at}</td>
<td>{$user->created_at}</td>
<td>
{:editButton(url('user/edit', ['id' => $user->id ]))}
{:deleteButton(url('user/delete'), $user->id)}
</td>
</tr>
{/foreach}
{/if}
{/block}
{block name="paginate"}
{$users->render()|raw}
{/block}