提交版本1.0.3
This commit is contained in:
parent
dbb792c46c
commit
83921c6033
2
pom.xml
2
pom.xml
|
|
@ -5,7 +5,7 @@
|
||||||
|
|
||||||
<groupId>com.ruoyi</groupId>
|
<groupId>com.ruoyi</groupId>
|
||||||
<artifactId>RuoYi</artifactId>
|
<artifactId>RuoYi</artifactId>
|
||||||
<version>1.0.2</version>
|
<version>1.0.3</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>RuoYi</name>
|
<name>RuoYi</name>
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@ public interface IRoleService
|
||||||
* @return 权限列表
|
* @return 权限列表
|
||||||
*/
|
*/
|
||||||
public Set<String> selectRoleKeys(Long userId);
|
public Set<String> selectRoleKeys(Long userId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据用户ID查询角色
|
* 根据用户ID查询角色
|
||||||
*
|
*
|
||||||
|
|
@ -28,4 +28,11 @@ public interface IRoleService
|
||||||
*/
|
*/
|
||||||
public List<Role> selectRolesByUserId(Long userId);
|
public List<Role> selectRolesByUserId(Long userId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询所有角色
|
||||||
|
*
|
||||||
|
* @return 权限列表
|
||||||
|
*/
|
||||||
|
public List<Role> selectRoleAll();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -67,4 +67,14 @@ public class RoleServiceImpl implements IRoleService
|
||||||
return roles;
|
return roles;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询所有角色
|
||||||
|
*
|
||||||
|
* @return 权限列表
|
||||||
|
*/
|
||||||
|
public List<Role> selectRoleAll()
|
||||||
|
{
|
||||||
|
return roleDao.selectRolesAll();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -75,8 +75,10 @@ public class UserController extends BaseController
|
||||||
*/
|
*/
|
||||||
@Log(title = "系统管理", action = "用户管理-新增用户")
|
@Log(title = "系统管理", action = "用户管理-新增用户")
|
||||||
@GetMapping("/add")
|
@GetMapping("/add")
|
||||||
public String add()
|
public String add(Model model)
|
||||||
{
|
{
|
||||||
|
List<Role> roles = roleService.selectRoleAll();
|
||||||
|
model.addAttribute("roles", roles);
|
||||||
return prefix + "/add";
|
return prefix + "/add";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -71,6 +71,14 @@ public interface IUserDao
|
||||||
*/
|
*/
|
||||||
public int updateUser(User user);
|
public int updateUser(User user);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增用户信息
|
||||||
|
*
|
||||||
|
* @param user 用户信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertUser(User user);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 批量新增用户角色信息
|
* 批量新增用户角色信息
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -97,7 +97,18 @@ public class UserDaoImpl extends DynamicObjectBaseDao implements IUserDao
|
||||||
*/
|
*/
|
||||||
public int updateUser(User user)
|
public int updateUser(User user)
|
||||||
{
|
{
|
||||||
return this.save("SystemUserMapper.updateUser", user);
|
return this.update("SystemUserMapper.updateUser", user);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增用户信息
|
||||||
|
*
|
||||||
|
* @param user 用户信息
|
||||||
|
* @return 结果
|
||||||
|
*/
|
||||||
|
public int insertUser(User user)
|
||||||
|
{
|
||||||
|
return this.save("SystemUserMapper.insertUser", user);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -6,6 +6,7 @@ import java.util.List;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
import com.ruoyi.framework.web.page.PageUtilEntity;
|
import com.ruoyi.framework.web.page.PageUtilEntity;
|
||||||
import com.ruoyi.framework.web.page.TableDataInfo;
|
import com.ruoyi.framework.web.page.TableDataInfo;
|
||||||
import com.ruoyi.project.system.user.dao.IUserDao;
|
import com.ruoyi.project.system.user.dao.IUserDao;
|
||||||
|
|
@ -91,21 +92,41 @@ public class UserServiceImpl implements IUserService
|
||||||
public int saveUser(User user)
|
public int saveUser(User user)
|
||||||
{
|
{
|
||||||
Long userId = user.getUserId();
|
Long userId = user.getUserId();
|
||||||
// 删除用户与角色关联
|
if (StringUtils.isNotNull(userId))
|
||||||
userDao.deleteUserRoleByUserId(userId);
|
{
|
||||||
|
// 删除用户与角色关联
|
||||||
|
userDao.deleteUserRoleByUserId(userId);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// 新增用户信息
|
||||||
|
userDao.insertUser(user);
|
||||||
|
|
||||||
|
}
|
||||||
|
insertUserRole(user);
|
||||||
|
return userDao.updateUser(user);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新增用户角色信息
|
||||||
|
*
|
||||||
|
* @param user 用户对象
|
||||||
|
*/
|
||||||
|
public void insertUserRole(User user)
|
||||||
|
{
|
||||||
// 新增用户与角色管理
|
// 新增用户与角色管理
|
||||||
List<UserRole> list = new ArrayList<>();
|
List<UserRole> list = new ArrayList<>();
|
||||||
for (Long roleId : user.getRoleIds())
|
for (Long roleId : user.getRoleIds())
|
||||||
{
|
{
|
||||||
UserRole ur = new UserRole();
|
UserRole ur = new UserRole();
|
||||||
ur.setUserId(userId);
|
ur.setUserId(user.getUserId());
|
||||||
ur.setRoleId(roleId);
|
ur.setRoleId(roleId);
|
||||||
list.add(ur);
|
list.add(ur);
|
||||||
}
|
}
|
||||||
if (list.size() > 0) {
|
if (list.size() > 0)
|
||||||
|
{
|
||||||
userDao.batchUserRole(list);
|
userDao.batchUserRole(list);
|
||||||
}
|
}
|
||||||
return userDao.updateUser(user);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||||
<if test="userId != null and userId != ''">and user_id = #{userId}</if>
|
<if test="userId != null and userId != ''">and user_id = #{userId}</if>
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<insert id="insertUser" parameterType="User">
|
<insert id="insertUser" parameterType="User" useGeneratedKeys="true" keyProperty="userId">
|
||||||
insert into sys_user(
|
insert into sys_user(
|
||||||
<if test="userId != null and userId != 0">user_id,</if>
|
<if test="userId != null and userId != 0">user_id,</if>
|
||||||
<if test="deptId != null and deptId != 0">dept_id,</if>
|
<if test="deptId != null and deptId != 0">dept_id,</if>
|
||||||
|
|
|
||||||
|
|
@ -212,7 +212,6 @@ $(function() {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// 选项卡菜单不存在
|
// 选项卡菜单不存在
|
||||||
if (flag) {
|
if (flag) {
|
||||||
var str = '<a href="javascript:;" class="active menuTab" data-id="' + dataUrl + '">' + menuName + ' <i class="fa fa-times-circle"></i></a>';
|
var str = '<a href="javascript:;" class="active menuTab" data-id="' + dataUrl + '">' + menuName + ' <i class="fa fa-times-circle"></i></a>';
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,82 @@
|
||||||
|
$("#form-user-add").validate({
|
||||||
|
rules:{
|
||||||
|
loginName:{
|
||||||
|
required:true,
|
||||||
|
},
|
||||||
|
userName:{
|
||||||
|
required:true,
|
||||||
|
},
|
||||||
|
password:{
|
||||||
|
required:true,
|
||||||
|
},
|
||||||
|
email:{
|
||||||
|
required:true,
|
||||||
|
},
|
||||||
|
phonenumber:{
|
||||||
|
required:true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
submitHandler:function(form){
|
||||||
|
add();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
function getIsChecked(_name) {
|
||||||
|
var adIds = "";
|
||||||
|
$('input:checkbox[name="'+_name+'"]:checked').each(function(i) {
|
||||||
|
if (0 == i) {
|
||||||
|
adIds = $(this).val();
|
||||||
|
} else {
|
||||||
|
adIds += ("," + $(this).val());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return adIds;
|
||||||
|
}
|
||||||
|
|
||||||
|
function add() {
|
||||||
|
var userId = $("input[name='userId']").val();
|
||||||
|
var deptId = $("input[name='deptId']").val();
|
||||||
|
var loginName = $("input[name='loginName']").val();
|
||||||
|
var userName = $("input[name='userName']").val();
|
||||||
|
var password = $("input[name='password']").val();
|
||||||
|
var email = $("input[name='email']").val();
|
||||||
|
var phonenumber = $("input[name='phonenumber']").val();
|
||||||
|
var status = $("input[name='status']").is(':checked') == true ? 0 : 1;
|
||||||
|
var roleIds = getIsChecked("role");
|
||||||
|
$.ajax({
|
||||||
|
cache : true,
|
||||||
|
type : "POST",
|
||||||
|
url : "/system/user/save",
|
||||||
|
data : {
|
||||||
|
"userId": userId,
|
||||||
|
"deptId": deptId,
|
||||||
|
"loginName": loginName,
|
||||||
|
"userName": userName,
|
||||||
|
"password": password,
|
||||||
|
"email": email,
|
||||||
|
"phonenumber": phonenumber,
|
||||||
|
"status": status,
|
||||||
|
"roleIds": roleIds
|
||||||
|
},
|
||||||
|
async : false,
|
||||||
|
error : function(request) {
|
||||||
|
parent.layer.alert("系统错误");
|
||||||
|
},
|
||||||
|
success : function(data) {
|
||||||
|
if (data.code == 0) {
|
||||||
|
parent.layer.msg('修改成功',{icon:1,time:1000});
|
||||||
|
layer_close();
|
||||||
|
window.parent.location.reload();
|
||||||
|
} else {
|
||||||
|
parent.layer.alert(data.m , {icon: 2,title:"系统提示"});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/*用户管理-修改-选择部门树*/
|
||||||
|
function selectDeptTree() {
|
||||||
|
var url = "/system/user/selectDeptTree";
|
||||||
|
layer_show("选择部门", url, '400', '410');
|
||||||
|
}
|
||||||
|
|
@ -70,8 +70,3 @@ function selectDeptTree() {
|
||||||
var url = "/system/user/selectDeptTree";
|
var url = "/system/user/selectDeptTree";
|
||||||
layer_show("选择部门", url, '400', '410');
|
layer_show("选择部门", url, '400', '410');
|
||||||
}
|
}
|
||||||
|
|
||||||
function loadDept(deptId,deptName){
|
|
||||||
$("#deptId").val(deptId);
|
|
||||||
$("#deptName").val(deptName);
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,128 @@
|
||||||
|
// 树结构初始化加载
|
||||||
|
var setting = {view:{selectedMulti:false},data:{key:{title:"title"},simpleData:{enable:true}},
|
||||||
|
callback:{onClick:function(event, treeId, treeNode){
|
||||||
|
var deptId = treeNode.id;
|
||||||
|
var deptName = treeNode.name;
|
||||||
|
$("#deptId").val(deptId);
|
||||||
|
$("#deptName").val(deptName);
|
||||||
|
}}
|
||||||
|
}, tree, loadTree = function(){
|
||||||
|
$.get("/system/dept/treeData", function(data) {
|
||||||
|
tree = $.fn.zTree.init($("#tree"), setting, data);
|
||||||
|
// 展开第一级节点
|
||||||
|
var nodes = tree.getNodesByParam("level", 0);
|
||||||
|
for (var i = 0; i < nodes.length; i++) {
|
||||||
|
tree.expandNode(nodes[i], true, false, false);
|
||||||
|
}
|
||||||
|
// 展开第二级节点
|
||||||
|
nodes = tree.getNodesByParam("level", 1);
|
||||||
|
for (var i = 0; i < nodes.length; i++) {
|
||||||
|
tree.expandNode(nodes[i], true, false, false);
|
||||||
|
}
|
||||||
|
}, null, null, "正在加载,请稍后...");
|
||||||
|
};loadTree();
|
||||||
|
|
||||||
|
$('#btnExpand').click(function() {
|
||||||
|
tree.expandAll(true);
|
||||||
|
});
|
||||||
|
$('#btnCollapse').click(function() {
|
||||||
|
tree.expandAll(false);
|
||||||
|
});
|
||||||
|
|
||||||
|
function loadUser(){
|
||||||
|
var deptId = $("#deptId").val();
|
||||||
|
var deptName = $("#deptName").val();
|
||||||
|
parent.$("#deptId").val(deptId);
|
||||||
|
parent.$("#deptName").val(deptName);
|
||||||
|
var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引
|
||||||
|
parent.layer.close(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
var lastValue = "", nodeList = [], key = $("#keyword");
|
||||||
|
key.bind("focus", focusKey).bind("blur", blurKey).bind("change cut input propertychange", searchNode);
|
||||||
|
key.bind("keydown", function (e){if(e.which == 13){searchNode();}});
|
||||||
|
|
||||||
|
function focusKey(e) {
|
||||||
|
if (key.hasClass("empty")) {
|
||||||
|
key.removeClass("empty");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function blurKey(e) {
|
||||||
|
if (key.get(0).value === "") {
|
||||||
|
key.addClass("empty");
|
||||||
|
}
|
||||||
|
searchNode(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
function searchNode() {
|
||||||
|
var value = $.trim(key.get(0).value);
|
||||||
|
var keyType = "name";
|
||||||
|
if (lastValue === value) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
lastValue = value;
|
||||||
|
var nodes = tree.getNodes();
|
||||||
|
if (value == "") {
|
||||||
|
showAllNode(nodes);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
hideAllNode(nodes);
|
||||||
|
nodeList = tree.getNodesByParamFuzzy(keyType, value);
|
||||||
|
updateNodes(nodeList);
|
||||||
|
}
|
||||||
|
|
||||||
|
function hideAllNode(nodes){
|
||||||
|
var tree = $.fn.zTree.getZTreeObj("tree");
|
||||||
|
nodes = tree.transformToArray(nodes);
|
||||||
|
for(var i=nodes.length-1; i>=0; i--) {
|
||||||
|
tree.hideNode(nodes[i]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function showAllNode(nodes){
|
||||||
|
nodes = tree.transformToArray(nodes);
|
||||||
|
for(var i=nodes.length-1; i>=0; i--) {
|
||||||
|
if(nodes[i].getParentNode()!=null){
|
||||||
|
tree.expandNode(nodes[i],false,false,false,false);
|
||||||
|
}else{
|
||||||
|
tree.expandNode(nodes[i],true,true,false,false);
|
||||||
|
}
|
||||||
|
tree.showNode(nodes[i]);
|
||||||
|
showAllNode(nodes[i].children);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateNodes(nodeList) {
|
||||||
|
tree.showNodes(nodeList);
|
||||||
|
for(var i=0, l=nodeList.length; i<l; i++) {
|
||||||
|
var treeNode = nodeList[i];
|
||||||
|
showChildren(treeNode);
|
||||||
|
showParent(treeNode)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function showChildren(treeNode){
|
||||||
|
if (treeNode.isParent){
|
||||||
|
for(var idx in treeNode.children){
|
||||||
|
var node = treeNode.children[idx];
|
||||||
|
tree.showNode(node);
|
||||||
|
showChildren(node);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
function showParent(treeNode){
|
||||||
|
var parentNode;
|
||||||
|
while((parentNode = treeNode.getParentNode()) != null){
|
||||||
|
tree.showNode(parentNode);
|
||||||
|
tree.expandNode(parentNode, true, false, false);
|
||||||
|
treeNode = parentNode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function search($this) {
|
||||||
|
$('#search').slideToggle(200);
|
||||||
|
$('#btnShow').toggle();
|
||||||
|
$('#btnHide').toggle();
|
||||||
|
$('#keyword').focus();
|
||||||
|
}
|
||||||
|
|
@ -87,12 +87,12 @@ function queryDeptTreeDaTa()
|
||||||
};loadTree();
|
};loadTree();
|
||||||
|
|
||||||
$('#btnExpand').click(function() {
|
$('#btnExpand').click(function() {
|
||||||
zTree.expandAll(true);
|
tree.expandAll(true);
|
||||||
$(this).hide();
|
$(this).hide();
|
||||||
$('#btnCollapse').show();
|
$('#btnCollapse').show();
|
||||||
});
|
});
|
||||||
$('#btnCollapse').click(function() {
|
$('#btnCollapse').click(function() {
|
||||||
zTree.expandAll(false);
|
tree.expandAll(false);
|
||||||
$(this).hide();
|
$(this).hide();
|
||||||
$('#btnExpand').show();
|
$('#btnExpand').show();
|
||||||
});
|
});
|
||||||
|
|
@ -117,7 +117,7 @@ function edit(deptId) {
|
||||||
/*用户管理-新增*/
|
/*用户管理-新增*/
|
||||||
function add() {
|
function add() {
|
||||||
var url = prefix + '/add';
|
var url = prefix + '/add';
|
||||||
layer_show("新增用户", url, '800', '500');
|
layer_show("新增用户", url, '800', '550');
|
||||||
}
|
}
|
||||||
|
|
||||||
// 批量强退
|
// 批量强退
|
||||||
|
|
|
||||||
|
|
@ -35,7 +35,7 @@
|
||||||
<h2>若依后台管理框架</h2>
|
<h2>若依后台管理框架</h2>
|
||||||
<p>一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了若依管理系统。,她可以用于所有的Web应用程序,如<b>网站管理后台</b>,<b>网站会员中心</b>,<b>CMS</b>,<b>CRM</b>,<b>OA</b>等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错效率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。</p>
|
<p>一直想做一款后台管理系统,看了很多优秀的开源项目但是发现没有合适自己的。于是利用空闲休息时间开始自己写一套后台系统。如此有了若依管理系统。,她可以用于所有的Web应用程序,如<b>网站管理后台</b>,<b>网站会员中心</b>,<b>CMS</b>,<b>CRM</b>,<b>OA</b>等等,当然,您也可以对她进行深度定制,以做出更强系统。所有前端后台代码封装过后十分精简易上手,出错效率低。同时支持移动客户端访问。系统会陆续更新一些实用功能。</p>
|
||||||
<p>
|
<p>
|
||||||
<b>当前版本:</b>v1.0.2
|
<b>当前版本:</b>v1.0.3
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<span class="label label-warning">¥免费开源</span>
|
<span class="label label-warning">¥免费开源</span>
|
||||||
|
|
@ -94,13 +94,27 @@
|
||||||
<div class="ibox-content no-padding">
|
<div class="ibox-content no-padding">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<div class="panel-group" id="version">
|
<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="#v03">v1.0.3</a><code class="pull-right">2018.03.08</code>
|
||||||
|
</h5>
|
||||||
|
</div>
|
||||||
|
<div id="v03" class="panel-collapse collapse in">
|
||||||
|
<div class="panel-body">
|
||||||
|
<ol>
|
||||||
|
<li>新增用户管理(新增、删除、修改、查询、部门选择)</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="panel panel-default">
|
<div class="panel panel-default">
|
||||||
<div class="panel-heading">
|
<div class="panel-heading">
|
||||||
<h5 class="panel-title">
|
<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>
|
<a data-toggle="collapse" data-parent="#version" href="#v02">v1.0.2</a><code class="pull-right">2018.03.04</code>
|
||||||
</h5>
|
</h5>
|
||||||
</div>
|
</div>
|
||||||
<div id="v02" class="panel-collapse collapse in">
|
<div id="v02" class="panel-collapse collapse">
|
||||||
<div class="panel-body">
|
<div class="panel-body">
|
||||||
<ol>
|
<ol>
|
||||||
<li>新增部门管理 (新增、删除、修改、查询)</li>
|
<li>新增部门管理 (新增、删除、修改、查询)</li>
|
||||||
|
|
|
||||||
|
|
@ -1 +1,85 @@
|
||||||
test
|
<!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-user-add">
|
||||||
|
<input name="deptId" type="hidden" id="deptId"/>
|
||||||
|
<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" name="deptName" id="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">
|
||||||
|
</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">
|
||||||
|
<div class="checkbox i-checks">
|
||||||
|
<label th:each="role:${roles}" class="checkbox-inline">
|
||||||
|
<input name="role" type="checkbox" th:value="${role.roleId}" th:text="${role.roleName}">
|
||||||
|
</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/user/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>
|
||||||
|
|
|
||||||
|
|
@ -31,57 +31,6 @@ button{font-family: "SimSun","Helvetica Neue",Helvetica,Arial;}
|
||||||
</div>
|
</div>
|
||||||
<div th:include="include::footer"></div>
|
<div th:include="include::footer"></div>
|
||||||
<script src="/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.all-3.5.js"></script>
|
<script src="/ajax/libs/jquery-ztree/3.5/js/jquery.ztree.all-3.5.js"></script>
|
||||||
<script>
|
<script type="text/javascript" src="/ruoyi/system/user/tree.js"></script>
|
||||||
$(document).ready(function(){
|
|
||||||
queryDeptTreeDaTa();
|
|
||||||
});
|
|
||||||
function search($this) {
|
|
||||||
$('#search').slideToggle(200);
|
|
||||||
$('#btnShow').toggle();
|
|
||||||
$('#btnHide').toggle();
|
|
||||||
$('#keyword').focus();
|
|
||||||
}
|
|
||||||
function queryDeptTreeDaTa()
|
|
||||||
{
|
|
||||||
// 树结构初始化加载
|
|
||||||
var setting = {view:{selectedMulti:false},data:{key:{title:"title"},simpleData:{enable:true}},
|
|
||||||
callback:{onClick:function(event, treeId, treeNode){
|
|
||||||
var deptId = treeNode.id;
|
|
||||||
var deptName = treeNode.name;
|
|
||||||
$("#deptId").val(deptId);
|
|
||||||
$("#deptName").val(deptName);
|
|
||||||
}}
|
|
||||||
}, tree, loadTree = function(){
|
|
||||||
$.get("/system/dept/treeData", function(data) {
|
|
||||||
tree = $.fn.zTree.init($("#tree"), setting, data); //.expandAll(true);
|
|
||||||
// 展开第一级节点
|
|
||||||
var nodes = tree.getNodesByParam("level", 0);
|
|
||||||
for (var i = 0; i < nodes.length; i++) {
|
|
||||||
tree.expandNode(nodes[i], true, false, false);
|
|
||||||
}
|
|
||||||
// 展开第二级节点
|
|
||||||
nodes = tree.getNodesByParam("level", 1);
|
|
||||||
for (var i = 0; i < nodes.length; i++) {
|
|
||||||
tree.expandNode(nodes[i], true, false, false);
|
|
||||||
}
|
|
||||||
}, null, null, "正在加载,请稍后...");
|
|
||||||
};loadTree();
|
|
||||||
|
|
||||||
$('#btnExpand').click(function() {
|
|
||||||
tree.expandAll(true);
|
|
||||||
});
|
|
||||||
$('#btnCollapse').click(function() {
|
|
||||||
tree.expandAll(false);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
function loadUser(){
|
|
||||||
var deptId = $("#deptId").val();
|
|
||||||
var deptName = $("#deptName").val();
|
|
||||||
parent.loadDept(deptId, deptName);
|
|
||||||
var index = parent.layer.getFrameIndex(window.name); // 获取窗口索引
|
|
||||||
parent.layer.close(index);
|
|
||||||
}
|
|
||||||
</script>
|
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
|
||||||
|
|
@ -16,7 +16,7 @@
|
||||||
<i class="fa icon-grid"></i> 组织机构
|
<i class="fa icon-grid"></i> 组织机构
|
||||||
</div>
|
</div>
|
||||||
<div class="box-tools pull-right">
|
<div class="box-tools pull-right">
|
||||||
<button type="button" class="btn btn-box-tool addTabPage" data-href="/sys/office/list" title="管理机构"><i class="fa fa-edit"></i></button>
|
<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="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="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>
|
<button type="button" class="btn btn-box-tool" id="btnRefresh" title="刷新机构"><i class="fa fa-refresh"></i></button>
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue