若依3.2
This commit is contained in:
@ -22,7 +22,7 @@
|
||||
<!-- bootstrap-table 表格插件 -->
|
||||
<script th:src="@{/ajax/libs/bootstrap-table/bootstrap-table.min.js}"></script>
|
||||
<script th:src="@{/ajax/libs/bootstrap-table/locale/bootstrap-table-zh-CN.min.js}"></script>
|
||||
<script th:src="@{/ajax/libs/bootstrap-table/extensions/mobile/bootstrap-table-mobile.min.js}"></script>
|
||||
<script th:src="@{/ajax/libs/bootstrap-table/extensions/mobile/bootstrap-table-mobile.js}"></script>
|
||||
<script th:src="@{/ajax/libs/bootstrap-table/extensions/toolbar/bootstrap-table-toolbar.min.js}"></script>
|
||||
<!-- jquery-validate 表单验证插件 -->
|
||||
<script th:src="@{/ajax/libs/validate/jquery.validate.min.js}"></script>
|
||||
@ -38,8 +38,8 @@
|
||||
<script th:src="@{/ajax/libs/iCheck/icheck.min.js}"></script>
|
||||
<script th:src="@{/ajax/libs/layer/layer.min.js}"></script>
|
||||
<script th:src="@{/ajax/libs/layui/layui.js}"></script>
|
||||
<script th:src="@{/ruoyi/js/common.js?v=3.1.0}"></script>
|
||||
<script th:src="@{/ruoyi/js/ry-ui.js?v=3.1.0}"></script>
|
||||
<script th:src="@{/ruoyi/js/common.js?v=3.2.0}"></script>
|
||||
<script th:src="@{/ruoyi/js/ry-ui.js?v=3.2.0}"></script>
|
||||
<script src="http://tajs.qq.com/stats?sId=62048022"></script>
|
||||
<script th:inline="javascript"> var ctx = [[@{/}]]; </script>
|
||||
</div>
|
||||
|
@ -15,7 +15,8 @@
|
||||
<link th:href="@{/css/font-awesome.min.css}" rel="stylesheet"/>
|
||||
<link th:href="@{/css/animate.css}" rel="stylesheet"/>
|
||||
<link th:href="@{/css/style.css}" rel="stylesheet"/>
|
||||
<link th:href="@{/ruoyi/css/ry-ui.css?v=3.1.0}" rel="stylesheet"/>
|
||||
<link th:href="@{/css/skins.css}" rel="stylesheet"/>
|
||||
<link th:href="@{/ruoyi/css/ry-ui.css?v=3.2.0}" rel="stylesheet"/>
|
||||
<style type="text/css">
|
||||
.nav > li:hover .dropdown-menu {display: block;}
|
||||
#content-main.max { height: calc(100% - 110px); overflow: hidden; width: 100%; height: 100%; left: 0px; position: absolute; top: 0px; z-index: 9998; margin: 0; }
|
||||
@ -31,19 +32,24 @@
|
||||
</div>
|
||||
<div class="sidebar-collapse">
|
||||
<ul class="nav" id="side-menu">
|
||||
<li class="nav-header">
|
||||
<div class="dropdown profile-element"> <span>
|
||||
<img th:src="(${user.avatar} == '') ? @{/img/profile.jpg} : @{/profile/avatar/} + ${user.avatar}" 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}">用户</strong></span>
|
||||
<span class="text-muted text-xs block"><span th:text="${user.dept?.deptName}">部门</span> <b class="caret"></b></span> </span> </a>
|
||||
<ul class="dropdown-menu animated fadeInRight m-t-xs">
|
||||
<li><a class="menuItem" th:href="@{/system/user/profile}">个人信息</a></li>
|
||||
<li class="divider"></li>
|
||||
<li><a th:href="@{logout}">退出</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</li>
|
||||
<li class="logo">
|
||||
<span class="logo-lg">RuoYi</span>
|
||||
</li>
|
||||
<li>
|
||||
<div class="user-panel">
|
||||
<a class="menuItem" title="个人中心" th:href="@{/system/user/profile}">
|
||||
<div class="hide" th:text="个人中心"></div>
|
||||
<div class="pull-left image">
|
||||
<img th:src="(${user.avatar} == '') ? @{/img/profile.jpg} : @{/profile/avatar/} + ${user.avatar}" class="img-circle" alt="User Image">
|
||||
</div>
|
||||
</a>
|
||||
<div class="pull-left info">
|
||||
<p>[[${user.loginName}]]</p>
|
||||
<a href="#"><i class="fa fa-circle text-success"></i> 在线</a>
|
||||
<a th:href="@{logout}" style="padding-left:5px;"><i class="fa fa-sign-out text-danger"></i> 注销</a>
|
||||
</div>
|
||||
</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">
|
||||
@ -74,20 +80,35 @@
|
||||
<!--右侧部分开始-->
|
||||
<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">
|
||||
<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="收起菜单">
|
||||
<a class="navbar-minimalize minimalize-styl-2" style="color:#FFF;" href="#" title="收起菜单">
|
||||
<i class="fa fa-bars"></i>
|
||||
</a>
|
||||
</div>
|
||||
<ul class="nav navbar-top-links navbar-right welcome-message">
|
||||
<li>
|
||||
<span class="m-r-sm text-muted">欢迎来到若依管理后台.</span>
|
||||
</li>
|
||||
<li><a id="fullScreen"><i class="fa fa-arrows-alt"></i>全屏</a></li>
|
||||
<li><a th:href="@{logout}"><i class="fa fa-sign-out"></i>退出</a></li>
|
||||
<li><a title="全屏显示" id="fullScreen"><i class="fa fa-arrows-alt"></i> 全屏显示</a></li>
|
||||
<li class="dropdown user-menu">
|
||||
<a href="javascript:" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown">
|
||||
<img th:src="(${user.avatar} == '') ? @{/img/profile.jpg} : @{/profile/avatar/} + ${user.avatar}" class="user-image">
|
||||
<span class="hidden-xs">[[${user.userName}]]</span>
|
||||
</a>
|
||||
<ul class="dropdown-menu">
|
||||
<li class="mt5">
|
||||
<a th:href="@{/system/user/profile}" class="menuItem">
|
||||
<i class="fa fa-user"></i> 个人中心</a>
|
||||
</li>
|
||||
<li>
|
||||
<a onclick="resetPwd()" class="menuItem">
|
||||
<i class="fa fa-key"></i> 修改密码</a>
|
||||
</li>
|
||||
<li class="divider"></li>
|
||||
<li>
|
||||
<a th:href="@{logout}">
|
||||
<i class="fa fa-sign-out"></i> 退出登录</a>
|
||||
</li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
@ -137,8 +158,16 @@
|
||||
<script th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
|
||||
<script th:src="@{/ajax/libs/layer/layer.min.js}"></script>
|
||||
<script src="http://tajs.qq.com/stats?sId=62048022"></script>
|
||||
<script th:src="@{/ruoyi/js/ry-ui.js?v=3.1.0}"></script>
|
||||
<script th:src="@{/ruoyi/js/ry-ui.js?v=3.2.0}"></script>
|
||||
<script th:src="@{/ruoyi/index.js}"></script>
|
||||
<script th:src="@{/ajax/libs/fullscreen/jquery.fullscreen.js}"></script>
|
||||
<script th:inline="javascript">
|
||||
var ctx = [[@{/}]];
|
||||
/*用户管理-重置密码*/
|
||||
function resetPwd() {
|
||||
var url = ctx + 'system/user/profile/resetPwd';
|
||||
$.modal.open("重置密码", url, '800', '500');
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -11,7 +11,7 @@
|
||||
<link href="../static/css/font-awesome.min.css" th:href="@{css/font-awesome.min.css}" rel="stylesheet"/>
|
||||
<link href="../static/css/style.css" th:href="@{css/style.css}" rel="stylesheet"/>
|
||||
<link href="../static/css/login.min.css" th:href="@{css/login.min.css}" rel="stylesheet"/>
|
||||
<link href="../static/ruoyi/css/ry-ui.css" th:href="@{/ruoyi/css/ry-ui.css?v=3.1.0}" rel="stylesheet"/>
|
||||
<link href="../static/ruoyi/css/ry-ui.css" th:href="@{/ruoyi/css/ry-ui.css?v=3.2.0}" rel="stylesheet"/>
|
||||
<!--[if lt IE 9]>
|
||||
<meta http-equiv="refresh" content="0;ie.html" />
|
||||
<![endif]-->
|
||||
@ -83,7 +83,7 @@
|
||||
<script src="../static/ajax/libs/layer/layer.min.js" th:src="@{/ajax/libs/layer/layer.min.js}"></script>
|
||||
<script src="../static/ajax/libs/blockUI/jquery.blockUI.js" th:src="@{/ajax/libs/blockUI/jquery.blockUI.js}"></script>
|
||||
<script src="http://tajs.qq.com/stats?sId=62048022"></script>
|
||||
<script src="../static/ruoyi/js/ry-ui.js" th:src="@{/ruoyi/js/ry-ui.js?v=3.1.0}"></script>
|
||||
<script src="../static/ruoyi/js/ry-ui.js" th:src="@{/ruoyi/js/ry-ui.js?v=3.2.0}"></script>
|
||||
<script src="../static/ruoyi/login.js" th:src="@{/ruoyi/login.js}"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -94,13 +94,53 @@
|
||||
<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="#v32">v3.2.0</a><code class="pull-right">2019.01.18</code>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="v32" class="panel-collapse collapse in">
|
||||
<div class="panel-body">
|
||||
<ol>
|
||||
<li>部门修改时不允许选择最后节点</li>
|
||||
<li>修复部门菜单排序字段无效</li>
|
||||
<li>修复光驱磁盘导致服务监控异常</li>
|
||||
<li>登录界面去除check插件</li>
|
||||
<li>验证码文本字符间距修正</li>
|
||||
<li>升级SpringBoot到最新版本2.1.1</li>
|
||||
<li>升级MYSQL驱动</li>
|
||||
<li>修正登录必填项位置偏移</li>
|
||||
<li>Session会话检查优化</li>
|
||||
<li>Excel注解支持多级获取</li>
|
||||
<li>新增序列号生成方法</li>
|
||||
<li>修复WAR部署tomcat退出线程异常</li>
|
||||
<li>全屏操作增加默认确认/关闭</li>
|
||||
<li>修复个人信息可能导致漏洞</li>
|
||||
<li>字典数据根据下拉选择新增类型</li>
|
||||
<li>升级Summernote到最新版本v0.8.11</li>
|
||||
<li>新增用户数据导入</li>
|
||||
<li>首页主题样式更换</li>
|
||||
<li>layer扩展主题更换</li>
|
||||
<li>用户管理移动端默认隐藏左侧布局</li>
|
||||
<li>详细信息弹出层显示在顶层</li>
|
||||
<li>表格支持切换状态(用户/角色/定时任务)</li>
|
||||
<li>Druid数据源支持配置继承</li>
|
||||
<li>修正部分iPhone手机端表格适配问题</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="#v31">v3.1.0</a><code class="pull-right">2018.12.03</code>
|
||||
</h5>
|
||||
</div>
|
||||
<div id="v31" class="panel-collapse collapse in">
|
||||
<div id="v31" class="panel-collapse collapse">
|
||||
<div class="panel-body">
|
||||
<ol>
|
||||
<li>新增内网不获取IP地址</li>
|
||||
|
@ -107,12 +107,12 @@
|
||||
title: '执行表达式'
|
||||
},
|
||||
{
|
||||
field: 'status',
|
||||
title: '任务状态',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
return $.table.selectDictLabel(datas, value);
|
||||
}
|
||||
visible: statusFlag == 'hidden' ? false : true,
|
||||
title: '任务状态',
|
||||
align: 'center',
|
||||
formatter: function (value, row, index) {
|
||||
return statusTools(row);
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'createTime',
|
||||
@ -124,7 +124,6 @@
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
var actions = [];
|
||||
actions.push(statusTools(row));
|
||||
actions.push('<a class="btn btn-primary btn-xs ' + statusFlag + '" href="#" onclick="run(\'' + row.jobId + '\')"><i class="fa fa-play-circle-o"></i> 执行</a> ');
|
||||
actions.push('<a class="btn btn-warning btn-xs ' + detailFlag + '" href="#" onclick="$.operate.detail(\'' + row.jobId + '\')"><i class="fa fa-search"></i>详细</a> ');
|
||||
return actions.join('');
|
||||
@ -133,37 +132,38 @@
|
||||
};
|
||||
$.table.init(options);
|
||||
});
|
||||
|
||||
|
||||
/* 调度任务状态显示 */
|
||||
function statusTools(row) {
|
||||
if (row.status == 1) {
|
||||
return '<a class="btn btn-info btn-xs ' + statusFlag + '" href="#" onclick="start(\'' + row.jobId + '\')"><i class="fa fa-play"></i>启用</a> ';
|
||||
} else {
|
||||
return '<a class="btn btn-danger btn-xs ' + statusFlag + '" href="#" onclick="stop(\'' + row.jobId + '\')"><i class="fa fa-pause"></i>暂停</a> ';
|
||||
}
|
||||
return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="start(\'' + row.jobId + '\')"></i> ';
|
||||
} else {
|
||||
return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="stop(\'' + row.jobId + '\')"></i> ';
|
||||
}
|
||||
}
|
||||
|
||||
/*立即执行一次*/
|
||||
/* 立即执行一次 */
|
||||
function run(jobId) {
|
||||
$.modal.confirm("确认要立即执行任务吗?", function() {
|
||||
$.operate.post(prefix + "/run", { "jobId": jobId});
|
||||
})
|
||||
}
|
||||
|
||||
/*调度任务-停用*/
|
||||
/* 调度任务-停用 */
|
||||
function stop(jobId) {
|
||||
$.modal.confirm("确认要停用任务吗?", function() {
|
||||
$.operate.post(prefix + "/changeStatus", { "jobId": jobId, "status": 1 });
|
||||
})
|
||||
}
|
||||
|
||||
/*调度任务-启用*/
|
||||
/* 调度任务-启用 */
|
||||
function start(jobId) {
|
||||
$.modal.confirm("确认要启用任务吗?", function() {
|
||||
$.operate.post(prefix + "/changeStatus", { "jobId": jobId, "status": 0 });
|
||||
})
|
||||
}
|
||||
|
||||
//调度日志查询
|
||||
/* 调度日志查询 */
|
||||
function jobLog(id) {
|
||||
var url = ctx + 'monitor/jobLog';
|
||||
createMenuItem(url, "调度日志");
|
||||
|
@ -47,8 +47,38 @@
|
||||
|
||||
$('.summernote').summernote({
|
||||
height : '220px',
|
||||
lang : 'zh-CN'
|
||||
lang : 'zh-CN',
|
||||
callbacks: {
|
||||
onImageUpload: function (files) {
|
||||
sendFile(files[0], this);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
// 上传文件
|
||||
function sendFile(file, obj) {
|
||||
var data = new FormData();
|
||||
data.append("file", file);
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: ctx + "common/upload",
|
||||
data: data,
|
||||
cache: false,
|
||||
contentType: false,
|
||||
processData: false,
|
||||
dataType: 'json',
|
||||
success: function(result) {
|
||||
if (result.code == web_status.SUCCESS) {
|
||||
$(obj).summernote('editor.insertImage', result.url, result.fileName);
|
||||
} else {
|
||||
$.modal.alertError(result.msg);
|
||||
}
|
||||
},
|
||||
error: function(error) {
|
||||
$.modal.alertWarning("图片上传失败。");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$("#form-notice-add").validate({
|
||||
rules:{
|
||||
|
@ -48,13 +48,43 @@
|
||||
|
||||
$(function() {
|
||||
$('.summernote').summernote({
|
||||
height : '220px',
|
||||
lang : 'zh-CN'
|
||||
height : '220px',
|
||||
lang : 'zh-CN',
|
||||
callbacks: {
|
||||
onImageUpload: function (files) {
|
||||
sendFile(files[0], this);
|
||||
}
|
||||
}
|
||||
});
|
||||
var content = $("#noticeContent").val();
|
||||
$('#editor').summernote('code', content);
|
||||
});
|
||||
|
||||
// 上传文件
|
||||
function sendFile(file, obj) {
|
||||
var data = new FormData();
|
||||
data.append("file", file);
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: ctx + "common/upload",
|
||||
data: data,
|
||||
cache: false,
|
||||
contentType: false,
|
||||
processData: false,
|
||||
dataType: 'json',
|
||||
success: function(result) {
|
||||
if (result.code == web_status.SUCCESS) {
|
||||
$(obj).summernote('editor.insertImage', result.url, result.fileName);
|
||||
} else {
|
||||
$.modal.alertError(result.msg);
|
||||
}
|
||||
},
|
||||
error: function(error) {
|
||||
$.modal.alertWarning("图片上传失败。");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$("#form-notice-edit").validate({
|
||||
rules:{
|
||||
noticeTitle:{
|
||||
|
@ -100,12 +100,12 @@
|
||||
sortable: true
|
||||
},
|
||||
{
|
||||
field: 'status',
|
||||
title: '状态',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
return $.table.selectDictLabel(datas, value);
|
||||
}
|
||||
visible: editFlag == 'hidden' ? false : true,
|
||||
title: '角色状态',
|
||||
align: 'center',
|
||||
formatter: function (value, row, index) {
|
||||
return statusTools(row);
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'createTime',
|
||||
@ -127,11 +127,34 @@
|
||||
$.table.init(options);
|
||||
});
|
||||
|
||||
/*角色管理-分配数据权限*/
|
||||
/* 角色管理-分配数据权限 */
|
||||
function rule(roleId) {
|
||||
var url = prefix + '/rule/' + roleId;
|
||||
$.modal.open("分配数据权限", url);
|
||||
}
|
||||
|
||||
/* 角色状态显示 */
|
||||
function statusTools(row) {
|
||||
if (row.status == 1) {
|
||||
return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.roleId + '\')"></i> ';
|
||||
} else {
|
||||
return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.roleId + '\')"></i> ';
|
||||
}
|
||||
}
|
||||
|
||||
/* 角色管理-停用 */
|
||||
function disable(roleId) {
|
||||
$.modal.confirm("确认要停用角色吗?", function() {
|
||||
$.operate.post(prefix + "/changeStatus", { "roleId": roleId, "status": 1 });
|
||||
})
|
||||
}
|
||||
|
||||
/* 角色管理启用 */
|
||||
function enable(roleId) {
|
||||
$.modal.confirm("确认要启用角色吗?", function() {
|
||||
$.operate.post(prefix + "/changeStatus", { "roleId": roleId, "status": 0 });
|
||||
})
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
@ -151,12 +151,12 @@
|
||||
title: '手机'
|
||||
},
|
||||
{
|
||||
field: 'status',
|
||||
title: '状态',
|
||||
align: 'center',
|
||||
formatter: function(value, row, index) {
|
||||
return $.table.selectDictLabel(datas, value);
|
||||
}
|
||||
visible: editFlag == 'hidden' ? false : true,
|
||||
title: '用户状态',
|
||||
align: 'center',
|
||||
formatter: function (value, row, index) {
|
||||
return statusTools(row);
|
||||
}
|
||||
},
|
||||
{
|
||||
field: 'createTime',
|
||||
@ -211,17 +211,40 @@
|
||||
queryDeptTree();
|
||||
});
|
||||
|
||||
/*用户管理-部门*/
|
||||
/* 用户管理-部门 */
|
||||
function dept() {
|
||||
var url = ctx + "system/dept";
|
||||
createMenuItem(url, "部门管理");
|
||||
}
|
||||
|
||||
/*用户管理-重置密码*/
|
||||
/* 用户管理-重置密码 */
|
||||
function resetPwd(userId) {
|
||||
var url = prefix + '/resetPwd/' + userId;
|
||||
$.modal.open("重置密码", url, '800', '300');
|
||||
}
|
||||
|
||||
/* 用户状态显示 */
|
||||
function statusTools(row) {
|
||||
if (row.status == 1) {
|
||||
return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.userId + '\')"></i> ';
|
||||
} else {
|
||||
return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.userId + '\')"></i> ';
|
||||
}
|
||||
}
|
||||
|
||||
/* 用户管理-停用 */
|
||||
function disable(userId) {
|
||||
$.modal.confirm("确认要停用用户吗?", function() {
|
||||
$.operate.post(prefix + "/changeStatus", { "userId": userId, "status": 1 });
|
||||
})
|
||||
}
|
||||
|
||||
/* 用户管理启用 */
|
||||
function enable(userId) {
|
||||
$.modal.confirm("确认要启用用户吗?", function() {
|
||||
$.operate.post(prefix + "/changeStatus", { "userId": userId, "status": 0 });
|
||||
})
|
||||
}
|
||||
</script>
|
||||
</body>
|
||||
<form id="importForm" enctype="multipart/form-data" class="mt20 mb10" style="display: none;">
|
||||
|
Reference in New Issue
Block a user