若依3.3
parent
117a3800a9
commit
f70afaa8f9
Binary file not shown.
File diff suppressed because one or more lines are too long
@ -0,0 +1,154 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
|
||||||
|
<head>
|
||||||
|
<th:block th:include="include :: header('角色用户分配')" />
|
||||||
|
</head>
|
||||||
|
<body class="gray-bg">
|
||||||
|
<div class="container-div">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12 search-collapse">
|
||||||
|
<form id="role-form">
|
||||||
|
<input type="hidden" id="roleId" name="roleId" th:value="${role.roleId}">
|
||||||
|
<div class="select-list">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
登录名称:<input type="text" name="loginName"/>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
手机号码:<input type="text" name="phonenumber"/>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> 搜索</a>
|
||||||
|
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i> 重置</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="btn-group-sm" id="toolbar" role="group">
|
||||||
|
<a class="btn btn-success" onclick="selectUser()" shiro:hasPermission="system:role:add">
|
||||||
|
<i class="fa fa-plus"></i> 分配用户
|
||||||
|
</a>
|
||||||
|
<a class="btn btn-danger btn-del disabled" onclick="cancelAuthUserAll()" shiro:hasPermission="system:role:remove">
|
||||||
|
<i class="fa fa-remove"></i> 批量取消授权
|
||||||
|
</a>
|
||||||
|
<a class="btn btn-warning" onclick="closeItem()">
|
||||||
|
<i class="fa fa-reply-all"></i> 关闭
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-sm-12 select-table table-striped">
|
||||||
|
<table id="bootstrap-table" data-mobile-responsive="true"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<th:block th:include="include :: footer" />
|
||||||
|
<script th:inline="javascript">
|
||||||
|
var removeFlag = [[${@permission.hasPermi('system:role:remove')}]];
|
||||||
|
var datas = [[${@dict.getType('sys_normal_disable')}]];
|
||||||
|
var prefix = ctx + "system/role/authUser";
|
||||||
|
|
||||||
|
$(function() {
|
||||||
|
var options = {
|
||||||
|
url: prefix + "/allocatedList",
|
||||||
|
createUrl: prefix + "/add",
|
||||||
|
updateUrl: prefix + "/edit/{id}",
|
||||||
|
removeUrl: prefix + "/remove",
|
||||||
|
exportUrl: prefix + "/export",
|
||||||
|
importUrl: prefix + "/importData",
|
||||||
|
importTemplateUrl: prefix + "/importTemplate",
|
||||||
|
queryParams: queryParams,
|
||||||
|
sortName: "createTime",
|
||||||
|
sortOrder: "desc",
|
||||||
|
modalName: "用户",
|
||||||
|
columns: [{
|
||||||
|
checkbox: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'userId',
|
||||||
|
title: '用户ID',
|
||||||
|
visible: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'loginName',
|
||||||
|
title: '登录名称',
|
||||||
|
sortable: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'userName',
|
||||||
|
title: '用户名称'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'email',
|
||||||
|
title: '邮箱'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'phonenumber',
|
||||||
|
title: '手机'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'status',
|
||||||
|
title: '用户状态',
|
||||||
|
align: 'center',
|
||||||
|
formatter: function (value, row, index) {
|
||||||
|
return $.table.selectDictLabel(datas, value);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'createTime',
|
||||||
|
title: '创建时间',
|
||||||
|
sortable: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: '操作',
|
||||||
|
align: 'center',
|
||||||
|
formatter: function(value, row, index) {
|
||||||
|
var actions = [];
|
||||||
|
actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="#" onclick="cancelAuthUser(\'' + row.userId + '\')"><i class="fa fa-remove"></i>取消授权</a> ');
|
||||||
|
return actions.join('');
|
||||||
|
}
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
$.table.init(options);
|
||||||
|
});
|
||||||
|
|
||||||
|
function queryParams(params) {
|
||||||
|
return {
|
||||||
|
roleId: $("#roleId").val(),
|
||||||
|
pageSize: params.limit,
|
||||||
|
pageNum: params.offset / params.limit + 1,
|
||||||
|
searchValue: params.search,
|
||||||
|
orderByColumn: params.sort,
|
||||||
|
isAsc: params.order
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 分配用户-选择用户 */
|
||||||
|
function selectUser() {
|
||||||
|
var url = prefix + '/selectUser/' + $("#roleId").val();
|
||||||
|
$.modal.open("选择用户", url);
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 分配用户-批量取消授权 */
|
||||||
|
function cancelAuthUserAll(userId) {
|
||||||
|
var rows = $.table.selectFirstColumns();
|
||||||
|
if (rows.length == 0) {
|
||||||
|
$.modal.alertWarning("请至少选择一条记录");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
$.modal.confirm("确认要删除选中的" + rows.length + "条数据吗?", function() {
|
||||||
|
var data = { "roleId": $("#roleId").val(), "userIds": rows.join() };
|
||||||
|
$.operate.submit(prefix + "/cancelAll", "post", "json", data);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 分配用户-取消授权 */
|
||||||
|
function cancelAuthUser(userId) {
|
||||||
|
$.modal.confirm("确认要取消该用户角色吗?", function() {
|
||||||
|
$.operate.post(prefix + "/cancel", { "roleId": $("#roleId").val(), "userId": userId });
|
||||||
|
})
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -0,0 +1,124 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
|
||||||
|
<head>
|
||||||
|
<th:block th:include="include :: header('分配角色选择用户')" />
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body class="gray-bg">
|
||||||
|
<div class="container-div">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-sm-12 search-collapse">
|
||||||
|
<form id="role-form">
|
||||||
|
<input type="hidden" id="roleId" name="roleId" th:value="${role.roleId}">
|
||||||
|
<div class="select-list">
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
登录名称:<input type="text" name="loginName"/>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
手机号码:<input type="text" name="phonenumber"/>
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i> 搜索</a>
|
||||||
|
<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i> 重置</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="col-sm-12 select-table table-striped">
|
||||||
|
<table id="bootstrap-table" data-mobile-responsive="true"></table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<th:block th:include="include :: footer" />
|
||||||
|
<script th:inline="javascript">
|
||||||
|
var datas = [[${@dict.getType('sys_normal_disable')}]];
|
||||||
|
var prefix = ctx + "system/role/authUser";
|
||||||
|
|
||||||
|
$(function() {
|
||||||
|
var options = {
|
||||||
|
url: prefix + "/unallocatedList",
|
||||||
|
createUrl: prefix + "/add",
|
||||||
|
updateUrl: prefix + "/edit/{id}",
|
||||||
|
removeUrl: prefix + "/remove",
|
||||||
|
exportUrl: prefix + "/export",
|
||||||
|
importUrl: prefix + "/importData",
|
||||||
|
importTemplateUrl: prefix + "/importTemplate",
|
||||||
|
queryParams: queryParams,
|
||||||
|
sortName: "createTime",
|
||||||
|
sortOrder: "desc",
|
||||||
|
modalName: "用户",
|
||||||
|
showSearch: false,
|
||||||
|
showRefresh: false,
|
||||||
|
showToggle: false,
|
||||||
|
showColumns: false,
|
||||||
|
clickToSelect: true,
|
||||||
|
rememberSelected: true,
|
||||||
|
columns: [{
|
||||||
|
checkbox: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'userId',
|
||||||
|
title: '用户ID',
|
||||||
|
visible: false,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'loginName',
|
||||||
|
title: '登录名称',
|
||||||
|
sortable: true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'userName',
|
||||||
|
title: '用户名称'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'email',
|
||||||
|
title: '邮箱'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'phonenumber',
|
||||||
|
title: '手机'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'status',
|
||||||
|
title: '用户状态',
|
||||||
|
align: 'center',
|
||||||
|
formatter: function (value, row, index) {
|
||||||
|
return $.table.selectDictLabel(datas, value);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
field: 'createTime',
|
||||||
|
title: '创建时间',
|
||||||
|
sortable: true
|
||||||
|
}]
|
||||||
|
};
|
||||||
|
$.table.init(options);
|
||||||
|
});
|
||||||
|
|
||||||
|
function queryParams(params) {
|
||||||
|
return {
|
||||||
|
roleId: $("#roleId").val(),
|
||||||
|
pageSize: params.limit,
|
||||||
|
pageNum: params.offset / params.limit + 1,
|
||||||
|
searchValue: params.search,
|
||||||
|
orderByColumn: params.sort,
|
||||||
|
isAsc: params.order
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/* 分配用户-选择用户-提交 */
|
||||||
|
function submitHandler() {
|
||||||
|
var rows = $.table.selectFirstColumns();
|
||||||
|
if (rows.length == 0) {
|
||||||
|
$.modal.alertWarning("请至少选择一条记录");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
var data = { "roleId": $("#roleId").val(), "userIds": rows.join() };
|
||||||
|
$.operate.save(prefix + "/selectAll", data);
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
</body>
|
||||||
|
</html>
|
@ -1,122 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
|
|
||||||
<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-edit" th:object="${user}">
|
|
||||||
<input name="userId" type="hidden" th:field="*{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" th:field="*{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" readonly="true" th:field="*{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:field="*{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" th:field="*{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:field="*{phonenumber}">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-group">
|
|
||||||
<label class="col-sm-3 control-label">性别:</label>
|
|
||||||
<div class="col-sm-8">
|
|
||||||
<div class="radio-box">
|
|
||||||
<input type="radio" id="radio1" th:field="*{sex}" name="sex" value="0">
|
|
||||||
<label for="radio1">男</label>
|
|
||||||
</div>
|
|
||||||
<div class="radio-box">
|
|
||||||
<input type="radio" id="radio2" th:field="*{sex}" name="sex" value="1">
|
|
||||||
<label for="radio2">女</label>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div th:include="include::footer"></div>
|
|
||||||
<script>
|
|
||||||
$("#form-user-edit").validate({
|
|
||||||
onkeyup: false,
|
|
||||||
rules:{
|
|
||||||
userName:{
|
|
||||||
required:true,
|
|
||||||
},
|
|
||||||
email:{
|
|
||||||
required:true,
|
|
||||||
email:true,
|
|
||||||
remote: {
|
|
||||||
url: ctx + "system/user/checkEmailUnique",
|
|
||||||
type: "post",
|
|
||||||
dataType: "json",
|
|
||||||
data: {
|
|
||||||
"userId": function() {
|
|
||||||
return $("#userId").val();
|
|
||||||
},
|
|
||||||
"email": function() {
|
|
||||||
return $.common.trim($("#email").val());
|
|
||||||
}
|
|
||||||
},
|
|
||||||
dataFilter: function (data, type) {
|
|
||||||
return $.validate.unique(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
phonenumber:{
|
|
||||||
required:true,
|
|
||||||
isPhone:true,
|
|
||||||
remote: {
|
|
||||||
url: ctx + "system/user/checkPhoneUnique",
|
|
||||||
type: "post",
|
|
||||||
dataType: "json",
|
|
||||||
data: {
|
|
||||||
"userId": function() {
|
|
||||||
return $("#userId").val();
|
|
||||||
},
|
|
||||||
"phonenumber": function() {
|
|
||||||
return $.common.trim($("#phonenumber").val());
|
|
||||||
}
|
|
||||||
},
|
|
||||||
dataFilter: function (data, type) {
|
|
||||||
return $.validate.unique(data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
},
|
|
||||||
messages: {
|
|
||||||
"email": {
|
|
||||||
remote: "Email已经存在"
|
|
||||||
},
|
|
||||||
"phonenumber":{
|
|
||||||
remote: "手机号码已经存在"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
focusCleanup: true
|
|
||||||
});
|
|
||||||
|
|
||||||
function submitHandler() {
|
|
||||||
if ($.validate.form()) {
|
|
||||||
$.operate.save(ctx + "system/user/profile/update", $('#form-user-edit').serialize());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
@ -1,78 +1,277 @@
|
|||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
|
<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
|
||||||
<head>
|
<head>
|
||||||
<meta charset="utf-8">
|
<th:block th:include="include :: header('用户个人信息')" />
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
<style type="text/css">
|
||||||
<!--360浏览器优先以webkit内核解析-->
|
|
||||||
<title>个人信息</title>
|
|
||||||
<link rel="shortcut icon" href="favicon.ico">
|
</style>
|
||||||
<link th:href="@{/css/bootstrap.min.css}" rel="stylesheet"/>
|
|
||||||
<link th:href="@{/css/font-awesome.min.css}" rel="stylesheet"/>
|
|
||||||
<link th:href="@{/css/main/animate.min.css}" rel="stylesheet"/>
|
|
||||||
<link th:href="@{/css/main/style.min862f.css}" rel="stylesheet"/>
|
|
||||||
</head>
|
</head>
|
||||||
|
|
||||||
<body class="gray-bg">
|
<body class="gray-bg" style="font: 14px Helvetica Neue, Helvetica, PingFang SC, 微软雅黑, Tahoma, Arial, sans-serif !important;">
|
||||||
<div class="wrapper wrapper-content">
|
<input id="userId" name="userId" type="hidden" th:value="${user.userId}" />
|
||||||
<div class="row animated fadeInRight">
|
<section class="section-content">
|
||||||
<div class="col-sm-6">
|
<div class="row">
|
||||||
<div class="ibox float-e-margins">
|
<div class="col-xs-3 pr5">
|
||||||
<div class="ibox-title">
|
<div class="ibox float-e-margins">
|
||||||
<h5>个人信息</h5>
|
<div class="ibox-title ibox-title-gray dashboard-header gray-bg">
|
||||||
<div class="ibox-tools">
|
<h5>个人资料</h5>
|
||||||
|
</div>
|
||||||
|
<div class="ibox-content">
|
||||||
|
<div class="text-center">
|
||||||
|
<p><img width="120" height="120" th:src="(${user.avatar} == '') ? @{/img/profile.jpg} : @{/profile/avatar/} + ${user.avatar}"></p>
|
||||||
|
<p><a href="javascript:avatar()">修改头像</a></p>
|
||||||
|
</div>
|
||||||
|
<ul class="list-group list-group-striped">
|
||||||
|
<li class="list-group-item"><i class="fa fa-user"></i>
|
||||||
|
<b class="font-noraml">登录名称:</b>
|
||||||
|
<p class="pull-right">[[${user.loginName}]]</p>
|
||||||
|
</li>
|
||||||
|
<li class="list-group-item"><i class="fa fa-phone"></i>
|
||||||
|
<b class="font-noraml">手机号码:</b>
|
||||||
|
<p class="pull-right">[[${user.phonenumber}]]</p>
|
||||||
|
</li>
|
||||||
|
<li class="list-group-item"><i class="fa fa-group"></i>
|
||||||
|
<b class="font-noraml">所属部门:</b>
|
||||||
|
<p class="pull-right" >[[${user.dept?.deptName}]] / [[${#strings.defaultString(postGroup,'无岗位')}]]</p>
|
||||||
|
</li>
|
||||||
|
<li class="list-group-item"><i class="fa fa-envelope-o"></i>
|
||||||
|
<b class="font-noraml">邮箱地址:</b>
|
||||||
|
<p class="pull-right" >[[${user.email}]]</p>
|
||||||
|
</li>
|
||||||
|
<li class="list-group-item"><i class="fa fa-calendar"></i>
|
||||||
|
<b class="font-noraml">创建时间:</b>
|
||||||
|
<p class="pull-right" >[[${#dates.format(user.createTime, 'yyyy-MM-dd')}]]</p>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<a class="dropdown-toggle" data-toggle="dropdown" href="profile.html#">
|
<div class="col-xs-9" style="padding-left: 0px">
|
||||||
<i class="fa fa-edit"></i>
|
<div class="ibox float-e-margins">
|
||||||
</a>
|
<div class="ibox-title ibox-title-gray dashboard-header">
|
||||||
<ul class="dropdown-menu dropdown-user">
|
<h5>基本资料</h5>
|
||||||
<li><a href="javascript:edit()">修改信息</a></li>
|
</div>
|
||||||
<li><a href="javascript:resetPwd()">修改密码</a></li>
|
<div class="ibox-content">
|
||||||
<li><a href="javascript:avatar()">修改头像</a></li>
|
<div class="nav-tabs-custom">
|
||||||
|
<ul class="nav nav-tabs">
|
||||||
|
<li class="active"><a href="#user_info" data-toggle="tab" aria-expanded="true">基本资料</a></li>
|
||||||
|
<li><a href="#modify_password" data-toggle="tab" aria-expanded="false">修改密码</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
<div class="tab-content">
|
||||||
|
<!--用户信息-->
|
||||||
|
<div class="tab-pane active" id="user_info" th:object="${user}">
|
||||||
|
<form class="form-horizontal" id="form-user-edit">
|
||||||
|
<!--隐藏ID-->
|
||||||
|
<input name="id" id="id" type="hidden">
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-sm-2 control-label">用户名称:</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input type="text" autocomplete="off" class="form-control" name="userName" th:field="*{userName}" placeholder="请输入用户名称">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-sm-2 control-label">手机号码:</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input type="text" autocomplete="off" class="form-control" name="phonenumber" maxlength="11" th:field="*{phonenumber}" placeholder="请输入手机号码">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-sm-2 control-label">邮箱:</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<input type="text" autocomplete="off" class="form-control" name="email" th:field="*{email}" placeholder="请输入邮箱">
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<label class="col-sm-2 control-label">性别:</label>
|
||||||
|
<div class="col-sm-10">
|
||||||
|
<div class="radio-box">
|
||||||
|
<input type="radio" id="radio1" th:field="*{sex}" name="sex" value="0">
|
||||||
|
<label for="radio1">男</label>
|
||||||
|
</div>
|
||||||
|
<div class="radio-box">
|
||||||
|
<input type="radio" id="radio2" th:field="*{sex}" name="sex" value="1">
|
||||||
|
<label for="radio2">女</label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="col-sm-offset-2 col-sm-10">
|
||||||
|
<button type="button" class="btn btn-sm btn-primary" onclick="submitUserInfo()"><i class="fa fa-check"></i>保 存</button>
|
||||||
|
<button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
</div>
|
<!--修改密码-->
|
||||||
</div>
|
<div class="tab-pane" id="modify_password">
|
||||||
<div class="contact-box">
|
<form class="form-horizontal" id="form-user-resetPwd">
|
||||||
<div class="col-sm-4">
|
<div class="form-group">
|
||||||
<div class="text-center">
|
<label class="col-sm-2 control-label">旧密码:</label>
|
||||||
<img alt="image" class="img-circle m-t-xs img-responsive" th:src="(${user.avatar} == '') ? @{/img/profile.jpg} : @{/profile/avatar/} + ${user.avatar}">
|
<div class="col-sm-10">
|
||||||
<div class="m-t-xs font-bold">[[${user.loginIp}]]</div>
|
<input type="password" class="form-control" name="oldPassword" placeholder="请输入旧密码">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-8">
|
<div class="form-group">
|
||||||
<h3><strong>[[${user.loginName}]]</strong></h3>
|
<label class="col-sm-2 control-label">新密码:</label>
|
||||||
<p><i class="fa fa-user"></i> [[${user.userName}]] / [[${#strings.defaultString(roleGroup,'无角色')}]]
|
<div class="col-sm-10">
|
||||||
<p><i class="fa fa-phone"></i> [[${user.phonenumber}]]</p>
|
<input type="password" class="form-control" name="newPassword" id="newPassword" placeholder="请输入新密码">
|
||||||
<p><i class="fa fa-group"></i> [[${user.dept?.deptName}]] / [[${#strings.defaultString(postGroup,'无岗位')}]]</p>
|
</div>
|
||||||
<p><i class="fa fa-transgender"></i> 性别:[[${user.sex}]]</p>
|
</div>
|
||||||
<p><i class="fa fa-envelope-o"></i> [[${user.email}]]</p>
|
<div class="form-group">
|
||||||
<p><i class="fa fa-calendar"></i> [[${#dates.format(user.createTime, 'yyyy-MM-dd HH:mm:ss')}]]</p>
|
<label class="col-sm-2 control-label">确认密码:</label>
|
||||||
</div>
|
<div class="col-sm-10">
|
||||||
<div class="clearfix"></div>
|
<input type="password" class="form-control" name="confirmPassword" placeholder="请确认密码">
|
||||||
</a>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group">
|
||||||
|
<div class="col-sm-offset-2 col-sm-10">
|
||||||
|
<button type="button" class="btn btn-sm btn-primary" onclick="submitChangPassword()"><i class="fa fa-check"></i>保 存</button>
|
||||||
|
<button type="button" class="btn btn-sm btn-danger" onclick="closeItem()"><i class="fa fa-reply-all"></i>关 闭 </button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</section>
|
||||||
|
|
||||||
<div th:include="include::footer"></div>
|
<th:block th:include="include :: footer" />
|
||||||
<script>
|
<script>
|
||||||
/*用户信息-修改*/
|
|
||||||
function edit() {
|
|
||||||
var url = ctx + 'system/user/profile/edit';
|
|
||||||
$.modal.open("修改用户", url);
|
|
||||||
}
|
|
||||||
/*用户管理-重置密码*/
|
|
||||||
function resetPwd() {
|
|
||||||
var url = ctx + 'system/user/profile/resetPwd';
|
|
||||||
$.modal.open("重置密码", url, '800', '500');
|
|
||||||
}
|
|
||||||
/*用户管理-头像*/
|
/*用户管理-头像*/
|
||||||
function avatar() {
|
function avatar() {
|
||||||
var url = ctx + 'system/user/profile/avatar';
|
var url = ctx + 'system/user/profile/avatar';
|
||||||
$.modal.open("修改头像", url);
|
$.modal.open("修改头像", url);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*用户信息-修改*/
|
||||||
|
$("#form-user-edit").validate({
|
||||||
|
onkeyup: false,
|
||||||
|
rules:{
|
||||||
|
userName:{
|
||||||
|
required:true,
|
||||||
|
},
|
||||||
|
email:{
|
||||||
|
required:true,
|
||||||
|
email:true,
|
||||||
|
remote: {
|
||||||
|
url: ctx + "system/user/checkEmailUnique",
|
||||||
|
type: "post",
|
||||||
|
dataType: "json",
|
||||||
|
data: {
|
||||||
|
"userId": function() {
|
||||||
|
return $("#userId").val();
|
||||||
|
},
|
||||||
|
"email": function() {
|
||||||
|
return $.common.trim($("#email").val());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dataFilter: function (data, type) {
|
||||||
|
return $.validate.unique(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
phonenumber:{
|
||||||
|
required:true,
|
||||||
|
isPhone:true,
|
||||||
|
remote: {
|
||||||
|
url: ctx + "system/user/checkPhoneUnique",
|
||||||
|
type: "post",
|
||||||
|
dataType: "json",
|
||||||
|
data: {
|
||||||
|
"userId": function() {
|
||||||
|
return $("#userId").val();
|
||||||
|
},
|
||||||
|
"phonenumber": function() {
|
||||||
|
return $.common.trim($("#phonenumber").val());
|
||||||
|
}
|
||||||
|
},
|
||||||
|
dataFilter: function (data, type) {
|
||||||
|
return $.validate.unique(data);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
},
|
||||||
|
messages: {
|
||||||
|
"userName": {
|
||||||
|
required: "请输入用户名称",
|
||||||
|
},
|
||||||
|
"email": {
|
||||||
|
required: "请输入邮箱",
|
||||||
|
remote: "Email已经存在"
|
||||||
|
},
|
||||||
|
"phonenumber":{
|
||||||
|
required: "请输入手机号码",
|
||||||
|
remote: "手机号码已经存在"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
focusCleanup: true
|
||||||
|
});
|
||||||
|
|
||||||
|
function submitUserInfo() {
|
||||||
|
if ($.validate.form()) {
|
||||||
|
$.operate.saveModal(ctx + "system/user/profile/update", $('#form-user-edit').serialize());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/*用户管理-修改密码*/
|
||||||
|
$("#form-user-resetPwd").validate({
|
||||||
|
onkeyup: false,
|
||||||
|
rules:{
|
||||||
|
oldPassword:{
|
||||||
|
required:true,
|
||||||
|
remote: {
|
||||||
|
url: ctx + "system/user/profile/checkPassword",
|
||||||
|
type: "get",
|
||||||
|
dataType: "json",
|
||||||
|
data: {
|
||||||
|
password: function() {
|
||||||
|
return $("input[name='oldPassword']").val();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
newPassword: {
|
||||||
|
required: true,
|
||||||
|
minlength: 6,
|
||||||
|
maxlength: 20
|
||||||
|
},
|
||||||
|
confirmPassword: {
|
||||||
|
required: true,
|
||||||
|
equalTo: "#newPassword"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
messages: {
|
||||||
|
oldPassword: {
|
||||||
|
required: "请输入原密码",
|
||||||
|
remote: "原密码错误"
|
||||||
|
},
|
||||||
|
newPassword: {
|
||||||
|
required: "请输入新密码",
|
||||||
|
minlength: "密码不能小于6个字符",
|
||||||
|
maxlength: "密码不能大于20个字符"
|
||||||
|
},
|
||||||
|
confirmPassword: {
|
||||||
|
required: "请再次输入新密码",
|
||||||
|
equalTo: "两次密码输入不一致"
|
||||||
|
}
|
||||||
|
|
||||||
|
},
|
||||||
|
focusCleanup: true
|
||||||
|
});
|
||||||
|
|
||||||
|
function submitChangPassword () {
|
||||||
|
if ($.validate.form("form-user-resetPwd")) {
|
||||||
|
$.operate.saveModal(ctx + "system/user/profile/resetPwd", $('#form-user-resetPwd').serialize());
|
||||||
|
}
|
||||||
|
}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
Loading…
Reference in New Issue