若依开源1.1.1发布

This commit is contained in:
RuoYi
2018-04-23 00:00:29 +08:00
commit 262ee25d8e
453 changed files with 66923 additions and 0 deletions

View File

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>RuoYi - 404</title>
<link href="/css/bootstrap.min.css" rel="stylesheet">
<link href="/css/animate.css" rel="stylesheet">
<link href="/css/style.css" rel="stylesheet">
</head>
<body class="gray-bg">
<div class="middle-box text-center animated fadeInDown">
<h1>404</h1>
<h3 class="font-bold">找不到网页!</h3>
<div class="error-desc">
对不起您正在寻找的页面已经找到。尝试检查URL的错误然后按浏览器上的刷新按钮或尝试在我们的应用程序中找到其他内容。
<a href="javascript:top.document.location.href='/'" class="btn btn-primary m-t">主页</a>
</div>
</div>
<script src="/js/jquery.min.js?v=2.1.4"></script>
<script src="/js/bootstrap.min.js?v=3.3.6"></script>
</body>
</html>

View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>RuoYi - 500</title>
<link href="/css/bootstrap.min.css" rel="stylesheet">
<link href="/css/animate.css" rel="stylesheet">
<link href="/css/style.css" rel="stylesheet">
</head>
<body class="gray-bg">
<div class="middle-box text-center animated fadeInDown">
<h1>500</h1>
<h3 class="font-bold">内部服务器错误!</h3>
<div class="error-desc">
服务器遇到意外事件,不允许完成请求。我们抱歉。您可以返回主页面。
<a href="javascript:top.document.location.href='/'" class="btn btn-primary m-t">主页</a>
</div>
</div>
<script src="/js/jquery.min.js?v=2.1.4"></script>
<script src="/js/bootstrap.min.js?v=3.3.6"></script>
</body>
</html>

View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>RuoYi - 403</title>
<link href="/css/bootstrap.min.css" rel="stylesheet">
<link href="/css/animate.css" rel="stylesheet">
<link href="/css/style.css" rel="stylesheet">
</head>
<body class="gray-bg">
<div class="middle-box text-center animated fadeInDown">
<h1>403</h1>
<h3 class="font-bold">您没有访问权限!</h3>
<div class="error-desc">
对不起您正在寻找的页面已经找到。尝试检查URL的错误然后按浏览器上的刷新按钮或尝试在我们的应用程序中找到其他内容。
<a href="javascript:top.document.location.href='/'" class="btn btn-primary m-t">主页</a>
</div>
</div>
<script src="/js/jquery.min.js?v=2.1.4"></script>
<script src="/js/bootstrap.min.js?v=3.3.6"></script>
</body>
</html>

View File

@ -0,0 +1,39 @@
<head th:fragment="header">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title></title>
<meta name="keywords" content="">
<meta name="description" content="">
<link rel="shortcut icon" href="favicon.ico">
<link href="/css/bootstrap.min.css" rel="stylesheet">
<link href="/css/font-awesome.css" rel="stylesheet">
<!-- bootstrap-table 表格插件样式 -->
<link href="/ajax/libs/bootstrap-table/bootstrap-table.min.css" rel="stylesheet">
<link href="/ajax/libs/jqTreeGrid/jquery.treegrid.css" rel="stylesheet">
<link href="/css/animate.css" rel="stylesheet">
<link href="/css/style.css" rel="stylesheet">
<link href="/css/checkbox.css" rel="stylesheet">
</head>
<div th:fragment="footer">
<script src="/js/jquery.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
<!-- bootstrap-table 表格插件 -->
<script src="/ajax/libs/bootstrap-table/bootstrap-table.min.js"></script>
<script src="/ajax/libs/bootstrap-table/locale/bootstrap-table-zh-CN.min.js"></script>
<script src="/ajax/libs/bootstrap-table/extensions/mobile/bootstrap-table-mobile.min.js"></script>
<script src="/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.min.js"></script>
<!-- jquery-validate 表单验证插件 -->
<script src="/ajax/libs/validate/jquery.validate.min.js"></script>
<script src="/ajax/libs/validate/messages_zh.min.js"></script>
<!-- jquery-validate 表单树插件 -->
<script src="/ajax/libs/jqTreeGrid/jquery.treegrid.min.js"></script>
<script src="/ajax/libs/jqTreeGrid/jquery.treegrid.extension.js"></script>
<!-- jquery-export 表格导出插件 -->
<script src="/ajax/libs/bootstrap-table/extensions/export/bootstrap-table-export.js"></script>
<script src="/ajax/libs/bootstrap-table/extensions/export/tableExport.js"></script>
<script src="/ajax/libs/layer/layer.min.js"></script>
<script src="/ruoyi/js/common.js?v=1.1.1"></script>
<script src="/ruoyi/js/ry-ui.js?v=1.1.1"></script>
<script src="http://tajs.qq.com/stats?sId=62048022"></script>
</div>

View File

@ -0,0 +1,130 @@
<!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>若依管理系统首页</title>
<meta name="keywords" content="若依管理系统首页">
<meta name="description" content="若依管理系统首页">
<!--[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" rel="stylesheet">
<link href="/css/font-awesome.min.css" rel="stylesheet">
<link href="/css/animate.css" rel="stylesheet">
<link href="/css/style.css" 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"> <span>
<img src="img/profile_small.jpg" alt="image" class="img-circle" height="60" width="60"/></span>
<a data-toggle="dropdown" class="dropdown-toggle" href="#">
<span class="clear"><span class="block m-t-xs"><strong class="font-bold" th:text="${user.userName}">RuoYi</strong></span>
<span class="text-muted text-xs block" th:text="${user.dept.deptName}">研发部<b class="caret"></b></span> </span> </a>
<ul class="dropdown-menu animated fadeInRight m-t-xs">
<li><a class="menuItem" href="profile.html">个人信息</a></li>
<li class="divider"></li>
<li><a href="/logout">退出</a></li>
</ul>
</div>
</li>
<li class="active">
<a href="index.html"><i class="fa fa-home"></i> <span class="nav-label">主页</span> <span class="fa arrow"></span></a>
<ul class="nav nav-second-level">
<li class="active"><a class="menuItem" th:href="@{/system/main}">了解若依</a></li>
</ul>
</li>
<li th:each="menu : ${menus}">
<a href="#">
<i class="fa fa fa-bar-chart-o" th:class="${menu.icon}"></i>
<span class="nav-label" th:text="${menu.menuName}">一级菜单</span>
<span class="fa arrow"></span>
</a>
<ul class="nav nav-second-level collapse">
<li th:each="cmenu : ${menu.children}">
<a class="menuItem" th:text="${cmenu.menuName}" th:href="${cmenu.url}">二级菜单</a>
</li>
</ul>
</li>
</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-default " href="#" title="收起菜单">
<i class="fa fa-bars"></i>
</a>
<form role="search" class="navbar-form-custom" method="post" action="">
<div class="form-group">
<input type="text" placeholder="请输入您需要查找的内容 …" class="form-control" name="top-search" id="top-search">
</div>
</form>
</div>
<ul class="nav navbar-top-links navbar-right">
<li>
<span class="m-r-sm text-muted welcome-message">欢迎来到若依管理后台.</span>
</li>
<li class="hidden-xs"><a href="/system/juanzhu" ><i class="fa fa-heart"></i> 捐赠名单</a></li>
</ul>
</nav>
</div>
<div class="row content-tabs">
<button class="roll-nav roll-left tabLeft">
<i class="fa fa-backward"></i>
</button>
<nav class="page-tabs menuTabs">
<div class="page-tabs-content">
<a href="javascript:;" class="active menuTab">首页</a>
</div>
</nav>
<button class="roll-nav roll-right 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="tabReload"><a>刷新</a></li>
<li class="tabCloseAll"><a>全部关闭</a></li>
<li class="tabCloseOther"><a>关闭其他</a></li>
</ul>
</div>
<a href="/logout" class="roll-nav roll-right J_tabExit"><i class="fa fa fa-sign-out"></i> 退出</a>
</div>
<div class="row mainContent" id="content-main">
<iframe class="RuoYi_iframe" name="iframe0" width="100%" height="100%"
th:src="@{/system/main}" frameborder="0" seamless></iframe>
</div>
<div class="footer">
<div class="pull-right" th:text="'© '+${copyrightYear}+' RuoYi Copyright '"></div>
</div>
</div>
<!--右侧部分结束-->
</div>
<!-- 全局js -->
<script src="/js/jquery.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
<script src="/js/plugins/metisMenu/jquery.metisMenu.js"></script>
<script src="/js/plugins/slimscroll/jquery.slimscroll.min.js"></script>
<script src="/ruoyi/js/index.js"></script>
</body>
</html>

View File

@ -0,0 +1,33 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--360浏览器优先以webkit内核解析-->
<title>若依捐赠</title>
<link rel="shortcut icon" href="favicon.ico">
<link href="/css/main/bootstrap.min14ed.css" rel="stylesheet">
<link href="/css/main/font-awesome.min93e3.css" rel="stylesheet">
<link href="/css/main/animate.min.css" rel="stylesheet">
<link href="/css/main/style.min862f.css" rel="stylesheet">
</head>
<body>
<div class="container">
<h3>捐赠名单</h3>
<table class="table">
<tbody>
<tr class="active"><td>序号</td><td>昵称</td><td>金额</td><td>日期</td><td>来源</td><td>附言</td></tr>
<tr class="active"><td>1</td><td>庚子</td><td>10¥</td><td>2018-04-21</td><td>支付宝</td><td>加油!</td></tr>
<tr class="active"><td>2</td><td>yetao_study</td><td>10¥</td><td>2018-04-17</td><td>码云</td><td>感谢您的开源项目!</td></tr>
<tr class="active"><td>3</td><td>4666yy 182******41</td><td>10¥</td><td>2018-04-17</td><td>支付宝</td><td>希望继续努力,分享更多</td></tr>
<tr class="active"><td>4</td><td>mua 150******04</td><td>20¥</td><td>2018-04-13</td><td>支付宝</td><td>无留言(感谢~~</td></tr>
<tr class="active"><td>5</td><td>黄** 157***@qq.com</td><td></td><td>2018-04-12</td><td>支付宝</td><td>无留言(感谢~~</td></tr>
<tr class="active"><td>6</td><td>wamich</td><td>10¥</td><td>2018-03-30</td><td>码云</td><td>感谢您的开源项目!</td></tr>
<tr class="active"><td>7</td><td>yimi</td><td>10¥</td><td>2018-03-13</td><td>码云</td><td>感谢您的开源项目!</td></tr>
<tr class="active"><td>8</td><td>David hai***163.com</td><td>10¥</td><td>2018-03-13</td><td>支付宝</td><td>无留言(感谢~~</td></tr>
</tbody>
</table>
</div>
</div>
</body>

View File

@ -0,0 +1,119 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0">
<title>若依管理系统 - 登录</title>
<meta name="keywords" content="若依管理系统">
<meta name="description" content="RuoYi">
<link href="/css/bootstrap.min.css" rel="stylesheet">
<link href="/css/font-awesome.css" rel="stylesheet">
<link href="/css/style.min.css" rel="stylesheet">
<link href="/css/login.min.css" rel="stylesheet">
<!--[if lt IE 9]>
<meta http-equiv="refresh" content="0;ie.html" />
<![endif]-->
<link rel="shortcut icon" href="favicon.ico">
<script>
if(window.top!==window.self){window.top.location=window.location};
</script>
</head>
<body class="signin">
<div class="signinpanel">
<div class="row">
<div class="col-sm-7">
<div class="signin-info">
<div class="logopanel m-b">
<h1><img alt="[ 若依 ]" src="/ruoyi.png"></h1>
</div>
<div class="m-b"></div>
<h4>欢迎使用 <strong>若依 后台管理系统</strong></h4>
<ul class="m-b">
<li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> SpringBoot</li>
<li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Mybatis</li>
<li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Shiro</li>
<li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Thymeleaf</li>
<li><i class="fa fa-arrow-circle-o-right m-r-xs"></i> Bootstrap</li>
</ul>
<strong>还没有账号? <a href="#">立即注册&raquo;</a></strong>
</div>
</div>
<div class="col-sm-5">
<form id="signupForm">
<h4 class="no-margins">登录:</h4>
<p class="m-t-md">若依出品必属精品</p>
<input type="text" name="username" class="form-control uname" placeholder="用户名" value="admin" />
<input type="password" name="password" class="form-control pword m-b" placeholder="密码" value="admin123" />
<a href="#">忘记密码了?</a>
<button class="btn btn-success btn-block">登录</button>
</form>
</div>
</div>
<div class="signup-footer">
<div class="pull-left">
&copy; 2018 All Rights Reserved. RuoYi
</div>
</div>
</div>
<script th:inline="javascript"> var ctx = [[@{/}]]; </script>
<!-- 全局js -->
<script src="/js/jquery.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
<!-- 验证插件 -->
<script src="/ajax/libs/validate/jquery.validate.min.js"></script>
<script src="/ajax/libs/validate/messages_zh.min.js"></script>
<script src="/ajax/libs/layer/layer.min.js"></script>
<script src="http://tajs.qq.com/stats?sId=62048022"></script>
<script type="text/javascript">
$(document).ready(function() {
console.log(ctx);
validateRule();
});
$.validator.setDefaults({
submitHandler: function() {
login();
}
});
function login() {
$.ajax({
type: "POST",
url: ctx + "login",
data: $('#signupForm').serialize(),
success: function(r) {
if (r.code == 0) {
parent.location.href = '/index';
} else {
layer.msg(r.msg);
}
}
});
}
function validateRule() {
var icon = "<i class='fa fa-times-circle'></i> ";
$("#signupForm").validate({
rules: {
username: {
required: true
},
password: {
required: true
}
},
messages: {
username: {
required: icon + "请输入您的用户名",
},
password: {
required: icon + "请输入您的密码",
}
}
})
}
</script>
</body>
</html>

View File

@ -0,0 +1,312 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--360浏览器优先以webkit内核解析-->
<title>若依介绍</title>
<link rel="shortcut icon" href="favicon.ico">
<link href="/css/main/bootstrap.min14ed.css" rel="stylesheet">
<link href="/css/main/font-awesome.min93e3.css" rel="stylesheet">
<link href="/css/main/animate.min.css" rel="stylesheet">
<link href="/css/main/style.min862f.css" rel="stylesheet">
</head>
<body class="gray-bg">
<div class="row border-bottom white-bg dashboard-header">
<div class="col-sm-12">
<blockquote class="text-warning" style="font-size:14px">您是否需要自己做一款后台、会员中心等等的但是又缺乏html等前端知识…。
<br>您是否一直在苦苦寻找一款适合自己的后台主题…
<br>…………
<h4 class="text-danger">那么,现在若依来了。</h4>
</blockquote>
<hr>
</div>
<div class="col-sm-3">
<h2>Hello,Guest</h2>
<small>移动设备访问请扫描以下二维码:</small>
<br>
<br>
<img src="/img/qr_code.png" width="100%" style="max-width:264px;">
<br>
</div>
<div class="col-sm-5">
<h2>若依后台管理框架</h2>
<p>一直想做一款后台管理系统看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了若依管理系统。她可以用于所有的Web应用程序<b>网站管理后台</b><b>网站会员中心</b><b>CMS</b><b>CRM</b><b>OA</b>等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错概率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。</p>
<p>
<b>当前版本:</b><span th:text="'v'+${version}"></span>
</p>
<p>
<span class="label label-warning">&yen;免费开源</span>
</p>
<br>
<p>
<a class="btn btn-success btn-outline" href="https://gitee.com/y_project/RuoYi" target="_blank">
<i class="fa fa-cloud"> </i> 访问码云
</a>
<a class="btn btn-white btn-bitbucket" href="https://www.oschina.net/p/ruoyi" target="_blank">
<i class="fa fa-home"></i> 访问博客
</a>
</p>
</div>
<div class="col-sm-4">
<h4>技术选型:</h4>
<ol>
<li>核心框架Spring Boot。</li>
<li>安全框架Apache Shiro。</li>
<li>模板引擎Thymeleaf。</li>
<li>持久层框架MyBatis。</li>
<li>定时任务:Quartz。</li>
<li>数据库连接池Druid。</li>
<li>工具类Fastjson。</li>
<li>更多……</li>
</ol>
</div>
</div>
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-4">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>联系信息</h5>
</div>
<div class="ibox-content">
<p><i class="fa fa-send-o"></i> 群:<a href="https://jq.qq.com/?_wv=1027&k=5ONbr1w" target="_blank">点击加入</a>
</p>
<p><i class="fa fa-qq"></i> QQ<a href="http://wpa.qq.com/msgrd?v=3&amp;uin=346039442&amp;site=qq&amp;menu=yes" target="_blank">346039442</a>
</p>
<p><i class="fa fa-weixin"></i> 微信:<a href="javascript:;">/ *若依</a>
</p>
<p><i class="fa fa-credit-card"></i> 支付宝:<a href="javascript:;" class="支付宝信息">/ *若依</a>
</p>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>更新日志</h5>
</div>
<div class="ibox-content no-padding">
<div class="panel-body">
<div class="panel-group" id="version">
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title">
<a data-toggle="collapse" data-parent="#version" href="#v11">v1.1.1</a><code class="pull-right">2018.04.23</code>
</h5>
</div>
<div id="v11" class="panel-collapse collapse in">
<div class="panel-body">
<ol>
<li>新增表单构建器</li>
<li>代码生成优化</li>
<li>支持新增主部门</li>
<li>支持选择上级部门、上级菜单</li>
<li>新增字典管理单条删除</li>
<li>优化一些其他细节</li>
</ol>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title">
<a data-toggle="collapse" data-parent="#version" href="#v10">v1.1.0</a><code class="pull-right">2018.04.20</code>
</h5>
</div>
<div id="v10" class="panel-collapse collapse">
<div class="panel-body">
<ol>
<li>支持密码盐</li>
<li>支持新增主目录</li>
<li>支持批量生成代码</li>
<li>支持表格导出(csv、txt、doc、excel)</li>
<li>自动适应宽高模式窗体</li>
<li>重复校验(角色名、菜单名、部门名)</li>
<li>优化一些其他细节</li>
</ol>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title">
<a data-toggle="collapse" data-parent="#version" href="#v09">v1.0.9</a><code class="pull-right">2018.04.14</code>
</h5>
</div>
<div id="v09" class="panel-collapse collapse">
<div class="panel-body">
<ol>
<li>新增代码生成(生成包括 java、html、js、xml、sql)</li>
<li>新增按钮权限控制隐藏(若依首创)</li>
</ol>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title">
<a data-toggle="collapse" data-parent="#version" href="#v08">v1.0.8</a><code class="pull-right">2018.04.08</code>
</h5>
</div>
<div id="v08" class="panel-collapse collapse">
<div class="panel-body">
<ol>
<li>新增定时任务(新增、修改、删除、查询、启动/暂停)</li>
<li>新增调度日志(查询、删除)</li>
</ol>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title">
<a data-toggle="collapse" data-parent="#version" href="#v07">v1.0.7</a><code class="pull-right">2018.04.04</code>
</h5>
</div>
<div id="v07" class="panel-collapse collapse">
<div class="panel-body">
<ol>
<li>新增岗位管理(新增、修改、删除、查询)</li>
<li>优化用户管理,菜单管理部分细节</li>
</ol>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title">
<a data-toggle="collapse" data-parent="#version" href="#v06">v1.0.6</a><code class="pull-right">2018.03.15</code>
</h5>
</div>
<div id="v06" class="panel-collapse collapse">
<div class="panel-body">
<ol>
<li>新增字典管理(新增、删除、修改、查询、数据选择)</li>
<li>新增用户密码重置</li>
<li>优化一些其他细节</li>
</ol>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title">
<a data-toggle="collapse" data-parent="#version" href="#v05">v1.0.5</a><code class="pull-right">2018.03.12</code>
</h5>
</div>
<div id="v05" class="panel-collapse collapse">
<div class="panel-body">
<ol>
<li>新增菜单管理(新增、删除、修改、查询、图标选择)</li>
<li>部门管理优化(添加责任人、联系电话、邮箱、修改者)</li>
</ol>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title">
<a data-toggle="collapse" data-parent="#version" href="#v04">v1.0.4</a><code class="pull-right">2018.03.11</code>
</h5>
</div>
<div id="v04" class="panel-collapse collapse">
<div class="panel-body">
<ol>
<li>新增角色管理(新增、删除、修改、查询、菜单选择)</li>
</ol>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title">
<a data-toggle="collapse" data-parent="#version" href="#v03">v1.0.3</a><code class="pull-right">2018.03.08</code>
</h5>
</div>
<div id="v03" class="panel-collapse collapse">
<div class="panel-body">
<ol>
<li>新增用户管理(新增、删除、修改、查询、部门选择)</li>
</ol>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title">
<a data-toggle="collapse" data-parent="#version" href="#v02">v1.0.2</a><code class="pull-right">2018.03.04</code>
</h5>
</div>
<div id="v02" class="panel-collapse collapse">
<div class="panel-body">
<ol>
<li>新增部门管理 (新增、删除、修改、查询)</li>
</ol>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h5 class="panel-title">
<a data-toggle="collapse" data-parent="#version" href="#v01">v1.0.1</a><code class="pull-right">2018.03.03</code>
</h5>
</div>
<div id="v01" class="panel-collapse collapse">
<div class="panel-body">
<ol>
<li>新增在线用户 (批量强退、单条强退、查询)</li>
<li>新增登录日志 (批量删除、查询)</li>
<li>新增操作日志 (批量删除、查询、详细)</li>
<li>新增数据监控 (监控DB池连接和SQL的执行)</li>
</ol>
</div>
</div>
</div>
<div class="panel panel-default">
<div class="panel-heading">
<h4 class="panel-title">
<a data-toggle="collapse" data-parent="#version" href="#v00">v1.0.0</a><code class="pull-right">2018.03.01</code>
</h4>
</div>
<div id="v00" class="panel-collapse collapse">
<div class="panel-body">
<ol>
<li>若依管理系统正式发布。</li>
</ol>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-4">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>捐赠</h5>
</div>
<div class="ibox-content">
<div class="alert alert-warning">
请作者喝杯咖啡。
</div>
<p id="pay-qrcode">
<a href="javascript:;"><img src="/img/pay.png" width="100%" alt="请使用手机支付宝或者微信扫码支付">
</a>
</p>
</div>
</div>
</div>
</div>
</div>
<script src="/js/jquery.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
</body>
</html>

View File

@ -0,0 +1,69 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-job-add">
<div class="form-group">
<label class="col-sm-3 control-label">任务名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="jobName" id="jobName">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">任务组名:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="jobGroup" id="jobGroup">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label ">方法名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="methodName" id="methodName"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label ">方法参数:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="params" id="params"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label ">cron表达式</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="cronExpression" id="cronExpression"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">状态:</label>
<div class="col-sm-8">
<div class="radio radio-info radio-inline">
<input type="radio" id="radio1" name="status" value="0" checked="">
<label for="radio1">正常</label>
</div>
<div class="radio radio-danger radio-inline">
<input type="radio" id="radio2" name="status" value="1">
<label for="radio2">禁用</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<input id="remark" name="remark" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button th:onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript" src="/ruoyi/monitor/job/add.js">
</script>
</body>
</html>

View File

@ -0,0 +1,70 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-job-edit">
<input id="jobId" name="jobId" type="hidden" th:value="${job.jobId}"/>
<div class="form-group">
<label class="col-sm-3 control-label">任务名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="jobName" id="jobName" th:value="${job.jobName}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">任务组名:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="jobGroup" id="jobGroup" th:value="${job.jobGroup}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label ">方法名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="methodName" id="methodName" th:value="${job.methodName}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label ">方法参数:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="params" id="params" th:value="${job.params}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label ">cron表达式</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="cronExpression" id="cronExpression" th:value="${job.cronExpression}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">状态:</label>
<div class="col-sm-8">
<div class="radio radio-info radio-inline">
<input type="radio" id="radio1" th:field="*{job.status}" name="status" value="0">
<label for="radio1">正常</label>
</div>
<div class="radio radio-danger radio-inline">
<input type="radio" id="radio2" th:field="*{job.status}" name="status" value="1">
<label for="radio2">禁用</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<input id="remark" name="remark" class="form-control" type="text" th:value="${job.jobName}">
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button th:onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript" src="/ruoyi/monitor/job/edit.js">
</script>
</body>
</html>

View File

@ -0,0 +1,31 @@
<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="gray-bg">
<div class="wrapper wrapper-content">
<div class="btn-group hidden-xs" id="tableToolbar" role="group">
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:add()'" shiro:hasPermission="monitor:job:add">
<i class="glyphicon glyphicon-plus"></i>
</button>
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:batchRemove()'" shiro:hasPermission="monitor:job:batchRemove">
<i class="glyphicon glyphicon-trash"></i>
</button>
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:jobLog()'" shiro:hasPermission="monitor:job:list">
<i class="glyphicon glyphicon-heart"></i>
</button>
</div>
<table class="bootstrap-table" data-mobile-responsive="true"
data-sort-name="create_time" data-sort-order="asc">
</table>
</div>
<div th:include="include :: footer"></div>
<script type="text/javascript" src="/ruoyi/monitor/job/job.js"></script>
<script th:inline="javascript" type="text/javascript">
var editFlag = [[${@permissionService.hasPermi('monitor:job:edit')}]];
var removeFlag = [[${@permissionService.hasPermi('monitor:job:remove')}]];
var statusFlag = [[${@permissionService.hasPermi('monitor:job:changeStatus')}]];
</script>
</body>
</html>

View File

@ -0,0 +1,23 @@
<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="gray-bg">
<div class="wrapper wrapper-content">
<div class="btn-group hidden-xs" id="tableToolbar" role="group">
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:batchRemove()'" shiro:hasPermission="monitor:job:batchRemove">
<i class="glyphicon glyphicon-trash"></i>
</button>
</div>
<table class="bootstrap-table" data-mobile-responsive="true"
data-sort-name="create_time" data-sort-order="asc">
</table>
</div>
<div th:include="include :: footer"></div>
<script type="text/javascript" src="/ruoyi/monitor/job/jobLog.js"></script>
<script th:inline="javascript" type="text/javascript">
var removeFlag = [[${@permissionService.hasPermi('monitor:job:remove')}]];
</script>
</body>
</html>

View File

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="gray-bg">
<div class="wrapper wrapper-content">
<div class="btn-group hidden-xs" id="tableToolbar" role="group">
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:batchRemove()'" shiro:hasPermission="monitor:logininfor:batchRemove">
<i class="glyphicon glyphicon-trash"></i>
</button>
</div>
<table class="bootstrap-table" data-mobile-responsive="true"
data-sort-name="login_time" data-sort-order="desc">
</table>
</div>
<div th:include="include :: footer"></div>
<script type="text/javascript" src="/ruoyi/monitor/logininfor/logininfor.js"></script>
</body>
</html>

View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="gray-bg">
<div class="wrapper wrapper-content">
<div class="btn-group hidden-xs" id="tableToolbar" role="group">
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:batchForceLogout()'" shiro:hasPermission="monitor:online:batchForceLogout">
<i class="glyphicon glyphicon-trash"></i>
</button>
</div>
<table class="bootstrap-table" data-mobile-responsive="true"
data-sort-name="last_access_time" data-sort-order="desc">
</table>
</div>
<div th:include="include :: footer"></div>
<script type="text/javascript" src="/ruoyi/monitor/online/online.js"></script>
<script th:inline="javascript" type="text/javascript">
var forceFlag = [[${@permissionService.hasPermi('monitor:online:forceLogout')}]];
</script>
</body>
</html>

View File

@ -0,0 +1,53 @@
<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m-t" id="signupForm">
<div class="form-group">
<label class="col-sm-2 control-label">操作模块:</label>
<div class="form-control-static" th:text="${operLog.title} + ' / ' + ${operLog.action}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">登录信息:</label>
<div class="form-control-static" th:text="${operLog.loginName} + ' / ' + ${operLog.deptName} + ' / ' + ${operLog.operIp}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">请求地址:</label>
<div class="form-control-static" th:text="${operLog.operUrl}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">操作方法:</label>
<div class="form-control-static" th:text="${operLog.method}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">请求参数:</label>
<div class="form-control-static" th:text="${operLog.operParam}">
</div>
</div>
<div class="form-group">
<label class="col-sm-2 control-label">状态:</label>
<div class="form-control-static" th:class="${operLog.status == 0 ? 'label label-primary' : 'label label-danger'}" th:text="${operLog.status == 0 ? '正常' : '异常'}">
</div>
</div>
<div class="form-group" th:style="'display:' + ${operLog.status == 0 ? 'none' : 'block'}">
<label class="col-sm-2 control-label">异常信息:</label>
<div class="form-control-static" th:text="${operLog.errorMsg}">
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button th:onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include :: footer"></div>
</body>
</html>

View File

@ -0,0 +1,24 @@
<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="gray-bg">
<div class="wrapper wrapper-content">
<div class="btn-group hidden-xs" id="tableToolbar" role="group">
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:batchRemove()'" shiro:hasPermission="monitor:operlog:batchRemove">
<i class="glyphicon glyphicon-trash"></i>
</button>
</div>
<table class="bootstrap-table" data-mobile-responsive="true"
data-sort-name="oper_time" data-sort-order="desc">
</table>
</div>
<div th:include="include :: footer"></div>
<script type="text/javascript" src="/ruoyi/monitor/operlog/operlog.js"></script>
<script th:inline="javascript" type="text/javascript">
var detailFlag = [[${@permissionService.hasPermi('monitor:operlog:detail')}]];
</script>
</body>
</html>

View File

@ -0,0 +1,71 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-dept-add">
<input id="treeId" name="parentId" type="hidden" th:value="${dept.deptId}" />
<div class="form-group">
<label class="col-sm-3 control-label ">上级部门:</label>
<div class="col-sm-8">
<input class="form-control" type="text" onclick="selectDeptTree()" id="treeName" readonly="true" th:value="${dept.deptName}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">部门名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="deptName">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">显示排序:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="orderNum">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">负责人:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="leader">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">联系电话:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="phone">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">邮箱:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="email">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">部门状态:</label>
<div class="col-sm-8">
<div class="radio radio-info radio-inline">
<input type="radio" id="radio1" name="status" value="0" checked="">
<label for="radio1">正常</label>
</div>
<div class="radio radio-danger radio-inline">
<input type="radio" id="radio2" name="status" value="1">
<label for="radio2">禁用</label>
</div>
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button th:onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript" src="/ruoyi/system/dept/add.js">
</script>
</body>
</html>

View File

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="gray-bg">
<div class="wrapper wrapper-content">
<div class="btn-group hidden-xs" id="tableToolbar" role="group">
<div class="form-group">
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:add(100)'" shiro:hasPermission="system:dept:add">
<i class="glyphicon glyphicon-plus"></i>
</button>
</div>
</div>
<table class="bootstrap-table" data-mobile-responsive="true">
</table>
</div>
<div th:include="include :: footer"></div>
<script type="text/javascript" src="/ruoyi/system/dept/dept.js"></script>
<script th:inline="javascript" type="text/javascript">
var addFlag = [[${@permissionService.hasPermi('system:dept:add')}]];
var editFlag = [[${@permissionService.hasPermi('system:dept:edit')}]];
var removeFlag = [[${@permissionService.hasPermi('system:dept:remove')}]];
</script>
</body>
</html>

View File

@ -0,0 +1,71 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-dept-edit">
<input name="deptId" type="hidden" th:value="${dept.deptId}" />
<input id="treeId" name="parentId" type="hidden" th:value="${dept.parentId}" />
<div class="form-group">
<label class="col-sm-3 control-label ">上级部门:</label>
<div class="col-sm-8">
<input class="form-control" type="text" id="treeName" onclick="selectDeptTree()" readonly="true" th:value="${dept.parentName}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">部门名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="deptName" th:value="${dept.deptName}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">显示排序:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="orderNum" th:value="${dept.orderNum}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">负责人:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="leader" th:value="${dept.leader}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">联系电话:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="phone" th:value="${dept.phone}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">邮箱:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="email" th:value="${dept.email}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">部门状态:</label>
<div class="col-sm-8">
<div class="radio radio-info radio-inline">
<input type="radio" id="radio1" th:field="*{dept.status}" name="status" value="0">
<label for="radio1">正常</label>
</div>
<div class="radio radio-danger radio-inline">
<input type="radio" id="radio2" th:field="*{dept.status}" name="status" value="1">
<label for="radio2">禁用</label>
</div>
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button th:onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript" src="/ruoyi/system/dept/edit.js">
</script>
</body>
</html>

View File

@ -0,0 +1,40 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<link href="/ajax/libs/jquery-ztree/3.5/css/metro/zTreeStyle.css" rel="stylesheet">
<link href="/ruoyi/css/RuoYi.css" rel="stylesheet"/>
<style>
body{height:auto;font-family: "Microsoft YaHei";}
button{font-family: "SimSun","Helvetica Neue",Helvetica,Arial;}
</style>
<body class="hold-transition box box-main">
<input id="treeId" type="hidden"/>
<input id="treeName" type="hidden"/>
<div class="wrapper"><div class="treeShowHideButton" onclick="search();">
<label id="btnShow" title="显示搜索" style="display:none;"></label>
<label id="btnHide" title="隐藏搜索"></label>
</div>
<div class="treeSearchInput" id="search">
<label for="keyword">关键字:</label><input type="text" class="empty" id="keyword" maxlength="50">
<button class="btn" id="btn" onclick="searchNode()"> 搜索 </button>
</div>
<div class="treeExpandCollapse">
<a href="javascript:" id="btnExpand">展开</a> /
<a href="javascript:" id="btnCollapse">折叠</a>
</div>
<div id="tree" class="ztree treeselect"></div>
</div>
<div class="layui-layer-btn">
<a class="layui-layer-btn0" th:onclick="'javascript:loadUser()'"><i class="fa fa-check"></i> 确定</a>
<a class="layui-layer-btn1" th:onclick="'javascript:layer_close()'"><i class="fa fa-close"></i> 关闭</a>
</div>
<div th:include="include::footer"></div>
<script src="/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.all-3.5.js"></script>
<script type="text/javascript" src="/ruoyi/system/dept/tree.js"></script>
<script th:inline="javascript" type="text/javascript">
var treeName = [[${treeName}]];
$("#treeName").val(treeName);
</script>
</body>
</html>

View File

@ -0,0 +1,63 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-dict-add">
<div class="form-group">
<label class="col-sm-3 control-label ">字典标签:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="dictLabel" id="dictLabel"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label ">字典键值:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="dictValue" id="dictValue"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">字典类型:</label>
<div class="col-sm-8">
<input class="form-control" type="text" id="dictType" name="dictType" readonly="true" th:value="${dictType}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">字典排序:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="dictSort">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">状态:</label>
<div class="col-sm-8">
<div class="radio radio-info radio-inline">
<input type="radio" id="radio1" name="status" value="0" checked="">
<label for="radio1">正常</label>
</div>
<div class="radio radio-danger radio-inline">
<input type="radio" id="radio2" name="status" value="1">
<label for="radio2">禁用</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<input id="remark" name="remark" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button th:onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript" src="/ruoyi/system/dict/data/add.js"/>
</body>
</html>

View File

@ -0,0 +1,30 @@
<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="gray-bg">
<div class="wrapper wrapper-content">
<input name="dictType" id="dictType" type="hidden" th:value="${dict.dictType}" />
<div class="btn-group hidden-xs" id="tableToolbar" role="group">
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:add()'" shiro:hasPermission="system:dict:add">
<i class="glyphicon glyphicon-plus"></i>
</button>
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:batchRemove()'" shiro:hasPermission="system:dict:batchRemove">
<i class="glyphicon glyphicon-trash"></i>
</button>
</div>
<table class="bootstrap-table" data-mobile-responsive="true"
data-sort-name="create_time" data-sort-order="asc">
</table>
</div>
<div th:include="include :: footer"></div>
<script type="text/javascript" src="/ruoyi/system/dict/data/data.js"></script>
<script th:inline="javascript" type="text/javascript">
var editFlag = [[${@permissionService.hasPermi('system:dict:edit')}]];
var removeFlag = [[${@permissionService.hasPermi('system:dict:remove')}]];
</script>
</body>
</html>

View File

@ -0,0 +1,64 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-dict-edit">
<input name="dictCode" type="hidden" th:value="${dict.dictCode}" />
<div class="form-group">
<label class="col-sm-3 control-label ">字典标签:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="dictLabel" id="dictLabel" th:value="${dict.dictLabel}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label ">字典键值:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="dictValue" id="dictValue" th:value="${dict.dictValue}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">字典类型:</label>
<div class="col-sm-8">
<input class="form-control" type="text" readonly="true" th:value="${dict.dictType}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">字典排序:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="dictSort" th:value="${dict.dictSort}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">状态:</label>
<div class="col-sm-8">
<div class="radio radio-info radio-inline">
<input type="radio" id="radio1" th:field="*{dict.status}" name="status" value="0">
<label for="radio1">正常</label>
</div>
<div class="radio radio-danger radio-inline">
<input type="radio" id="radio2" th:field="*{dict.status}" name="status" value="1">
<label for="radio2">禁用</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<input id="remark" name="remark" class="form-control" type="text" th:value="${dict.remark}">
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button th:onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript" src="/ruoyi/system/dict/data/edit.js"/>
</body>
</html>

View File

@ -0,0 +1,51 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-dict-add">
<div class="form-group">
<label class="col-sm-3 control-label ">字典名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="dictName" id="dictName"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">字典类型:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="dictType" id="dictType">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">状态:</label>
<div class="col-sm-8">
<div class="radio radio-info radio-inline">
<input type="radio" id="radio1" name="status" value="0" checked="">
<label for="radio1">正常</label>
</div>
<div class="radio radio-danger radio-inline">
<input type="radio" id="radio2" name="status" value="1">
<label for="radio2">禁用</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<input id="remark" name="remark" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button th:onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript" src="/ruoyi/system/dict/type/add.js"/>
</body>
</html>

View File

@ -0,0 +1,52 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-dict-edit">
<input id="dictId" name="dictId" type="hidden" th:value="${dict.dictId}" />
<div class="form-group">
<label class="col-sm-3 control-label ">字典名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="dictName" id="dictName" th:value="${dict.dictName}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">字典类型:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="dictType" id="dictType" th:value="${dict.dictType}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">状态:</label>
<div class="col-sm-8">
<div class="radio radio-info radio-inline">
<input type="radio" id="radio1" th:field="*{dict.status}" name="status" value="0">
<label for="radio1">正常</label>
</div>
<div class="radio radio-danger radio-inline">
<input type="radio" id="radio2" th:field="*{dict.status}" name="status" value="1">
<label for="radio2">禁用</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<input id="remark" name="remark" class="form-control" type="text" th:value="${dict.remark}">
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button th:onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript" src="/ruoyi/system/dict/type/edit.js"/>
</body>
</html>

View File

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="gray-bg">
<div class="wrapper wrapper-content">
<div class="btn-group hidden-xs" id="tableToolbar" role="group">
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:add()'" shiro:hasPermission="system:dict:add">
<i class="glyphicon glyphicon-plus"></i>
</button>
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:batchRemove()'" shiro:hasPermission="system:dict:batchRemove">
<i class="glyphicon glyphicon-trash"></i>
</button>
</div>
<table class="bootstrap-table" data-mobile-responsive="true"
data-sort-name="create_time" data-sort-order="asc">
</table>
</div>
<div th:include="include :: footer"></div>
<script type="text/javascript" src="/ruoyi/system/dict/type/type.js"></script>
<script th:inline="javascript" type="text/javascript">
var editFlag = [[${@permissionService.hasPermi('system:dict:edit')}]];
var listFlag = [[${@permissionService.hasPermi('system:dict:list')}]];
var removeFlag = [[${@permissionService.hasPermi('system:dict:remove')}]];
</script>
</body>
</html>

View File

@ -0,0 +1,87 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<link href="/ajax/libs/iCheck/custom.css" rel="stylesheet">
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-menu-add">
<input id="treeId" name="parentId" type="hidden" th:value="${menu.menuId}" />
<div class="form-group">
<label class="col-sm-3 control-label ">上级菜单:</label>
<div class="col-sm-8">
<input class="form-control" type="text" onclick="selectMenuTree()" id="treeName" readonly="true" th:value="${menu.menuName}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">菜单类型:</label>
<div class="col-sm-8">
<label class="checkbox-inline i-checks"> <input type="radio" name="menuType" value="M" /> 目录 </label>
<label class="checkbox-inline i-checks"> <input type="radio" name="menuType" value="C" /> 菜单 </label>
<label class="checkbox-inline i-checks"> <input type="radio" name="menuType" value="F" /> 按钮 </label>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">菜单名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="menuName" id="menuName">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">请求地址:</label>
<div class="col-sm-8">
<input id="url" name="url" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">权限标识:</label>
<div class="col-sm-8">
<input id="perms" name="perms" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">显示排序:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="orderNum">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">图标:</label>
<div class="col-sm-8">
<input id="icon" name="icon" class="form-control" type="text" placeholder="选择图标">
<div class="ms-parent" style="width: 100%;">
<div class="icon-drop animated flipInX" style="display: none;max-height:200px;overflow-y:auto">
<div data-th-include="/system/menu/icon"></div>
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">菜单状态:</label>
<div class="col-sm-8">
<div class="radio radio-info radio-inline">
<input type="radio" id="radio1" name="visible" value="0" checked="">
<label for="radio1">显示</label>
</div>
<div class="radio radio-danger radio-inline">
<input type="radio" id="radio2" name="visible" value="1">
<label for="radio2">隐藏</label>
</div>
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button th:onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript" src="/ruoyi/system/menu/add.js"></script>
<script src="/ajax/libs/iCheck/icheck.min.js"></script>
<script>
$(document).ready(function(){$(".i-checks").iCheck({checkboxClass:"icheckbox_square-green",radioClass:"iradio_square-green",})});
</script>
</body>
</html>

View File

@ -0,0 +1,88 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<link href="/ajax/libs/iCheck/custom.css" rel="stylesheet">
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-menu-edit">
<input name="menuId" type="hidden" th:value="${menu.menuId}" />
<input id="treeId" name="parentId" type="hidden" th:value="${menu.parentId}" />
<div class="form-group">
<label class="col-sm-3 control-label ">上级菜单:</label>
<div class="col-sm-8">
<input class="form-control" type="text" onclick="selectMenuTree()" id="treeName" readonly="true" th:value="${menu.parentName == null ? '无' : menu.parentName}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">菜单类型:</label>
<div class="col-sm-8">
<label class="checkbox-inline i-checks"> <input type="radio" th:field="*{menu.menuType}" name="menuType" value="M" /> 目录 </label>
<label class="checkbox-inline i-checks"> <input type="radio" th:field="*{menu.menuType}" name="menuType" value="C" /> 菜单 </label>
<label class="checkbox-inline i-checks"> <input type="radio" th:field="*{menu.menuType}" name="menuType" value="F" /> 按钮 </label>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">菜单名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="menuName" id="menuName" th:value="${menu.menuName}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">请求地址:</label>
<div class="col-sm-8">
<input id="url" name="url" class="form-control" type="text" th:value="${menu.url}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">权限标识:</label>
<div class="col-sm-8">
<input id="perms" name="perms" class="form-control" type="text" th:value="${menu.perms}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">显示排序:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="orderNum" th:value="${menu.orderNum}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">图标:</label>
<div class="col-sm-8">
<input id="icon" name="icon" class="form-control" type="text" placeholder="选择图标" th:value="${menu.icon}">
<div class="ms-parent" style="width: 100%;">
<div class="icon-drop animated flipInX" style="display: none;max-height:200px;overflow-y:auto">
<div data-th-include="/system/menu/icon"></div>
</div>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">菜单:</label>
<div class="col-sm-8">
<div class="radio radio-info radio-inline">
<input type="radio" id="radio1" th:field="*{menu.visible}" name="visible" value="0">
<label for="radio1">显示</label>
</div>
<div class="radio radio-danger radio-inline">
<input type="radio" id="radio2" th:field="*{menu.visible}" name="visible" value="1">
<label for="radio2">隐藏</label>
</div>
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button th:onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript" src="/ruoyi/system/menu/edit.js"></script>
<script src="/ajax/libs/iCheck/icheck.min.js"></script>
<script>
$(document).ready(function(){$(".i-checks").iCheck({checkboxClass:"icheckbox_square-green",radioClass:"iradio_square-green",})});
</script>
</body>
</html>

View File

@ -0,0 +1,928 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Font Awesome Ico list</title>
<link href="/css/font-awesome.min.css" rel="stylesheet">
<script src="/js/jquery.min.js"></script>
<style type="text/css">
.ico-list .fa{
margin: 5px;
padding: 5px;
cursor:pointer;
font-size: 18px;
width: 28px;
border-radius: 3px;
}
.ico-list .fa:hover {
background-color: #1d9d74;
color: #ffffff;}
</style>
</head>
<body>
<div class="ico-list">
<i class="fa fa-address-book" aria-hidden="true"></i>
<i class="fa fa-address-book-o" aria-hidden="true"></i>
<i class="fa fa-address-card" aria-hidden="true"></i>
<i class="fa fa-address-card-o" aria-hidden="true"></i>
<i class="fa fa-adjust" aria-hidden="true"></i>
<i class="fa fa-american-sign-language-interpreting" aria-hidden="true"></i>
<i class="fa fa-anchor" aria-hidden="true"></i>
<i class="fa fa-archive" aria-hidden="true"></i>
<i class="fa fa-area-chart" aria-hidden="true"></i>
<i class="fa fa-arrows" aria-hidden="true"></i>
<i class="fa fa-arrows-h" aria-hidden="true"></i>
<i class="fa fa-arrows-v" aria-hidden="true"></i>
<i class="fa fa-asl-interpreting" aria-hidden="true"></i>
<i class="fa fa-assistive-listening-systems" aria-hidden="true"></i>
<i class="fa fa-asterisk" aria-hidden="true"></i>
<i class="fa fa-at" aria-hidden="true"></i>
<i class="fa fa-audio-description" aria-hidden="true"></i>
<i class="fa fa-automobile" aria-hidden="true"></i>
<i class="fa fa-balance-scale" aria-hidden="true"></i>
<i class="fa fa-ban" aria-hidden="true"></i>
<i class="fa fa-bank" aria-hidden="true"></i>
<i class="fa fa-bar-chart" aria-hidden="true"></i>
<i class="fa fa-bar-chart-o" aria-hidden="true"></i>
<i class="fa fa-barcode" aria-hidden="true"></i>
<i class="fa fa-bars" aria-hidden="true"></i>
<i class="fa fa-bath" aria-hidden="true"></i>
<i class="fa fa-bathtub" aria-hidden="true"></i>
<i class="fa fa-battery" aria-hidden="true"></i>
<i class="fa fa-battery-0" aria-hidden="true"></i>
<i class="fa fa-battery-1" aria-hidden="true"></i>
<i class="fa fa-battery-2" aria-hidden="true"></i>
<i class="fa fa-battery-3" aria-hidden="true"></i>
<i class="fa fa-battery-4" aria-hidden="true"></i>
<i class="fa fa-battery-empty" aria-hidden="true"></i>
<i class="fa fa-battery-full" aria-hidden="true"></i>
<i class="fa fa-battery-half" aria-hidden="true"></i>
<i class="fa fa-battery-quarter" aria-hidden="true"></i>
<i class="fa fa-battery-three-quarters" aria-hidden="true"></i>
<i class="fa fa-bed" aria-hidden="true"></i>
<i class="fa fa-beer" aria-hidden="true"></i>
<i class="fa fa-bell" aria-hidden="true"></i>
<i class="fa fa-bell-o" aria-hidden="true"></i>
<i class="fa fa-bell-slash" aria-hidden="true"></i>
<i class="fa fa-bell-slash-o" aria-hidden="true"></i>
<i class="fa fa-bicycle" aria-hidden="true"></i>
<i class="fa fa-binoculars" aria-hidden="true"></i>
<i class="fa fa-birthday-cake" aria-hidden="true"></i>
<i class="fa fa-blind" aria-hidden="true"></i>
<i class="fa fa-bluetooth" aria-hidden="true"></i>
<i class="fa fa-bluetooth-b" aria-hidden="true"></i>
<i class="fa fa-bolt" aria-hidden="true"></i>
<i class="fa fa-bomb" aria-hidden="true"></i>
<i class="fa fa-book" aria-hidden="true"></i>
<i class="fa fa-bookmark" aria-hidden="true"></i>
<i class="fa fa-bookmark-o" aria-hidden="true"></i>
<i class="fa fa-braille" aria-hidden="true"></i>
<i class="fa fa-briefcase" aria-hidden="true"></i>
<i class="fa fa-bug" aria-hidden="true"></i>
<i class="fa fa-building" aria-hidden="true"></i>
<i class="fa fa-building-o" aria-hidden="true"></i>
<i class="fa fa-bullhorn" aria-hidden="true"></i>
<i class="fa fa-bullseye" aria-hidden="true"></i>
<i class="fa fa-bus" aria-hidden="true"></i>
<i class="fa fa-cab" aria-hidden="true"></i>
<i class="fa fa-calculator" aria-hidden="true"></i>
<i class="fa fa-calendar" aria-hidden="true"></i>
<i class="fa fa-calendar-check-o" aria-hidden="true"></i>
<i class="fa fa-calendar-minus-o" aria-hidden="true"></i>
<i class="fa fa-calendar-o" aria-hidden="true"></i>
<i class="fa fa-calendar-plus-o" aria-hidden="true"></i>
<i class="fa fa-calendar-times-o" aria-hidden="true"></i>
<i class="fa fa-camera" aria-hidden="true"></i>
<i class="fa fa-camera-retro" aria-hidden="true"></i>
<i class="fa fa-car" aria-hidden="true"></i>
<i class="fa fa-caret-square-o-down" aria-hidden="true"></i>
<i class="fa fa-caret-square-o-left" aria-hidden="true"></i>
<i class="fa fa-caret-square-o-right" aria-hidden="true"></i>
<i class="fa fa-caret-square-o-up" aria-hidden="true"></i>
<i class="fa fa-cart-arrow-down" aria-hidden="true"></i>
<i class="fa fa-cart-plus" aria-hidden="true"></i>
<i class="fa fa-cc" aria-hidden="true"></i>
<i class="fa fa-certificate" aria-hidden="true"></i>
<i class="fa fa-check" aria-hidden="true"></i>
<i class="fa fa-check-circle" aria-hidden="true"></i>
<i class="fa fa-check-circle-o" aria-hidden="true"></i>
<i class="fa fa-check-square" aria-hidden="true"></i>
<i class="fa fa-check-square-o" aria-hidden="true"></i>
<i class="fa fa-child" aria-hidden="true"></i>
<i class="fa fa-circle" aria-hidden="true"></i>
<i class="fa fa-circle-o" aria-hidden="true"></i>
<i class="fa fa-circle-o-notch" aria-hidden="true"></i>
<i class="fa fa-circle-thin" aria-hidden="true"></i>
<i class="fa fa-clock-o" aria-hidden="true"></i>
<i class="fa fa-clone" aria-hidden="true"></i>
<i class="fa fa-close" aria-hidden="true"></i>
<i class="fa fa-cloud" aria-hidden="true"></i>
<i class="fa fa-cloud-download" aria-hidden="true"></i>
<i class="fa fa-cloud-upload" aria-hidden="true"></i>
<i class="fa fa-code" aria-hidden="true"></i>
<i class="fa fa-code-fork" aria-hidden="true"></i>
<i class="fa fa-coffee" aria-hidden="true"></i>
<i class="fa fa-cog" aria-hidden="true"></i>
<i class="fa fa-cogs" aria-hidden="true"></i>
<i class="fa fa-comment" aria-hidden="true"></i>
<i class="fa fa-comment-o" aria-hidden="true"></i>
<i class="fa fa-commenting" aria-hidden="true"></i>
<i class="fa fa-commenting-o" aria-hidden="true"></i>
<i class="fa fa-comments" aria-hidden="true"></i>
<i class="fa fa-comments-o" aria-hidden="true"></i>
<i class="fa fa-compass" aria-hidden="true"></i>
<i class="fa fa-copyright" aria-hidden="true"></i>
<i class="fa fa-creative-commons" aria-hidden="true"></i>
<i class="fa fa-credit-card" aria-hidden="true"></i>
<i class="fa fa-credit-card-alt" aria-hidden="true"></i>
<i class="fa fa-crop" aria-hidden="true"></i>
<i class="fa fa-crosshairs" aria-hidden="true"></i>
<i class="fa fa-cube" aria-hidden="true"></i>
<i class="fa fa-cubes" aria-hidden="true"></i>
<i class="fa fa-cutlery" aria-hidden="true"></i>
<i class="fa fa-dashboard" aria-hidden="true"></i>
<i class="fa fa-database" aria-hidden="true"></i>
<i class="fa fa-deaf" aria-hidden="true"></i>
<i class="fa fa-deafness" aria-hidden="true"></i>
<i class="fa fa-desktop" aria-hidden="true"></i>
<i class="fa fa-diamond" aria-hidden="true"></i>
<i class="fa fa-dot-circle-o" aria-hidden="true"></i>
<i class="fa fa-download" aria-hidden="true"></i>
<i class="fa fa-drivers-license" aria-hidden="true"></i>
<i class="fa fa-drivers-license-o" aria-hidden="true"></i>
<i class="fa fa-edit" aria-hidden="true"></i>
<i class="fa fa-ellipsis-h" aria-hidden="true"></i>
<i class="fa fa-ellipsis-v" aria-hidden="true"></i>
<i class="fa fa-envelope" aria-hidden="true"></i>
<i class="fa fa-envelope-o" aria-hidden="true"></i>
<i class="fa fa-envelope-open" aria-hidden="true"></i>
<i class="fa fa-envelope-open-o" aria-hidden="true"></i>
<i class="fa fa-envelope-square" aria-hidden="true"></i>
<i class="fa fa-eraser" aria-hidden="true"></i>
<i class="fa fa-exchange" aria-hidden="true"></i>
<i class="fa fa-exclamation" aria-hidden="true"></i>
<i class="fa fa-exclamation-circle" aria-hidden="true"></i>
<i class="fa fa-exclamation-triangle" aria-hidden="true"></i>
<i class="fa fa-external-link" aria-hidden="true"></i>
<i class="fa fa-external-link-square" aria-hidden="true"></i>
<i class="fa fa-eye" aria-hidden="true"></i>
<i class="fa fa-eye-slash" aria-hidden="true"></i>
<i class="fa fa-eyedropper" aria-hidden="true"></i>
<i class="fa fa-fax" aria-hidden="true"></i>
<i class="fa fa-feed" aria-hidden="true"></i>
<i class="fa fa-female" aria-hidden="true"></i>
<i class="fa fa-fighter-jet" aria-hidden="true"></i>
<i class="fa fa-file-archive-o" aria-hidden="true"></i>
<i class="fa fa-file-audio-o" aria-hidden="true"></i>
<i class="fa fa-file-code-o" aria-hidden="true"></i>
<i class="fa fa-file-excel-o" aria-hidden="true"></i>
<i class="fa fa-file-image-o" aria-hidden="true"></i>
<i class="fa fa-file-movie-o" aria-hidden="true"></i>
<i class="fa fa-file-pdf-o" aria-hidden="true"></i>
<i class="fa fa-file-photo-o" aria-hidden="true"></i>
<i class="fa fa-file-picture-o" aria-hidden="true"></i>
<i class="fa fa-file-powerpoint-o" aria-hidden="true"></i>
<i class="fa fa-file-sound-o" aria-hidden="true"></i>
<i class="fa fa-file-video-o" aria-hidden="true"></i>
<i class="fa fa-file-word-o" aria-hidden="true"></i>
<i class="fa fa-file-zip-o" aria-hidden="true"></i>
<i class="fa fa-film" aria-hidden="true"></i>
<i class="fa fa-filter" aria-hidden="true"></i>
<i class="fa fa-fire" aria-hidden="true"></i>
<i class="fa fa-fire-extinguisher" aria-hidden="true"></i>
<i class="fa fa-flag" aria-hidden="true"></i>
<i class="fa fa-flag-checkered" aria-hidden="true"></i>
<i class="fa fa-flag-o" aria-hidden="true"></i>
<i class="fa fa-flash" aria-hidden="true"></i>
<i class="fa fa-flask" aria-hidden="true"></i>
<i class="fa fa-folder" aria-hidden="true"></i>
<i class="fa fa-folder-o" aria-hidden="true"></i>
<i class="fa fa-folder-open" aria-hidden="true"></i>
<i class="fa fa-folder-open-o" aria-hidden="true"></i>
<i class="fa fa-frown-o" aria-hidden="true"></i>
<i class="fa fa-futbol-o" aria-hidden="true"></i>
<i class="fa fa-gamepad" aria-hidden="true"></i>
<i class="fa fa-gavel" aria-hidden="true"></i>
<i class="fa fa-gear" aria-hidden="true"></i>
<i class="fa fa-gears" aria-hidden="true"></i>
<i class="fa fa-gift" aria-hidden="true"></i>
<i class="fa fa-glass" aria-hidden="true"></i>
<i class="fa fa-globe" aria-hidden="true"></i>
<i class="fa fa-graduation-cap" aria-hidden="true"></i>
<i class="fa fa-group" aria-hidden="true"></i>
<i class="fa fa-hand-grab-o" aria-hidden="true"></i>
<i class="fa fa-hand-lizard-o" aria-hidden="true"></i>
<i class="fa fa-hand-paper-o" aria-hidden="true"></i>
<i class="fa fa-hand-peace-o" aria-hidden="true"></i>
<i class="fa fa-hand-pointer-o" aria-hidden="true"></i>
<i class="fa fa-hand-rock-o" aria-hidden="true"></i>
<i class="fa fa-hand-scissors-o" aria-hidden="true"></i>
<i class="fa fa-hand-spock-o" aria-hidden="true"></i>
<i class="fa fa-hand-stop-o" aria-hidden="true"></i>
<i class="fa fa-handshake-o" aria-hidden="true"></i>
<i class="fa fa-hard-of-hearing" aria-hidden="true"></i>
<i class="fa fa-hashtag" aria-hidden="true"></i>
<i class="fa fa-hdd-o" aria-hidden="true"></i>
<i class="fa fa-headphones" aria-hidden="true"></i>
<i class="fa fa-heart" aria-hidden="true"></i>
<i class="fa fa-heart-o" aria-hidden="true"></i>
<i class="fa fa-heartbeat" aria-hidden="true"></i>
<i class="fa fa-history" aria-hidden="true"></i>
<i class="fa fa-home" aria-hidden="true"></i>
<i class="fa fa-hotel" aria-hidden="true"></i>
<i class="fa fa-hourglass" aria-hidden="true"></i>
<i class="fa fa-hourglass-1" aria-hidden="true"></i>
<i class="fa fa-hourglass-2" aria-hidden="true"></i>
<i class="fa fa-hourglass-3" aria-hidden="true"></i>
<i class="fa fa-hourglass-end" aria-hidden="true"></i>
<i class="fa fa-hourglass-half" aria-hidden="true"></i>
<i class="fa fa-hourglass-o" aria-hidden="true"></i>
<i class="fa fa-hourglass-start" aria-hidden="true"></i>
<i class="fa fa-i-cursor" aria-hidden="true"></i>
<i class="fa fa-id-badge" aria-hidden="true"></i>
<i class="fa fa-id-card" aria-hidden="true"></i>
<i class="fa fa-id-card-o" aria-hidden="true"></i>
<i class="fa fa-image" aria-hidden="true"></i>
<i class="fa fa-inbox" aria-hidden="true"></i>
<i class="fa fa-industry" aria-hidden="true"></i>
<i class="fa fa-info" aria-hidden="true"></i>
<i class="fa fa-info-circle" aria-hidden="true"></i>
<i class="fa fa-institution" aria-hidden="true"></i>
<i class="fa fa-key" aria-hidden="true"></i>
<i class="fa fa-keyboard-o" aria-hidden="true"></i>
<i class="fa fa-language" aria-hidden="true"></i>
<i class="fa fa-laptop" aria-hidden="true"></i>
<i class="fa fa-leaf" aria-hidden="true"></i>
<i class="fa fa-legal" aria-hidden="true"></i>
<i class="fa fa-lemon-o" aria-hidden="true"></i>
<i class="fa fa-level-down" aria-hidden="true"></i>
<i class="fa fa-level-up" aria-hidden="true"></i>
<i class="fa fa-life-bouy" aria-hidden="true"></i>
<i class="fa fa-life-buoy" aria-hidden="true"></i>
<i class="fa fa-life-ring" aria-hidden="true"></i>
<i class="fa fa-life-saver" aria-hidden="true"></i>
<i class="fa fa-lightbulb-o" aria-hidden="true"></i>
<i class="fa fa-line-chart" aria-hidden="true"></i>
<i class="fa fa-location-arrow" aria-hidden="true"></i>
<i class="fa fa-lock" aria-hidden="true"></i>
<i class="fa fa-low-vision" aria-hidden="true"></i>
<i class="fa fa-magic" aria-hidden="true"></i>
<i class="fa fa-magnet" aria-hidden="true"></i>
<i class="fa fa-mail-forward" aria-hidden="true"></i>
<i class="fa fa-mail-reply" aria-hidden="true"></i>
<i class="fa fa-mail-reply-all" aria-hidden="true"></i>
<i class="fa fa-male" aria-hidden="true"></i>
<i class="fa fa-map" aria-hidden="true"></i>
<i class="fa fa-map-marker" aria-hidden="true"></i>
<i class="fa fa-map-o" aria-hidden="true"></i>
<i class="fa fa-map-pin" aria-hidden="true"></i>
<i class="fa fa-map-signs" aria-hidden="true"></i>
<i class="fa fa-meh-o" aria-hidden="true"></i>
<i class="fa fa-microchip" aria-hidden="true"></i>
<i class="fa fa-microphone" aria-hidden="true"></i>
<i class="fa fa-microphone-slash" aria-hidden="true"></i>
<i class="fa fa-minus" aria-hidden="true"></i>
<i class="fa fa-minus-circle" aria-hidden="true"></i>
<i class="fa fa-minus-square" aria-hidden="true"></i>
<i class="fa fa-minus-square-o" aria-hidden="true"></i>
<i class="fa fa-mobile" aria-hidden="true"></i>
<i class="fa fa-mobile-phone" aria-hidden="true"></i>
<i class="fa fa-money" aria-hidden="true"></i>
<i class="fa fa-moon-o" aria-hidden="true"></i>
<i class="fa fa-mortar-board" aria-hidden="true"></i>
<i class="fa fa-motorcycle" aria-hidden="true"></i>
<i class="fa fa-mouse-pointer" aria-hidden="true"></i>
<i class="fa fa-music" aria-hidden="true"></i>
<i class="fa fa-navicon" aria-hidden="true"></i>
<i class="fa fa-newspaper-o" aria-hidden="true"></i>
<i class="fa fa-object-group" aria-hidden="true"></i>
<i class="fa fa-object-ungroup" aria-hidden="true"></i>
<i class="fa fa-paint-brush" aria-hidden="true"></i>
<i class="fa fa-paper-plane" aria-hidden="true"></i>
<i class="fa fa-paper-plane-o" aria-hidden="true"></i>
<i class="fa fa-paw" aria-hidden="true"></i>
<i class="fa fa-pencil" aria-hidden="true"></i>
<i class="fa fa-pencil-square" aria-hidden="true"></i>
<i class="fa fa-pencil-square-o" aria-hidden="true"></i>
<i class="fa fa-percent" aria-hidden="true"></i>
<i class="fa fa-phone" aria-hidden="true"></i>
<i class="fa fa-phone-square" aria-hidden="true"></i>
<i class="fa fa-photo" aria-hidden="true"></i>
<i class="fa fa-picture-o" aria-hidden="true"></i>
<i class="fa fa-pie-chart" aria-hidden="true"></i>
<i class="fa fa-plane" aria-hidden="true"></i>
<i class="fa fa-plug" aria-hidden="true"></i>
<i class="fa fa-plus" aria-hidden="true"></i>
<i class="fa fa-plus-circle" aria-hidden="true"></i>
<i class="fa fa-plus-square" aria-hidden="true"></i>
<i class="fa fa-plus-square-o" aria-hidden="true"></i>
<i class="fa fa-podcast" aria-hidden="true"></i>
<i class="fa fa-power-off" aria-hidden="true"></i>
<i class="fa fa-print" aria-hidden="true"></i>
<i class="fa fa-puzzle-piece" aria-hidden="true"></i>
<i class="fa fa-qrcode" aria-hidden="true"></i>
<i class="fa fa-question" aria-hidden="true"></i>
<i class="fa fa-question-circle" aria-hidden="true"></i>
<i class="fa fa-question-circle-o" aria-hidden="true"></i>
<i class="fa fa-quote-left" aria-hidden="true"></i>
<i class="fa fa-quote-right" aria-hidden="true"></i>
<i class="fa fa-random" aria-hidden="true"></i>
<i class="fa fa-recycle" aria-hidden="true"></i>
<i class="fa fa-refresh" aria-hidden="true"></i>
<i class="fa fa-registered" aria-hidden="true"></i>
<i class="fa fa-remove" aria-hidden="true"></i>
<i class="fa fa-reorder" aria-hidden="true"></i>
<i class="fa fa-reply" aria-hidden="true"></i>
<i class="fa fa-reply-all" aria-hidden="true"></i>
<i class="fa fa-retweet" aria-hidden="true"></i>
<i class="fa fa-road" aria-hidden="true"></i>
<i class="fa fa-rocket" aria-hidden="true"></i>
<i class="fa fa-rss" aria-hidden="true"></i>
<i class="fa fa-rss-square" aria-hidden="true"></i>
<i class="fa fa-s15" aria-hidden="true"></i>
<i class="fa fa-search" aria-hidden="true"></i>
<i class="fa fa-search-minus" aria-hidden="true"></i>
<i class="fa fa-search-plus" aria-hidden="true"></i>
<i class="fa fa-send" aria-hidden="true"></i>
<i class="fa fa-send-o" aria-hidden="true"></i>
<i class="fa fa-server" aria-hidden="true"></i>
<i class="fa fa-share" aria-hidden="true"></i>
<i class="fa fa-share-alt" aria-hidden="true"></i>
<i class="fa fa-share-alt-square" aria-hidden="true"></i>
<i class="fa fa-share-square" aria-hidden="true"></i>
<i class="fa fa-share-square-o" aria-hidden="true"></i>
<i class="fa fa-shield" aria-hidden="true"></i>
<i class="fa fa-ship" aria-hidden="true"></i>
<i class="fa fa-shopping-bag" aria-hidden="true"></i>
<i class="fa fa-shopping-basket" aria-hidden="true"></i>
<i class="fa fa-shopping-cart" aria-hidden="true"></i>
<i class="fa fa-shower" aria-hidden="true"></i>
<i class="fa fa-sign-in" aria-hidden="true"></i>
<i class="fa fa-sign-language" aria-hidden="true"></i>
<i class="fa fa-sign-out" aria-hidden="true"></i>
<i class="fa fa-signal" aria-hidden="true"></i>
<i class="fa fa-signing" aria-hidden="true"></i>
<i class="fa fa-sitemap" aria-hidden="true"></i>
<i class="fa fa-sliders" aria-hidden="true"></i>
<i class="fa fa-smile-o" aria-hidden="true"></i>
<i class="fa fa-snowflake-o" aria-hidden="true"></i>
<i class="fa fa-soccer-ball-o" aria-hidden="true"></i>
<i class="fa fa-sort" aria-hidden="true"></i>
<i class="fa fa-sort-alpha-asc" aria-hidden="true"></i>
<i class="fa fa-sort-alpha-desc" aria-hidden="true"></i>
<i class="fa fa-sort-amount-asc" aria-hidden="true"></i>
<i class="fa fa-sort-amount-desc" aria-hidden="true"></i>
<i class="fa fa-sort-asc" aria-hidden="true"></i>
<i class="fa fa-sort-desc" aria-hidden="true"></i>
<i class="fa fa-sort-down" aria-hidden="true"></i>
<i class="fa fa-sort-numeric-asc" aria-hidden="true"></i>
<i class="fa fa-sort-numeric-desc" aria-hidden="true"></i>
<i class="fa fa-sort-up" aria-hidden="true"></i>
<i class="fa fa-space-shuttle" aria-hidden="true"></i>
<i class="fa fa-spinner" aria-hidden="true"></i>
<i class="fa fa-spoon" aria-hidden="true"></i>
<i class="fa fa-square" aria-hidden="true"></i>
<i class="fa fa-square-o" aria-hidden="true"></i>
<i class="fa fa-star" aria-hidden="true"></i>
<i class="fa fa-star-half" aria-hidden="true"></i>
<i class="fa fa-star-half-empty" aria-hidden="true"></i>
<i class="fa fa-star-half-full" aria-hidden="true"></i>
<i class="fa fa-star-half-o" aria-hidden="true"></i>
<i class="fa fa-star-o" aria-hidden="true"></i>
<i class="fa fa-sticky-note" aria-hidden="true"></i>
<i class="fa fa-sticky-note-o" aria-hidden="true"></i>
<i class="fa fa-street-view" aria-hidden="true"></i>
<i class="fa fa-suitcase" aria-hidden="true"></i>
<i class="fa fa-sun-o" aria-hidden="true"></i>
<i class="fa fa-support" aria-hidden="true"></i>
<i class="fa fa-tablet" aria-hidden="true"></i>
<i class="fa fa-tachometer" aria-hidden="true"></i>
<i class="fa fa-tag" aria-hidden="true"></i>
<i class="fa fa-tags" aria-hidden="true"></i>
<i class="fa fa-tasks" aria-hidden="true"></i>
<i class="fa fa-taxi" aria-hidden="true"></i>
<i class="fa fa-television" aria-hidden="true"></i>
<i class="fa fa-terminal" aria-hidden="true"></i>
<i class="fa fa-thermometer" aria-hidden="true"></i>
<i class="fa fa-thermometer-0" aria-hidden="true"></i>
<i class="fa fa-thermometer-1" aria-hidden="true"></i>
<i class="fa fa-thermometer-2" aria-hidden="true"></i>
<i class="fa fa-thermometer-3" aria-hidden="true"></i>
<i class="fa fa-thermometer-4" aria-hidden="true"></i>
<i class="fa fa-thermometer-empty" aria-hidden="true"></i>
<i class="fa fa-thermometer-full" aria-hidden="true"></i>
<i class="fa fa-thermometer-half" aria-hidden="true"></i>
<i class="fa fa-thermometer-quarter" aria-hidden="true"></i>
<i class="fa fa-thermometer-three-quarters" aria-hidden="true"></i>
<i class="fa fa-thumb-tack" aria-hidden="true"></i>
<i class="fa fa-thumbs-down" aria-hidden="true"></i>
<i class="fa fa-thumbs-o-down" aria-hidden="true"></i>
<i class="fa fa-thumbs-o-up" aria-hidden="true"></i>
<i class="fa fa-thumbs-up" aria-hidden="true"></i>
<i class="fa fa-ticket" aria-hidden="true"></i>
<i class="fa fa-times" aria-hidden="true"></i>
<i class="fa fa-times-circle" aria-hidden="true"></i>
<i class="fa fa-times-circle-o" aria-hidden="true"></i>
<i class="fa fa-times-rectangle" aria-hidden="true"></i>
<i class="fa fa-times-rectangle-o" aria-hidden="true"></i>
<i class="fa fa-tint" aria-hidden="true"></i>
<i class="fa fa-toggle-down" aria-hidden="true"></i>
<i class="fa fa-toggle-left" aria-hidden="true"></i>
<i class="fa fa-toggle-off" aria-hidden="true"></i>
<i class="fa fa-toggle-on" aria-hidden="true"></i>
<i class="fa fa-toggle-right" aria-hidden="true"></i>
<i class="fa fa-toggle-up" aria-hidden="true"></i>
<i class="fa fa-trademark" aria-hidden="true"></i>
<i class="fa fa-trash" aria-hidden="true"></i>
<i class="fa fa-trash-o" aria-hidden="true"></i>
<i class="fa fa-tree" aria-hidden="true"></i>
<i class="fa fa-trophy" aria-hidden="true"></i>
<i class="fa fa-truck" aria-hidden="true"></i>
<i class="fa fa-tty" aria-hidden="true"></i>
<i class="fa fa-tv" aria-hidden="true"></i>
<i class="fa fa-umbrella" aria-hidden="true"></i>
<i class="fa fa-universal-access" aria-hidden="true"></i>
<i class="fa fa-university" aria-hidden="true"></i>
<i class="fa fa-unlock" aria-hidden="true"></i>
<i class="fa fa-unlock-alt" aria-hidden="true"></i>
<i class="fa fa-unsorted" aria-hidden="true"></i>
<i class="fa fa-upload" aria-hidden="true"></i>
<i class="fa fa-user" aria-hidden="true"></i>
<i class="fa fa-user-circle" aria-hidden="true"></i>
<i class="fa fa-user-circle-o" aria-hidden="true"></i>
<i class="fa fa-user-o" aria-hidden="true"></i>
<i class="fa fa-user-plus" aria-hidden="true"></i>
<i class="fa fa-user-secret" aria-hidden="true"></i>
<i class="fa fa-user-times" aria-hidden="true"></i>
<i class="fa fa-users" aria-hidden="true"></i>
<i class="fa fa-vcard" aria-hidden="true"></i>
<i class="fa fa-vcard-o" aria-hidden="true"></i>
<i class="fa fa-video-camera" aria-hidden="true"></i>
<i class="fa fa-volume-control-phone" aria-hidden="true"></i>
<i class="fa fa-volume-down" aria-hidden="true"></i>
<i class="fa fa-volume-off" aria-hidden="true"></i>
<i class="fa fa-volume-up" aria-hidden="true"></i>
<i class="fa fa-warning" aria-hidden="true"></i>
<i class="fa fa-wheelchair" aria-hidden="true"></i>
<i class="fa fa-wheelchair-alt" aria-hidden="true"></i>
<i class="fa fa-wifi" aria-hidden="true"></i>
<i class="fa fa-window-close" aria-hidden="true"></i>
<i class="fa fa-window-close-o" aria-hidden="true"></i>
<i class="fa fa-window-maximize" aria-hidden="true"></i>
<i class="fa fa-window-minimize" aria-hidden="true"></i>
<i class="fa fa-window-restore" aria-hidden="true"></i>
<i class="fa fa-wrench" aria-hidden="true"></i>
</div>
</body>
</html>

View File

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="gray-bg">
<div class="wrapper wrapper-content">
<div class="btn-group hidden-xs" id="tableToolbar" role="group">
<div class="form-group">
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:add(0)'" shiro:hasPermission="system:menu:add">
<i class="glyphicon glyphicon-plus"></i>
</button>
</div>
</div>
<table class="bootstrap-table" data-mobile-responsive="true">
</table>
</div>
<div th:include="include :: footer"></div>
<script type="text/javascript" src="/ruoyi/system/menu/menu.js"></script>
<script th:inline="javascript" type="text/javascript">
var addFlag = [[${@permissionService.hasPermi('system:menu:add')}]];
var editFlag = [[${@permissionService.hasPermi('system:menu:edit')}]];
var removeFlag = [[${@permissionService.hasPermi('system:menu:remove')}]];
</script>
</body>
</html>

View File

@ -0,0 +1,40 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<link href="/ajax/libs/jquery-ztree/3.5/css/metro/zTreeStyle.css" rel="stylesheet">
<link href="/ruoyi/css/RuoYi.css" rel="stylesheet"/>
<style>
body{height:auto;font-family: "Microsoft YaHei";}
button{font-family: "SimSun","Helvetica Neue",Helvetica,Arial;}
</style>
<body class="hold-transition box box-main">
<input id="treeId" name="treeId" type="hidden"/>
<input id="treeName" name="treeName" type="hidden"/>
<div class="wrapper"><div class="treeShowHideButton" onclick="search();">
<label id="btnShow" title="显示搜索" style="display:none;"></label>
<label id="btnHide" title="隐藏搜索"></label>
</div>
<div class="treeSearchInput" id="search">
<label for="keyword">关键字:</label><input type="text" class="empty" id="keyword" maxlength="50">
<button class="btn" id="btn" onclick="searchNode()"> 搜索 </button>
</div>
<div class="treeExpandCollapse">
<a href="javascript:" id="btnExpand">展开</a> /
<a href="javascript:" id="btnCollapse">折叠</a>
</div>
<div id="tree" class="ztree treeselect"></div>
</div>
<div class="layui-layer-btn">
<a class="layui-layer-btn0" th:onclick="'javascript:loadMenu()'"><i class="fa fa-check"></i> 确定</a>
<a class="layui-layer-btn1" th:onclick="'javascript:layer_close()'"><i class="fa fa-close"></i> 关闭</a>
</div>
<div th:include="include::footer"></div>
<script src="/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.all-3.5.js"></script>
<script type="text/javascript" src="/ruoyi/system/menu/tree.js"></script>
<script th:inline="javascript" type="text/javascript">
var treeName = [[${treeName}]];
$("#treeName").val(treeName);
</script>
</body>
</html>

View File

@ -0,0 +1,57 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-post-add">
<div class="form-group">
<label class="col-sm-3 control-label ">岗位编码:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="postCode" id="postCode"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">岗位名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="postName" id="postName">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">显示顺序:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="postSort" id="postSort">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">岗位状态:</label>
<div class="col-sm-8">
<div class="radio radio-info radio-inline">
<input type="radio" id="radio1" name="status" value="0" checked="">
<label for="radio1">正常</label>
</div>
<div class="radio radio-danger radio-inline">
<input type="radio" id="radio2" name="status" value="1">
<label for="radio2">禁用</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<input id="remark" name="remark" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button th:onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript" src="/ruoyi/system/post/add.js">
</script>
</body>
</html>

View File

@ -0,0 +1,58 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-post-edit">
<input id="postId" name="postId" type="hidden" th:value="${post.postId}"/>
<div class="form-group">
<label class="col-sm-3 control-label ">岗位编码:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="postCode" id="postCode" th:value="${post.postCode}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">岗位名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="postName" id="postName" th:value="${post.postName}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">显示顺序:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="postSort" id="postSort" th:value="${post.postSort}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">岗位状态:</label>
<div class="col-sm-8">
<div class="radio radio-info radio-inline">
<input type="radio" id="radio1" th:field="*{post.status}" name="status" value="0">
<label for="radio1">正常</label>
</div>
<div class="radio radio-danger radio-inline">
<input type="radio" id="radio2" th:field="*{post.status}" name="status" value="1">
<label for="radio2">禁用</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<input id="remark" name="remark" class="form-control" type="text" th:value="${post.remark}">
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button th:onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript" src="/ruoyi/system/post/edit.js">
</script>
</body>
</html>

View File

@ -0,0 +1,27 @@
<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="gray-bg">
<div class="wrapper wrapper-content">
<div class="btn-group hidden-xs" id="tableToolbar" role="group">
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:add()'" shiro:hasPermission="system:post:add">
<i class="glyphicon glyphicon-plus"></i>
</button>
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:batchRemove()'" shiro:hasPermission="system:post:batchRemove">
<i class="glyphicon glyphicon-trash"></i>
</button>
</div>
<table class="bootstrap-table" data-mobile-responsive="true"
data-sort-name="post_sort" data-sort-order="asc">
</table>
</div>
<div th:include="include :: footer"></div>
<script type="text/javascript" src="/ruoyi/system/post/post.js"></script>
<script th:inline="javascript" type="text/javascript">
var editFlag = [[${@permissionService.hasPermi('system:post:edit')}]];
var removeFlag = [[${@permissionService.hasPermi('system:post:remove')}]];
</script>
</body>
</html>

View File

@ -0,0 +1,64 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<link href="/ajax/libs/jquery-ztree/3.5/css/metro/zTreeStyle.css" rel="stylesheet">
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-role-add">
<div class="form-group">
<label class="col-sm-3 control-label ">角色名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="roleName" id="roleName"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">权限字符:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="roleKey" id="roleKey">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">显示顺序:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="roleSort" id="roleSort">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">状态:</label>
<div class="col-sm-8">
<div class="onoffswitch">
<input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="status" name="status">
<label class="onoffswitch-label" for="status">
<span class="onoffswitch-inner"></span>
<span class="onoffswitch-switch"></span>
</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<input id="remark" name="remark" class="form-control" type="text">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">菜单权限</label>
<div class="col-sm-8">
<div id="menuTrees" class="ztree"></div>
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button th:onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script src="/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.all-3.5.js"></script>
<script type="text/javascript" src="/ruoyi/system/role/add.js">
</script>
</body>
</html>

View File

@ -0,0 +1,65 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<link href="/ajax/libs/jquery-ztree/3.5/css/metro/zTreeStyle.css" rel="stylesheet">
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-role-edit">
<input id="roleId" name="roleId" type="hidden" th:value="${role.roleId}"/>
<div class="form-group">
<label class="col-sm-3 control-label ">角色名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="roleName" id="roleName" th:value="${role.roleName}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">权限字符:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="roleKey" id="roleKey" th:value="${role.roleKey}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">显示顺序:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="roleSort" id="roleSort" th:value="${role.roleSort}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">状态:</label>
<div class="col-sm-8">
<div class="onoffswitch">
<input type="checkbox" th:checked="${role.status == 0 ? true : false}" class="onoffswitch-checkbox" id="status" name="status">
<label class="onoffswitch-label" for="status">
<span class="onoffswitch-inner"></span>
<span class="onoffswitch-switch"></span>
</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">备注:</label>
<div class="col-sm-8">
<input id="remark" name="remark" class="form-control" type="text" th:value="${role.remark}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">菜单权限</label>
<div class="col-sm-8">
<div id="menuTrees" class="ztree"></div>
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button th:onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script src="/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.all-3.5.js"></script>
<script type="text/javascript" src="/ruoyi/system/role/edit.js">
</script>
</body>
</html>

View File

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="gray-bg">
<div class="wrapper wrapper-content">
<div class="btn-group hidden-xs" id="tableToolbar" role="group">
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:add()'" shiro:hasPermission="system:role:add">
<i class="glyphicon glyphicon-plus"></i>
</button>
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:batchRemove()'" shiro:hasPermission="system:role:batchRemove">
<i class="glyphicon glyphicon-trash"></i>
</button>
</div>
<table class="bootstrap-table" data-mobile-responsive="true"
data-sort-name="role_sort" data-sort-order="asc">
</table>
</div>
<div th:include="include :: footer"></div>
<script src="/ajax/libs/bootstrap-table/extensions/export/bootstrap-table-export.js"></script>
<script src="/ajax/libs/bootstrap-table/extensions/export/tableExport.js"></script>
<script type="text/javascript" src="/ruoyi/system/role/role.js"></script>
<script th:inline="javascript" type="text/javascript">
var editFlag = [[${@permissionService.hasPermi('system:role:edit')}]];
var removeFlag = [[${@permissionService.hasPermi('system:role:remove')}]];
</script>
</body>
</html>

View File

@ -0,0 +1,95 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<link href="/ajax/libs/iCheck/custom.css" rel="stylesheet">
<link href="/ajax/libs/select/select2.css" rel="stylesheet">
<link href="/ruoyi/css/RuoYi.css" rel="stylesheet"/>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-user-add">
<input name="deptId" type="hidden" id="treeId"/>
<div class="form-group">
<label class="col-sm-3 control-label ">登录名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" id="loginName" name="loginName"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">部门名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" onclick="selectDeptTree()" readonly="true" id="treeName">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">用户名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="userName" id="userName">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">密码:</label>
<div class="col-sm-8">
<input class="form-control" type="password" name="password" id="password">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">邮箱:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="email" name="email">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">手机:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="phonenumber" id="phonenumber">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">状态:</label>
<div class="col-sm-8">
<div class="onoffswitch">
<input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="status" name="status">
<label class="onoffswitch-label" for="status">
<span class="onoffswitch-inner"></span>
<span class="onoffswitch-switch"></span>
</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">岗位:</label>
<div class="col-sm-8">
<select id="post" name="post" class="form-control select2-hidden-accessible" multiple="">
<option th:each="post:${posts}" th:value="${post.postId}" th:text="${post.postName}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">角色:</label>
<div class="col-sm-8">
<label th:each="role:${roles}" class="checkbox-inline i-checks">
<input name="role" type="checkbox" th:value="${role.roleId}" th:text="${role.roleName}">
</label>
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button th:onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript" src="/ruoyi/system/user/add.js">
</script>
<script src="/ajax/libs/iCheck/icheck.min.js"></script>
<script src="/ajax/libs/select/select2.js"></script>
<script>
$(document).ready(function(){$(".i-checks").iCheck({checkboxClass:"icheckbox_square-green",radioClass:"iradio_square-green",})});
</script>
</body>
</html>

View File

@ -0,0 +1,90 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<link href="/ajax/libs/iCheck/custom.css" rel="stylesheet">
<link href="/ajax/libs/select/select2.css" rel="stylesheet">
<link href="/ruoyi/css/RuoYi.css" rel="stylesheet"/>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-user-edit">
<input name="userId" type="hidden" th:value="${user.userId}" />
<input name="deptId" type="hidden" th:value="${user.deptId}" id="treeId"/>
<div class="form-group">
<label class="col-sm-3 control-label ">登录名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" readonly="true" th:value="${user.loginName}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">部门名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" onclick="selectDeptTree()" readonly="true" id="treeName" th:value="${user.dept.deptName}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">用户名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="userName" id="userName" th:value="${user.userName}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">邮箱:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="email" name="email" th:value="${user.email}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">手机:</label>
<div class="col-sm-8">
<input class="form-control" type="text" name="phonenumber" id="phonenumber" th:value="${user.phonenumber}">
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">状态:</label>
<div class="col-sm-8">
<div class="onoffswitch">
<input type="checkbox" th:checked="${user.status == 0 ? true : false}" class="onoffswitch-checkbox" id="status" name="status">
<label class="onoffswitch-label" for="status">
<span class="onoffswitch-inner"></span>
<span class="onoffswitch-switch"></span>
</label>
</div>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">岗位:</label>
<div class="col-sm-8">
<select id="post" name="post" class="form-control select2-hidden-accessible" multiple="">
<option th:each="post:${posts}" th:value="${post.postId}" th:text="${post.postName}" th:selected="${post.flag}"></option>
</select>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">角色:</label>
<div class="col-sm-8">
<label th:each="role:${roles}" class="checkbox-inline i-checks">
<input name="role" type="checkbox" th:value="${role.roleId}" th:text="${role.roleName}" th:checked="${role.flag}">
</label>
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button th:onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript" src="/ruoyi/system/user/edit.js">
</script>
<script src="/ajax/libs/iCheck/icheck.min.js"></script>
<script src="/ajax/libs/select/select2.js"></script>
<script>
$(document).ready(function(){$(".i-checks").iCheck({checkboxClass:"icheckbox_square-green",radioClass:"iradio_square-green",})});
</script>
</body>
</html>

View File

@ -0,0 +1,69 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-user-resetPwd">
<input name="userId" type="hidden" th:value="${user.userId}" />
<div class="form-group">
<label class="col-sm-3 control-label ">登录名称:</label>
<div class="col-sm-8">
<input class="form-control" type="text" readonly="true" name="loginName" th:value="${user.loginName}"/>
</div>
</div>
<div class="form-group">
<label class="col-sm-3 control-label">输入密码:</label>
<div class="col-sm-8">
<input class="form-control" type="password" name="password" id="password" value="123456">
</div>
</div>
<div class="form-group">
<div class="form-control-static col-sm-offset-9">
<button type="submit" class="btn btn-primary">提交</button>
<button th:onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
</div>
<div th:include="include :: footer"></div>
<script type="text/javascript">
$("#form-user-resetPwd").validate({
rules:{
password:{
required:true,
minlength: 6
},
},
submitHandler:function(form){
resetPwd();
}
});
function resetPwd() {
$.ajax({
cache : true,
type : "post",
url : "/system/user/resetPwd",
data : $('#form-user-resetPwd').serialize(),
async : false,
error : function(request) {
parent.layer.alert("系统错误");
},
success : function(data) {
if (data.code == 0) {
parent.layer.msg("修改成功,正在刷新数据请稍后……",{icon:1,time: 500,shade: [0.1,'#fff']},function(){
window.parent.location.reload();
});
} else {
parent.layer.alert(data.m , {icon: 2,title:"系统提示"});
}
}
});
}
</script>
</body>
</html>

View File

@ -0,0 +1,56 @@
<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<link href="/ajax/libs/jquery-layout/jquery.layout-latest.css" rel="stylesheet">
<link href="/ajax/libs/jquery-ztree/3.5/css/metro/zTreeStyle.css" rel="stylesheet">
<link href="/ruoyi/css/RuoYi.css" rel="stylesheet"/>
<body class="white-bg">
<div class="ui-layout-west">
<div class="main-content">
<div class="box box-main">
<div class="box-header">
<div class="box-title">
<i class="fa icon-grid"></i> 组织机构
</div>
<div class="box-tools pull-right">
<a type="button" class="btn btn-box-tool menuItem" href="/system/dept" title="管理机构"><i class="fa fa-edit"></i></a>
<button type="button" class="btn btn-box-tool" id="btnExpand" title="展开" style="display:none;"><i class="fa fa-chevron-up"></i></button>
<button type="button" class="btn btn-box-tool" id="btnCollapse" title="折叠"><i class="fa fa-chevron-down"></i></button>
<button type="button" class="btn btn-box-tool" id="btnRefresh" title="刷新机构"><i class="fa fa-refresh"></i></button>
</div>
</div>
<div class="ui-layout-content">
<div id="tree" class="ztree"></div>
</div>
</div>
</div>
</div>
<div class="wrapper wrapper-content ui-layout-center">
<div class="btn-group hidden-xs" id="tableToolbar" role="group">
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:add()'" shiro:hasPermission="system:user:add">
<i class="glyphicon glyphicon-plus"></i>
</button>
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:batchRemove()'" shiro:hasPermission="system:user:batchRemove">
<i class="glyphicon glyphicon-trash"></i>
</button>
</div>
<table class="bootstrap-table" data-mobile-responsive="true"
data-sort-name="create_time" data-sort-order="desc">
</table>
</div>
<div th:include="include :: footer"></div>
<script type="text/javascript" src="/ruoyi/system/user/user.js"></script>
<script src="/ajax/libs/jquery-layout/jquery.layout-latest.js"></script>
<script src="/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.all-3.5.js"></script>
<script th:inline="javascript" type="text/javascript">
var editFlag = [[${@permissionService.hasPermi('system:user:edit')}]];
var removeFlag = [[${@permissionService.hasPermi('system:user:remove')}]];
var resetPwdFlag = [[${@permissionService.hasPermi('system:user:resetPwd')}]];
</script>
</body>
</html>

View File

@ -0,0 +1,169 @@
<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<link href="/ajax/libs/iCheck/custom.css" rel="stylesheet">
<link href="/ajax/libs/datapicker/datepicker3.css" rel="stylesheet">
<style>
.droppable-active{background-color:#ffe!important}.tools a{cursor:pointer;font-size:80%}.form-body .col-md-6,.form-body .col-md-12{min-height:400px}.draggable{cursor:move}
</style>
<body class="gray-bg">
<div class="wrapper wrapper-content">
<div class="row">
<div class="col-sm-5">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>元素</h5>
<div class="ibox-tools">
<a class="collapse-link">
<i class="fa fa-chevron-up"></i>
</a>
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
<i class="fa fa-wrench"></i>
</a>
<ul class="dropdown-menu dropdown-user">
<li><a href="#">基本</a>
</li>
<li><a href="#">其他</a>
</li>
</ul>
<a class="close-link">
<i class="fa fa-times"></i>
</a>
</div>
</div>
<div class="ibox-content">
<div class="alert alert-info">
拖拽左侧的表单元素到右侧区域即可生成相应的HTML代码表单代码轻松搞定
</div>
<form role="form" class="form-horizontal m-t">
<div class="form-group draggable">
<label class="col-sm-3 control-label">文本框:</label>
<div class="col-sm-9">
<input type="text" name="" class="form-control" placeholder="请输入文本">
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-3 control-label">密码框:</label>
<div class="col-sm-9">
<input type="password" class="form-control" name="password" placeholder="请输入密码">
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-3 control-label">下拉框:</label>
<div class="col-sm-9">
<select class="form-control" name="">
<option>选项 1</option>
<option>选项 2</option>
<option>选项 3</option>
<option>选项 4</option>
</select>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-3 control-label">纯文本:</label>
<div class="col-sm-9">
<p class="form-control-static">这里是纯文字信息</p>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-3 control-label">单选框:
</label>
<div class="col-sm-9">
<label class="radio-inline i-checks"><input type="radio" checked="" value="option1" id="optionsRadios1" name="optionsRadios">选项1</label>
<label class="radio-inline i-checks"><input type="radio" value="option2" id="optionsRadios2" name="optionsRadios">选项2</label>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-3 control-label">复选框:</label>
<div class="col-sm-9">
<label class="checkbox-inline i-checks">
<input type="checkbox" value="option1" id="inlineCheckbox1">选项1</label>
<label class="checkbox-inline i-checks">
<input type="checkbox" value="option2" id="inlineCheckbox2">选项2</label>
<label class="checkbox-inline i-checks">
<input type="checkbox" value="option3" id="inlineCheckbox3">选项3</label>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-3 control-label">切换按钮:
</label>
<div class="col-sm-9">
<div class="onoffswitch">
<input type="checkbox" th:checked="true" class="onoffswitch-checkbox" id="status" name="status">
<label class="onoffswitch-label" for="status">
<span class="onoffswitch-inner"></span>
<span class="onoffswitch-switch"></span>
</label>
</div>
</div>
</div>
<div class="form-group draggable">
<label class="col-sm-3 control-label">日期选择:</label>
<div class="col-sm-9">
<div class="form-group">
<div class="input-group date">
<span class="input-group-addon"><i class="fa fa-calendar"></i></span>
<input type="text" class="form-control" value="2018-04-20">
</div>
</div>
</div>
</div>
<div class="hr-line-dashed"></div>
<div class="form-group draggable">
<div class="col-sm-12 col-sm-offset-3">
<button type="submit" class="btn btn-primary">提交</button>
<button onclick="'javascript:layer_close()'" class="btn btn-danger" type="button">关闭</button>
</div>
</div>
</form>
<div class="clearfix"></div>
</div>
</div>
</div>
<div class="col-sm-7">
<div class="ibox float-e-margins">
<div class="ibox-title">
<h5>拖拽左侧表单元素到此区域</h5>
<div class="ibox-tools">
请选择显示的列数:
<select id="n-columns">
<option value="1">显示1列</option>
<option value="2">显示2列</option>
</select>
</div>
</div>
<div class="ibox-content">
<div class="row form-body form-horizontal m-t">
<div class="col-md-12 droppable sortable">
</div>
<div class="col-md-6 droppable sortable" style="display: none;">
</div>
<div class="col-md-6 droppable sortable" style="display: none;">
</div>
</div>
<button type="submit" class="btn btn-warning" data-clipboard-text="testing" id="copy-to-clipboard">复制代码</button>
</div>
</div>
</div>
</div>
</div>
<div th:include="include :: footer"></div>
<script src="/js/jquery-ui-1.10.4.min.js"></script>
<script src="/ajax/libs/iCheck/icheck.min.js"></script>
<script src="/ajax/libs//datapicker/bootstrap-datepicker.js"></script>
<script src="/ajax/libs/beautifyhtml/beautifyhtml.js"></script>
<script>
$(document).ready(function(){setup_draggable();$("#n-columns").on("change",function(){var v=$(this).val();if(v==="1"){var $col=$(".form-body .col-md-12").toggle(true);$(".form-body .col-md-6 .draggable").each(function(i,el){$(this).remove().appendTo($col)});$(".form-body .col-md-6").toggle(false)}else{var $col=$(".form-body .col-md-6").toggle(true);$(".form-body .col-md-12 .draggable").each(function(i,el){$(this).remove().appendTo(i%2?$col[1]:$col[0])});$(".form-body .col-md-12").toggle(false)}});$("#copy-to-clipboard").on("click",function(){var $copy=$(".form-body").clone().appendTo(document.body);$copy.find(".tools, :hidden").remove();$.each(["draggable","droppable","sortable","dropped","ui-sortable","ui-draggable","ui-droppable","form-body"],function(i,c){$copy.find("."+c).removeClass(c).removeAttr("style")});var html=html_beautify($copy.html());$copy.remove();$modal=get_modal(html).modal("show");$modal.find(".btn").remove();$modal.find(".modal-title").html("复制HTML代码");$modal.find(":input:first").select().focus();return false})});var setup_draggable=function(){$(".draggable").draggable({appendTo:"body",helper:"clone"});$(".droppable").droppable({accept:".draggable",helper:"clone",hoverClass:"droppable-active",drop:function(event,ui){$(".empty-form").remove();var $orig=$(ui.draggable);if(!$(ui.draggable).hasClass("dropped")){var $el=$orig.clone().addClass("dropped").css({"position":"static","left":null,"right":null}).appendTo(this);var id=$orig.find(":input").attr("id");if(id){id=id.split("-").slice(0,-1).join("-")+"-"+(parseInt(id.split("-").slice(-1)[0])+1);$orig.find(":input").attr("id",id);$orig.find("label").attr("for",id)}$('<p class="tools col-sm-12 col-sm-offset-3"> <a class="edit-link">编辑HTML<a> | <a class="remove-link">移除</a></p>').appendTo($el)}else{if($(this)[0]!=$orig.parent()[0]){var $el=$orig.clone().css({"position":"static","left":null,"right":null}).appendTo(this);$orig.remove()}}}}).sortable()};var get_modal=function(content){var modal=$('<div class="modal" style="overflow: auto;" tabindex="-1"> <div class="modal-dialog"><div class="modal-content"><div class="modal-header"><a type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</a><h4 class="modal-title">编辑HTML</h4></div><div class="modal-body ui-front"> <textarea class="form-control" style="min-height: 200px; margin-bottom: 10px;font-family: Monaco, Fixed">'+content+'</textarea><button class="btn btn-success">更新HTML</button></div> </div></div></div>').appendTo(document.body);return modal};$(document).on("click",".edit-link",function(ev){var $el=$(this).parent().parent();var $el_copy=$el.clone();var $edit_btn=$el_copy.find(".edit-link").parent().remove();var $modal=get_modal(html_beautify($el_copy.html())).modal("show");$modal.find(":input:first").focus();$modal.find(".btn-success").click(function(ev2){var html=$modal.find("textarea").val();if(!html){$el.remove()}else{$el.html(html);$edit_btn.appendTo($el)}$modal.modal("hide");return false})});$(document).on("click",".remove-link",function(ev){$(this).parent().parent().remove()});
$(document).ready(function(){$(".i-checks").iCheck({checkboxClass:"icheckbox_square-green",radioClass:"iradio_square-green",})});
$(".input-group.date").datepicker({todayBtn: "linked",keyboardNavigation: !1,forceParse: !1,calendarWeeks: !0,autoclose: !0});
</script>
</body>
</html>

View File

@ -0,0 +1,20 @@
<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org"
xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="gray-bg">
<div class="btn-group hidden-xs" id="tableToolbar" role="group">
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:batchGenCode()'" shiro:hasPermission="tool:gen:code">
<i class="glyphicon glyphicon-arrow-down"></i>
</button>
</div>
<div class="wrapper wrapper-content">
<table class="bootstrap-table" data-mobile-responsive="true"
data-sort-name="create_time" data-sort-order="desc">
</table>
</div>
<div th:include="include :: footer"></div>
<script type="text/javascript" src="/ruoyi/tool/gen/gen.js"></script>
</body>
</html>

View File

@ -0,0 +1,29 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-${classname}-add">
#foreach($column in $columns)
#if($column.columnName != $primaryKey.columnName)
<div class="form-group">
<label class="col-sm-3 control-label">${column.columnComment}</label>
<div class="col-sm-8">
<input id="${column.attrname}" name="${column.attrname}" class="form-control" type="text">
</div>
</div>
#end
#end
<div class="form-group">
<div class="col-sm-8 col-sm-offset-3">
<button type="submit" class="btn btn-primary">提交</button>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript" src="/ruoyi/${moduleName}/${classname}/add.js">
</script>
</body>
</html>

View File

@ -0,0 +1,31 @@
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="white-bg">
<div class="wrapper wrapper-content animated fadeInRight ibox-content">
<form class="form-horizontal m" id="form-${classname}-edit">
<input id="${primaryKey.attrname}" name="${primaryKey.attrname}" th:value="${${classname}.${primaryKey.attrname}}" type="hidden">
#foreach($column in $columns)
#if($column.columnName != $primaryKey.columnName)
<div class="form-group">
<label class="col-sm-3 control-label">${column.columnComment}</label>
<div class="col-sm-8">
<input id="${column.attrname}" name="${column.attrname}" th:value="${${classname}.${column.attrname}}" class="form-control" type="text">
</div>
</div>
#end
#end
<div class="form-group">
<div class="col-sm-8 col-sm-offset-3">
<button type="submit" class="btn btn-primary">提交</button>
</div>
</div>
</div>
</form>
</div>
<div th:include="include::footer"></div>
<script type="text/javascript" src="/ruoyi/${moduleName}/${classname}/edit.js">
</script>
</body>
</html>

View File

@ -0,0 +1,25 @@
<!DOCTYPE html>
<html lang="zh_CN" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
<meta charset="utf-8">
<head th:include="include :: header"></head>
<body class="gray-bg">
<div class="wrapper wrapper-content">
<div class="btn-group hidden-xs" id="tableToolbar" role="group">
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:add()'" shiro:hasPermission="${moduleName}:${classname}:add">
<i class="glyphicon glyphicon-plus"></i>
</button>
<button type="button" class="btn btn-outline btn-default" th:onclick="'javascript:batchRemove()'" shiro:hasPermission="${moduleName}:${classname}:batchRemove">
<i class="glyphicon glyphicon-trash"></i>
</button>
</div>
<table class="bootstrap-table" data-mobile-responsive="true">
</table>
</div>
<div th:include="include :: footer"></div>
<script type="text/javascript" src="/ruoyi/${moduleName}/${classname}/${classname}.js"></script>
<script th:inline="javascript" type="text/javascript">
var editFlag = [[${@permissionService.hasPermi('${moduleName}:${classname}:edit')}]];
var removeFlag = [[${@permissionService.hasPermi('${moduleName}:${classname}:remove')}]];
</script>
</body>
</html>

View File

@ -0,0 +1,123 @@
package ${package}.controller;
import java.util.List;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import ${package}.domain.${className};
import ${package}.service.I${className}Service;
import com.ruoyi.framework.web.controller.BaseController;
import com.ruoyi.framework.web.page.TableDataInfo;
import com.ruoyi.framework.web.domain.JSON;
/**
* ${tableComment} 控制层处理
*
* @author ${author}
* @date ${datetime}
*/
@Controller
@RequestMapping("/${moduleName}/${classname}")
public class ${className}Controller extends BaseController
{
private String prefix = "${moduleName}/${classname}";
@Autowired
private I${className}Service ${classname}Service;
@GetMapping()
@RequiresPermissions("${moduleName}:${classname}:view")
String ${classname}()
{
return prefix + "/${classname}";
}
/**
* 查询${tableComment}列表
*/
@GetMapping("/list")
@RequiresPermissions("${moduleName}:${classname}:list")
@ResponseBody
public TableDataInfo list(${className} ${classname})
{
setPageInfo(${classname});
List<${className}> list = ${classname}Service.select${className}List(${classname});
return getDataTable(list);
}
/**
* 新增${tableComment}
*/
@GetMapping("/add")
@RequiresPermissions("${moduleName}:${classname}:add")
public String add()
{
return prefix + "/add";
}
/**
* 修改${tableComment}
*/
@GetMapping("/edit/{${primaryKey.attrname}}")
@RequiresPermissions("${moduleName}:${classname}:edit")
public String edit(@PathVariable("${primaryKey.attrname}") ${primaryKey.attrType} ${primaryKey.attrname}, Model model)
{
${className} ${classname} = ${classname}Service.select${className}ById(${primaryKey.attrname});
model.addAttribute("${classname}", ${classname});
return prefix + "/edit";
}
/**
* 保存${tableComment}
*/
@ResponseBody
@PostMapping("/save")
@RequiresPermissions("${moduleName}:${classname}:add")
public JSON save(${className} ${classname})
{
if (${classname}Service.save${className}(${classname}) > 0)
{
return JSON.ok();
}
return JSON.error();
}
/**
* 删除${tableComment}
*/
@PostMapping( "/remove/{${primaryKey.attrname}}")
@ResponseBody
@RequiresPermissions("${moduleName}:${classname}:remove")
public JSON remove(@PathVariable("${primaryKey.attrname}") ${primaryKey.attrType} ${primaryKey.attrname})
{
if (${classname}Service.delete${className}ById(${primaryKey.attrname}) > 0)
{
return JSON.ok();
}
return JSON.error();
}
/**
* 批量删除${tableComment}
*/
@PostMapping( "/batchRemove")
@ResponseBody
@RequiresPermissions("${moduleName}:${classname}:batchRemove")
public JSON remove(@RequestParam("ids[]") ${primaryKey.attrType}[] ${primaryKey.attrname}s)
{
int rows = ${classname}Service.batchDelete${className}(${primaryKey.attrname}s);
if (rows > 0)
{
return JSON.ok();
}
return JSON.error();
}
}

View File

@ -0,0 +1,63 @@
package ${package}.dao;
import ${package}.domain.${className};
import java.util.List;
/**
* ${tableComment} 数据层
*
* @author ${author}
* @date ${datetime}
*/
public interface I${className}Dao
{
/**
* 查询${tableComment}信息
*
* @param ${primaryKey.attrname} ${tableComment}ID
* @return ${tableComment}信息
*/
public ${className} select${className}ById(${primaryKey.attrType} ${primaryKey.attrname});
/**
* 查询${tableComment}列表
*
* @param ${classname} ${tableComment}信息
* @return ${tableComment}集合
*/
public List<${className}> select${className}List(${className} ${classname});
/**
* 新增${tableComment}
*
* @param ${classname} ${tableComment}信息
* @return 结果
*/
public int insert${className}(${className} ${classname});
/**
* 修改${tableComment}
*
* @param ${classname} ${tableComment}信息
* @return 结果
*/
public int update${className}(${className} ${classname});
/**
* 删除${tableComment}
*
* @param ${primaryKey.attrname} ${tableComment}ID
* @return 结果
*/
public int delete${className}ById(${primaryKey.attrType} ${primaryKey.attrname});
/**
* 批量删除${tableComment}
*
* @param ${primaryKey.attrname}s 需要删除的数据ID
* @return 结果
*/
public int batchDelete${className}(${primaryKey.attrType}[] ${primaryKey.attrname}s);
}

View File

@ -0,0 +1,71 @@
package ${package}.service;
import ${package}.domain.${className};
import java.util.List;
/**
* ${tableComment} 服务层
*
* @author ${author}
* @date ${datetime}
*/
public interface I${className}Service
{
/**
* 查询${tableComment}信息
*
* @param ${primaryKey.attrname} ${tableComment}ID
* @return ${tableComment}信息
*/
public ${className} select${className}ById(${primaryKey.attrType} ${primaryKey.attrname});
/**
* 查询${tableComment}列表
*
* @param ${classname} ${tableComment}信息
* @return ${tableComment}集合
*/
public List<${className}> select${className}List(${className} ${classname});
/**
* 新增${tableComment}
*
* @param ${classname} ${tableComment}信息
* @return 结果
*/
public int insert${className}(${className} ${classname});
/**
* 修改${tableComment}
*
* @param ${classname} ${tableComment}信息
* @return 结果
*/
public int update${className}(${className} ${classname});
/**
* 保存${tableComment}
*
* @param ${classname} ${tableComment}信息
* @return 结果
*/
public int save${className}(${className} ${classname});
/**
* 删除${tableComment}信息
*
* @param ${primaryKey.attrname} ${tableComment}ID
* @return 结果
*/
public int delete${className}ById(${primaryKey.attrType} ${primaryKey.attrname});
/**
* 批量删除${tableComment}信息
*
* @param ${primaryKey.attrname}s 需要删除的数据ID
* @return 结果
*/
public int batchDelete${className}(${primaryKey.attrType}[] ${primaryKey.attrname}s);
}

View File

@ -0,0 +1,117 @@
package ${package}.service;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.common.utils.StringUtils;
import ${package}.dao.I${className}Dao;
import ${package}.domain.${className};
import ${package}.service.I${className}Service;
/**
* ${tableComment} 服务层实现
*
* @author ${author}
* @date ${datetime}
*/
@Service
public class ${className}ServiceImpl implements I${className}Service
{
@Autowired
private I${className}Dao ${classname}Dao;
/**
* 查询${tableComment}信息
*
* @param ${primaryKey.attrname} ${tableComment}ID
* @return ${tableComment}信息
*/
@Override
public ${className} select${className}ById(${primaryKey.attrType} ${primaryKey.attrname})
{
return ${classname}Dao.select${className}ById(${primaryKey.attrname});
}
/**
* 查询${tableComment}列表
*
* @param ${classname} ${tableComment}信息
* @return ${tableComment}集合
*/
@Override
public List<${className}> select${className}List(${className} ${classname})
{
return ${classname}Dao.select${className}List(${classname});
}
/**
* 新增${tableComment}
*
* @param ${classname} ${tableComment}信息
* @return 结果
*/
@Override
public int insert${className}(${className} ${classname})
{
return ${classname}Dao.insert${className}(${classname});
}
/**
* 修改${tableComment}
*
* @param ${classname} ${tableComment}信息
* @return 结果
*/
@Override
public int update${className}(${className} ${classname})
{
return ${classname}Dao.update${className}(${classname});
}
/**
* 保存${tableComment}
*
* @param ${classname} ${tableComment}信息
* @return 结果
*/
@Override
public int save${className}(${className} ${classname})
{
${primaryKey.attrType} ${primaryKey.attrname} = ${classname}.get${primaryKey.attrName}();
int rows = 0;
if (StringUtils.isNotNull(${primaryKey.attrname}))
{
rows = ${classname}Dao.update${className}(${classname});
}
else
{
rows = ${classname}Dao.insert${className}(${classname});
}
return rows;
}
/**
* 删除${tableComment}信息
*
* @param ${primaryKey.attrname} ${tableComment}ID
* @return 结果
*/
@Override
public int delete${className}ById(${primaryKey.attrType} ${primaryKey.attrname})
{
return ${classname}Dao.delete${className}ById(${primaryKey.attrname});
}
/**
* 批量删除${tableComment}对象
*
* @param ${primaryKey.attrname}s 需要删除的数据ID
* @return 结果
*/
@Override
public int batchDelete${className}(${primaryKey.attrType}[] ${primaryKey.attrname}s)
{
return ${classname}Dao.batchDelete${className}(${primaryKey.attrname}s);
}
}

View File

@ -0,0 +1,42 @@
package ${package}.domain;
import java.io.Serializable;
import com.ruoyi.framework.web.page.PageDomain;
#if(${hasBigDecimal})
import java.math.BigDecimal;
#end
/**
* ${tableName} ${tableComment}
*
* @author ${author}
* @date ${datetime}
*/
public class ${className} extends PageDomain implements Serializable
{
private static final long serialVersionUID = 1L;
#foreach ($column in $columns)
/** $column.columnComment */
private $column.attrType $column.attrname;
#end
#foreach ($column in $columns)
/**
* 设置:${column.columnComment}
*/
public void set${column.attrName}($column.attrType $column.attrname)
{
this.$column.attrname = $column.attrname;
}
/**
* 获取:${column.columnComment}
*/
public $column.attrType get${column.attrName}()
{
return $column.attrname;
}
#end
}

View File

@ -0,0 +1,14 @@
$("#form-${classname}-add").validate({
rules:{
xxxx:{
required:true,
},
},
submitHandler:function(form){
add();
}
});
function add() {
_ajax_post("/${moduleName}/${classname}/save", $('#form-${classname}-add').serialize());
}

View File

@ -0,0 +1,14 @@
$("#form-${classname}-edit").validate({
rules:{
xxxx:{
required:true,
},
},
submitHandler:function(form){
edit();
}
});
function edit() {
_ajax_save("/${moduleName}/${classname}/save", $('#form-${classname}-edit').serialize());
}

View File

@ -0,0 +1,56 @@
var prefix = "/${moduleName}/${classname}"
$(function() {
var columns = [{
checkbox: true
},
#foreach($column in $columns)
{
field : '${column.attrname}',
title : '${column.columnComment}'
},
#end
{
title: '操作',
align: 'center',
formatter: function(value, row, index) {
var actions = [];
actions.push('<a class="btn btn-primary btn-sm ' + editFlag + '" href="#" title="编辑" mce_href="#" onclick="edit(\'' + row.${primaryKey.attrname} + '\')"><i class="fa fa-edit"></i></a> ');
actions.push('<a class="btn btn-warning btn-sm ' + removeFlag + '" href="#" title="删除" onclick="remove(\'' + row.${primaryKey.attrname} + '\')"><i class="fa fa-remove"></i></a>');
return actions.join('');
}
}];
var url = prefix + "/list";
$.initTable(columns, url);
});
/*${tableComment}-新增*/
function add() {
var url = prefix + '/add';
layer_showAuto("新增${tableComment}", url);
}
/*${tableComment}-修改*/
function edit(${primaryKey.attrname}) {
var url = prefix + '/edit/' + ${primaryKey.attrname};
layer_showAuto("修改${tableComment}", url);
}
// 单条删除
function remove(id) {
$.modalConfirm("确定要删除选中${tableComment}吗?", function(r) {
_ajax(prefix + "/remove/" + id, "", "post", r);
})
}
// 批量删除
function batchRemove() {
var rows = $.getSelections("${primaryKey.attrname}");
if (rows.length == 0) {
$.modalMsg("请选择要删除的数据", "warning");
return;
}
$.modalConfirm("确认要删除选中的" + rows.length + "条数据吗?", function(r) {
_ajax(prefix + '/batchRemove', { "ids": rows }, "post", r);
});
}

View File

@ -0,0 +1,25 @@
-- 菜单 SQL
insert into sys_menu (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('${tableComment}', '3', '1', '/${moduleName}/${classname}', 'C', '0', '${moduleName}:${classname}:view', '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '${tableComment}菜单');
-- 按钮父菜单ID
SELECT @parentId := LAST_INSERT_ID();
-- 按钮 SQL
insert into sys_menu (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('${tableComment}查询', @parentId, '1', '#', 'F', '0', '${moduleName}:${classname}:list', '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '');
insert into sys_menu (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('${tableComment}新增', @parentId, '2', '#', 'F', '0', '${moduleName}:${classname}:add', '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '');
insert into sys_menu (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('${tableComment}修改', @parentId, '3', '#', 'F', '0', '${moduleName}:${classname}:edit', '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '');
insert into sys_menu (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('${tableComment}删除', @parentId, '4', '#', 'F', '0', '${moduleName}:${classname}:remove', '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '');
insert into sys_menu (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('${tableComment}保存', @parentId, '5', '#', 'F', '0', '${moduleName}:${classname}:save', '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '');
insert into sys_menu (menu_name, parent_id, order_num, url,menu_type, visible, perms, icon, create_by, create_time, update_by, update_time, remark)
values('批量删除', @parentId, '6', '#', 'F', '0', '${moduleName}:${classname}:batchRemove', '#', 'admin', '2018-03-01', 'ry', '2018-03-01', '');

View File

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="${package}.dao.I${className}Dao">
<resultMap type="${className}" id="${className}Result">
#foreach ($column in $columns)
<result property="${column.attrname}" column="${column.columnName}" />
#end
</resultMap>
<select id="select${className}ById" parameterType="${primaryKey.attrType}" resultMap="${className}Result">
select #foreach($column in $columns) $column.columnName #if($velocityCount != $columns.size()),#end#end from ${tableName}
where ${primaryKey.columnName} = #{${primaryKey.attrname}}
</select>
<select id="select${className}List" parameterType="${className}" resultMap="${className}Result">
select #foreach($column in $columns) $column.columnName #if($velocityCount != $columns.size()),#end#end from ${tableName}
<where>
#foreach($column in $columns)
<if test="$column.attrname != null and $column.attrname.trim() != ''"> and $column.columnName = #{$column.attrname} </if>
#end
</where>
</select>
<insert id="insert${className}" parameterType="${className}"#if($primaryKey.extra == 'auto_increment') useGeneratedKeys="true" keyProperty="$primaryKey.attrname"#end>
insert into ${tableName}
(
#foreach($column in $columns)
#if($column.columnName != $primaryKey.columnName || $primaryKey.extra != 'auto_increment')
$column.columnName#if($velocityCount != $columns.size()), #end
#end
#end
)
values
(
#foreach($column in $columns)
#if($column.columnName != $primaryKey.columnName || $primaryKey.extra != 'auto_increment')
#{$column.attrname}#if($velocityCount != $columns.size()), #end
#end
#end
)
</insert>
<update id="update${className}" parameterType="${className}">
update ${tableName}
<set>
#foreach($column in $columns)
#if($column.columnName != $primaryKey.columnName)
<if test="$column.attrname != null">`$column.columnName` = #{$column.attrname}#if($velocityCount != $columns.size()), #end</if>
#end
#end
</set>
where ${primaryKey.columnName} = #{${primaryKey.attrname}}
</update>
<delete id="delete${className}ById">
delete from ${tableName} where ${primaryKey.columnName} = #{value}
</delete>
<delete id="batchDelete${className}">
delete from ${tableName} where ${primaryKey.columnName} in
<foreach item="${primaryKey.attrname}" collection="array" open="(" separator="," close=")">
#{${primaryKey.attrname}}
</foreach>
</delete>
</mapper>