完成用户的添加、修改、删除

lihaobo
luoyijiucheng 7 years ago
parent 54cd807d8e
commit d46afa2a7e

@ -21,6 +21,7 @@
<shiro.version>1.4.0</shiro.version>
<log4j.version>1.2.17</log4j.version>
<hutool.version>4.6.8</hutool.version>
<pinyin4j.version>2.5.1</pinyin4j.version>
</properties>
<dependencies>
@ -145,6 +146,17 @@
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!-- pinyin4j -->
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>${pinyin4j.version}</version>
</dependency>
<dependency>
<groupId>com.belerweb</groupId>
<artifactId>pinyin4j</artifactId>
<version>2.5.0</version>
</dependency>
</dependencies>

@ -12,6 +12,11 @@ public class Constast {
public static final Integer OK=200;
public static final Integer ERROR=-1;
/**
*
*/
public static final String USER_DEFAULT_PWD="123456";
/**
* 0 1
*/

@ -0,0 +1,53 @@
package com.yeqifu.sys.common;
import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
/**
*
*
* @Author: -
* @Date: 2019/12/3 10:29
*/
public class PinyinUtils {
/**
*
*/
public static String getPingYin(String inputString) {
HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
format.setVCharType(HanyuPinyinVCharType.WITH_V);
String output = "";
if (inputString != null && inputString.length() > 0 && !"null".equals(inputString)) {
char[] input = inputString.trim().toCharArray();
try {
for (int i = 0; i < input.length; i++) {
if (java.lang.Character.toString(input[i]).matches("[\\u4E00-\\u9FA5]+")) {
String[] temp = PinyinHelper.toHanyuPinyinStringArray(input[i], format);
output += temp[0];
} else {
output += java.lang.Character.toString(input[i]);
}
}
} catch (BadHanyuPinyinOutputFormatCombination e) {
e.printStackTrace();
}
} else {
return "*";
}
return output;
}
public static void main(String[] args) {
String s = getPingYin("落亦");
System.out.println(s);
}
}

@ -40,7 +40,7 @@ public class DeptController {
* @param deptVo
* @return
*/
@RequestMapping("loadManagerLeftTreeJson")
@RequestMapping("loadDeptManagerLeftTreeJson")
public DataGridView loadManagerLeftTreeJson(DeptVo deptVo){
//查询出所有的部门存放进list中
List<Dept> list = deptService.list();

@ -1,24 +1,34 @@
package com.yeqifu.sys.controller;
import cn.hutool.core.util.IdUtil;
import cn.hutool.core.util.RandomUtil;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sun.org.apache.regexp.internal.RE;
import com.yeqifu.sys.common.Constast;
import com.yeqifu.sys.common.DataGridView;
import com.yeqifu.sys.common.PinyinUtils;
import com.yeqifu.sys.common.ResultObj;
import com.yeqifu.sys.entity.Dept;
import com.yeqifu.sys.entity.User;
import com.yeqifu.sys.service.IDeptService;
import com.yeqifu.sys.service.IUserService;
import com.yeqifu.sys.vo.UserVo;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.crypto.hash.Md5Hash;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.xml.ws.RequestWrapper;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* <p>
@ -29,7 +39,7 @@ import java.util.List;
* @since 2019-11-21
*/
@RestController
@RequestMapping("/user")
@RequestMapping("user")
public class UserController {
@Autowired
@ -73,5 +83,122 @@ public class UserController {
}
return new DataGridView(page.getTotal(),list);
}
/**
*
* @return
*/
@RequestMapping("loadUserMaxOrderNum")
public Map<String,Object> loadUserMaxOrderNum(){
Map<String,Object> map = new HashMap<String,Object>();
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.orderByDesc("ordernum");
IPage<User> page = new Page<>(1,1);
List<User> list = userService.page(page,queryWrapper).getRecords();
if (list.size()>0){
map.put("value",list.get(0).getOrdernum()+1);
}else {
map.put("value",1);
}
return map;
}
/**
* ID
* @param deptid
* @return
*/
@RequestMapping("loadUsersByDeptId")
public DataGridView loadUsersByDeptIp(Integer deptid){
QueryWrapper<User> queryWrapper = new QueryWrapper<>();
queryWrapper.eq(deptid!=null,"deptid",deptid);
queryWrapper.eq("available",Constast.AVAILABLE_TRUE);
queryWrapper.eq("type",Constast.USER_TYPE_NORMAL);
List<User> list = userService.list(queryWrapper);
return new DataGridView(list);
}
/**
*
* @param username
* @return
*/
@RequestMapping("changeChineseToPinyin")
public Map<String,Object> changeChineseToPinyin(String username){
Map<String,Object> map = new HashMap<>();
if (null!=username){
map.put("value", PinyinUtils.getPingYin(username));
}else {
map.put("value","");
}
return map;
}
/**
*
* @param userVo
* @return
*/
@RequestMapping("addUser")
public ResultObj addUser(UserVo userVo){
try {
//设置类型
userVo.setType(Constast.USER_TYPE_NORMAL);
//设置盐
String salt = IdUtil.simpleUUID().toUpperCase();
userVo.setSalt(salt);
//设置密码
userVo.setPwd(new Md5Hash(Constast.USER_DEFAULT_PWD,salt,2).toString());
userService.save(userVo);
return ResultObj.ADD_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.ADD_ERROR;
}
}
/**
* id
* @param id id
* @return
*/
@RequestMapping("loadUserById")
public DataGridView loadUserById(Integer id){
return new DataGridView(userService.getById(id));
}
/**
*
* @param userVo
* @return
*/
@RequestMapping("updateUser")
public ResultObj updateUser(UserVo userVo){
try {
userService.updateById(userVo);
return ResultObj.UPDATE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.UPDATE_ERROR;
}
}
/**
*
* @param id
* @return
*/
@RequestMapping("deleteUser/{id}")
public ResultObj deleteUser(@PathVariable("id") Integer id){
try {
userService.removeById(id);
return ResultObj.DELETE_SUCCESS;
} catch (Exception e) {
e.printStackTrace();
return ResultObj.DELETE_ERROR;
}
}
}

@ -11,6 +11,7 @@ import java.util.Date;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
/**
* <p>
@ -45,6 +46,7 @@ public class User implements Serializable {
private Integer deptid;
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date hiredate;
/**

@ -44,4 +44,10 @@ public interface RoleMapper extends BaseMapper<Role> {
* @param pid
*/
void saveRolePermission(@Param("rid") Integer rid,@Param("pid") Integer pid);
/**
* id
* @param id
*/
void deleteRoleUserByUid(@Param("id") Serializable id);
}

@ -2,9 +2,11 @@ package com.yeqifu.sys.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.yeqifu.sys.entity.User;
import com.yeqifu.sys.mapper.RoleMapper;
import com.yeqifu.sys.mapper.UserMapper;
import com.yeqifu.sys.service.IUserService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -22,6 +24,9 @@ import java.io.Serializable;
@Transactional
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
@Autowired
private RoleMapper roleMapper;
@Override
public boolean save(User entity) {
return super.save(entity);
@ -39,6 +44,10 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IU
@Override
public boolean removeById(Serializable id) {
//根据用户id删除用户角色中间表的数据
roleMapper.deleteRoleUserByUid(id);
//删除用户头像[如果是默认头像不删除,否则删除]
return super.removeById(id);
}
}

@ -3,6 +3,9 @@ package com.yeqifu.sys.vo;
import com.yeqifu.sys.entity.User;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springframework.format.annotation.DateTimeFormat;
import java.util.Date;
/**
* @Author: -

@ -20,4 +20,10 @@
insert into sys_role_permission(rid,pid) values (#{rid},#{pid})
</insert>
<!--id-->
<delete id="deleteRoleUserByUid">
delete from sys_user_role where uid = #{id}
</delete>
</mapper>

@ -38,7 +38,7 @@
dataStyle: "layuiStyle", //使用layui风格的数据格式
dataFormat: "list", //配置data的风格为list
response:{message:"msg",statusCode:0}, //修改response中返回数据的定义
url: "/dept/loadManagerLeftTreeJson" // 使用url加载可与data加载同时存在
url: "/dept/loadDeptManagerLeftTreeJson" // 使用url加载可与data加载同时存在
});
// 绑定节点点击

@ -344,7 +344,7 @@
dataStyle: "layuiStyle", //使用layui风格的数据格式
dataFormat: "list", //配置data的风格为list
response:{message:"msg",statusCode:0}, //修改response中返回数据的定义
url: "/dept/loadManagerLeftTreeJson" // 使用url加载可与data加载同时存在
url: "/dept/loadDeptManagerLeftTreeJson" // 使用url加载可与data加载同时存在
});
//监听点击的方法

@ -35,7 +35,7 @@
<dl class="layui-nav-child">
<dd><a href="javascript:;" data-url="/resouces/page/user/userInfo.html"><i class="seraph icon-ziliao" data-icon="icon-ziliao"></i><cite></cite></a></dd>
<dd><a href="javascript:;" data-url="/resouces/page/user/changePwd.html"><i class="seraph icon-xiugai" data-icon="icon-xiugai"></i><cite></cite></a></dd>
<dd><a href="page/login/login.html" class="signOut"><i class="seraph icon-tuichu"></i><cite>退</cite></a></dd>
<dd><a href="/sys/toLogin" class="signOut"><i class="seraph icon-tuichu"></i><cite>退</cite></a></dd>
</dl>
</li>
</ul>

@ -11,10 +11,33 @@
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="format-detection" content="telephone=no">
<link rel="icon" href="/resources/favicon.ico">
<link rel="stylesheet" href="resources/layui/css/layui.css" th:href="@{/resources/layui/css/layui.css}" media="all"/>
<link rel="stylesheet" href="resources/layui/css/layui.css" th:href="@{/resources/layui/css/layui.css}"
media="all"/>
<link rel="stylesheet" th:href="@{/resources/css/public.css}" media="all"/>
<link rel="stylesheet" th:href="@{/resources/layui_ext/dtree/dtree.css}" media="all"/>
<link rel="stylesheet" th:href="@{/resources/layui_ext/dtree/font/dtreefont.css}" media="all"/>
<style>
input#search_deptTree_select_input_id {
border-radius: 10px;
height: 30px;
margin-top: 4px;
}
input#deptTree_select_input_id {
border-radius: 10px;
height: 30px;
margin-top: 4px;
}
input#leaderdeptTree_select_input_id {
border-radius: 10px;
height: 30px;
margin-top: 4px;
}
input.layui-input.layui-unselect {
border-radius: 10px;
height: 30px;
margin-top: 4px;
}
</style>
</head>
<body>
<!---->
@ -50,7 +73,8 @@
<button type="button" class="layui-btn layui-btn-sm layui-btn-radius" lay-submit="" lay-filter="doSearch"><i
class="layui-icon layui-icon-search layui-icon-normal"></i>
</button>
<button type="reset" onclick="javascript:document.getElementById('search_deptid').value=''" class="layui-btn layui-btn-sm layui-btn-radius layui-btn-warm"><i
<button type="reset" onclick="javascript:document.getElementById('search_deptid').value=''"
class="layui-btn layui-btn-sm layui-btn-radius layui-btn-warm"><i
class="layui-icon layui-icon-refresh"></i><span></span>
</button>
</div>
@ -62,7 +86,7 @@
<table class="layui-hide" id="userTable" lay-filter="userTable"></table>
<div id="userToolBar" style="display: none">
<button type="button" lay-event="add" class="layui-btn layui-btn-sm layui-btn-normal layui-btn-radius">
<i class="layui-icon layui-icon-add-1"></i>
<i class="layui-icon layui-icon-add-1"></i>
</button>
</div>
<div id="userRowBar" style="display: none;">
@ -85,66 +109,100 @@
<div id="addOrUpdateDiv" style="display: none;padding: 10px;padding-right: 5%">
<form action="" method="post" class="layui-form" id="dataFrm" lay-filter="dataFrm">
<div class="layui-form-item">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<input type="hidden" name="deptid" id="deptid">
<ul id="deptTree" class="dtree" data-id="0"></ul>
<div class="layui-inline">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<input type="hidden" name="deptid" id="deptid">
<ul id="deptTree" class="dtree" data-id="0"></ul>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<input type="text" name="hiredate" id="hiredate" placeholder="yyyy-MM-dd HH:mm:ss" autocomplete="off" style="width: 217px" class="layui-input input-radius">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label"></label>
<label class="layui-form-label"></label>
<div class="layui-input-block">
<input type="hidden" name="id">
<input type="text" name="name" lay-verify="required" autocomplete="off"
class="layui-input input-radius" placeholder="请输入部门名称">
<ul id="leaderdeptTree" class="dtree" data-id="0"></ul>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label"></label>
<label class="layui-form-label"></label>
<div class="layui-input-block">
<input type="text" name="address" lay-verify="required" autocomplete="off" class="layui-input input-radius" placeholder="请输入部门地址">
<select name="mgr" id="mgr">
<option value=""></option>
</select>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label"></label>
<label class="layui-form-label"></label>
<div class="layui-input-block">
<input type="hidden" name="id">
<input type="text" name="name" id="username" lay-verify="required" autocomplete="off"
class="layui-input input-radius" placeholder="请输入用户名称">
</div>
</div>
<div class="layui-inline" style="padding-left: 4%">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<textarea placeholder="请输入内容" class="layui-textarea" name="remark" cols="200"></textarea>
<input type="text" name="loginname" id="loginname" lay-verify="required" autocomplete="off"
class="layui-input input-radius" placeholder="请输入登陆名称">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label"></label>
<label class="layui-form-label"></label>
<div class="layui-input-block">
<input type="radio" name="available" value="1" title="可用" checked="">
<input type="radio" name="available" value="0" title="不可用">
<input type="text" name="address" id="address" class="layui-input input-radius" placeholder="请输入用户地址">
</div>
</div>
<div class="layui-inline" style="padding-left: 4%">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<input type="hidden" name="id">
<input type="text" name="ordernum" id="ordernum" lay-verify="required|number" autocomplete="off"
class="layui-input input-radius" placeholder="请输入排序码">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label"></label>
<label class="layui-form-label"></label>
<div class="layui-input-block">
<input type="radio" name="open" value="1" title="展开" checked="">
<input type="radio" name="open" value="0" title="不展开">
<textarea placeholder="请输入用户备注" class="layui-textarea" name="remark" cols="200"></textarea>
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label"></label>
<label class="layui-form-label"></label>
<div class="layui-input-block">
<input type="radio" name="sex" value="1" title="男" checked="">
<input type="radio" name="sex" value="0" title="女">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<input type="text" id="ordernum" name="ordernum" lay-verify="required" autocomplete="off" class="layui-input input-radius" placeholder="请输入部门排序码[>0]">
<input type="radio" name="available" value="1" title="可用" checked="">
<input type="radio" name="available" value="0" title="不可用">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block" style="text-align: center;padding-right: 7%">
<button type="button" class="layui-btn layui-btn-radius" lay-submit="" lay-filter="doSubmit" id="doSubmit"><i
<button type="button" class="layui-btn layui-btn-radius" lay-submit="" lay-filter="doSubmit"
id="doSubmit"><i
class="layui-icon layui-icon-search layui-icon-normal"></i>
</button>
<button type="reset" class="layui-btn layui-btn-radius layui-btn-warm"><i
<button type="reset" onclick="javascript:document.getElementById('deptid').value=''" class="layui-btn layui-btn-radius layui-btn-warm"><i
class="layui-icon layui-icon-refresh"></i><span></span>
</button>
</div>
@ -161,12 +219,19 @@
layui.extend({
dtree: '/resources/layui_ext/dtree/dtree'
}).use(['jquery', 'form', 'layer', 'laydate', 'table', 'layedit','dtree'], function () {
}).use(['jquery', 'form', 'layer', 'laydate', 'table', 'layedit', 'dtree','laydate'], function () {
var $ = layui.jquery;
var form = layui.form;
var layer = layui.layer;
var table = layui.table;
var dtree = layui.dtree;
var laydate = layui.laydate;
//初始化时间选择器
laydate.render({
elem: "#hiredate",
type: "datetime"
});
//初始化表格 加载数据
tableIns = table.render({
@ -177,23 +242,27 @@
page: true,
height: "full-180",
cols: [ [
{field: 'id', title: 'ID', align: 'center',width:'50'},
{field: 'name', title: '', align: 'center',width:'100'},
{field: 'loginname', title: '', align: 'center',width:'120'},
{field: 'deptname', title: '', align: 'center',width:'150'},
{field: 'leadername', title: '', align: 'center',width:'150'},
{field: 'remark', title: '', align: 'center',width:'120'},
{field: 'address', title: '', align: 'center',width:'100'},
{field: 'hiredate', title: '', align: 'center',width:'160'},
{field: 'imgpath', title: '', align: 'center',width:'160'},
{field: 'sex', title: '', align: 'center',width:'100',templet:function (d) {
return d.sex==1?'<font color="blue"></font>':'<font color="red"></font>';
}},
{field: 'available', title: '', align: 'center',width:'100',templet:function (d) {
return d.available==1?'<font color="blue"></font>':'<font color="red"></font>';
}},
{field: 'ordernum', title: '', align: 'center',width:'80'},
{fixed: 'right', title: '', toolbar: '#userRowBar', align: 'center',width:'330'}
{field: 'id', title: 'ID', align: 'center', width: '50'},
{field: 'name', title: '', align: 'center', width: '130'},
{field: 'loginname', title: '', align: 'center', width: '130'},
{field: 'deptname', title: '', align: 'center', width: '130'},
{field: 'leadername', title: '', align: 'center', width: '120'},
{field: 'remark', title: '', align: 'center', width: '120'},
{field: 'address', title: '', align: 'center', width: '100'},
{field: 'hiredate', title: '', align: 'center', width: '160'},
{field: 'imgpath', title: '', align: 'center', width: '160'},
{
field: 'sex', title: '', align: 'center', width: '100', templet: function (d) {
return d.sex == 1 ? '<font color="blue"></font>' : '<font color="red"></font>';
}
},
{
field: 'available', title: '', align: 'center', width: '100', templet: function (d) {
return d.available == 1 ? '<font color="blue"></font>' : '<font color="red"></font>';
}
},
{field: 'ordernum', title: '', align: 'center', width: '80'},
{fixed: 'right', title: '', toolbar: '#userRowBar', align: 'center', width: '330'}
] ],
done: function (data, curr, count) {
//不是第一页时如果当前返回的数据为0那么就返回上一页
@ -205,11 +274,11 @@
})
}
//当是第一页时如果当前返回的数据为0并且当前为第一页 给一个空的查询条件并给curr赋初值为1
if (data.data.length==0 && curr==1){
if (data.data.length == 0 && curr == 1) {
tableIns.reload({
where: "",
page:{
curr:1
page: {
curr: 1
}
})
}
@ -233,7 +302,8 @@
case 'add':
openAddLayer();
break;
};
}
;
});
//监控行工具条事件
@ -247,7 +317,8 @@
case 'update':
updateUser(data);
break;
};
}
;
});
var mainIndex;
@ -256,21 +327,23 @@
//打开添加弹出层
function openAddLayer() {
mainIndex = layer.open({
type:1,
content:$("#addOrUpdateDiv"),
area:['800px','500px'],
title:'',
success:function () {
type: 1,
content: $("#addOrUpdateDiv"),
area: ['800px', '550px'],
title: '',
success: function () {
$("#dataFrm")[0].reset();
//设置下拉树中父节点的值为空
$("#pid").val("");
url="/user/addUser";
$("#deptid").val("");
url = "/user/addUser";
//初始化排序码
$.get("/user/loadUserMaxOrderNum",function (res) {
$.get("/user/loadUserMaxOrderNum", function (res) {
$("#ordernum").val(res.value);
});
//设置下拉树的value值为空
selectTree.selectVal("");
//重新渲染直属领导的下拉列表
var html = "<option value='0'>请选择直属领导</option>";
$("#mgr").html(html);
form.render("select");
}
});
}
@ -278,31 +351,52 @@
//打开修改的弹出层
function updateUser(data) {
mainIndex = layer.open({
type:1,
content:$("#addOrUpdateDiv"),
area:['800px','500px'],
title:'',
success:function () {
type: 1,
content: $("#addOrUpdateDiv"),
area: ['800px', '550px'],
title: '',
success: function () {
//清空原有的数据
$("#dataFrm")[0].reset();
$("#deptid").val("");
//装载新的数据
form.val("dataFrm",data);
//选中之前的父级部门 nodeId=data.pid
dtree.dataInit("userTree",data.pid);
dtree.selectVal("userTree");
url="/user/updateUser";
form.val("dataFrm", data);
//选中之前的所属部门 nodeId=data.deptid
dtree.dataInit("deptTree", data.deptid);
dtree.selectVal("deptTree");
//选中领导部门首先拿到领导的id,如何再去数据库中查询出领导的信息,取出领导的部门
var leaderid = data.mgr;
$.get("/user/loadUserById",{id:leaderid},function (res) {
var d = res.data;
//查询领导的部门ID如何重新加载领导部门的下拉列表
dtree.dataInit("leaderdeptTree",d.deptid);
dtree.selectVal("leaderdeptTree");
//根据部门ID查询当前部门下面的领导列表
$.get("/user/loadUsersByDeptId",{deptid:d.deptid},function (res) {
var users = res.data;
var dom_mgr=$("#mgr");
var html = "<option value=''>请选择直属领导</option>";
$.each(users,function (index, item) {
html+="<option value='"+item.id+"'>"+item.name+"</option>";
});
dom_mgr.html(html);
//选中一个
dom_mgr.val(leaderid);
//重新渲染
form.render("select");
})
});
url = "/user/updateUser";
}
});
}
form.on("submit(doSubmit)",function (data) {
$.post(url,data.field,function (res) {
if (res.code==200){
form.on("submit(doSubmit)", function (data) {
$.post(url, data.field, function (res) {
if (res.code == 200) {
tableIns.reload();
//重新加载添加弹出层的下拉树
selectTree.reload();
//重新加载左边的部门树
window.parent.left.userTree.reload();
}
layer.msg(res.msg);
layer.close(mainIndex);
@ -313,13 +407,10 @@
//删除
function deleteUser(data) {
layer.confirm('' + data.name + '', {icon: 3, title: ''}, function (index) {
$.post("/user/deleteUser", {id: data.id},function (res) {
// $.post("/user/deleteUser", {id: data.id}, function (res) {
$.post("/user/deleteUser/"+data.id, function (res) {
if (res.code == 200) {
tableIns.reload();
//刷新下拉树
selectTree.reload();
//刷新左边的部门树
window.parent.left.userTree.reload();
}
layer.msg(res.msg);
});
@ -333,17 +424,74 @@
width: "100%", // 可以在这里指定树的宽度来填满div
dataStyle: "layuiStyle", //使用layui风格的数据格式
dataFormat: "list", //配置data的风格为list
response:{message:"msg",statusCode:0}, //修改response中返回数据的定义
url: "/dept/loadManagerLeftTreeJson" // 使用url加载可与data加载同时存在
response: {message: "msg", statusCode: 0}, //修改response中返回数据的定义
url: "/dept/loadDeptManagerLeftTreeJson" // 使用url加载可与data加载同时存在
});
//监听点击的方法
dtree.on("node(search_deptTree)",function (obj) {
dtree.on("node(search_deptTree)", function (obj) {
$("#search_deptid").val(obj.param.nodeId);
console.log(obj.param.nodeId);
});
//初始化添加弹出层所属部门的下拉列表
var deptTree = dtree.renderSelect({
elem: "#deptTree",
width: "100%", // 可以在这里指定树的宽度来填满div
dataStyle: "layuiStyle", //使用layui风格的数据格式
dataFormat: "list", //配置data的风格为list
response: {message: "msg", statusCode: 0}, //修改response中返回数据的定义
url: "/dept/loadDeptManagerLeftTreeJson" // 使用url加载可与data加载同时存在
});
//监听所属部门点击方法
dtree.on("node(deptTree)", function (obj) {
//将该部门的id赋值给隐藏域
$("#deptid").val(obj.param.nodeId);
console.log(obj.param.nodeId);
});
//初始化添加弹出层领导部门的下拉列表
var leaderdeptTree = dtree.renderSelect({
elem: "#leaderdeptTree",
width: "100%", // 可以在这里指定树的宽度来填满div
dataStyle: "layuiStyle", //使用layui风格的数据格式
dataFormat: "list", //配置data的风格为list
response: {message: "msg", statusCode: 0}, //修改response中返回数据的定义
url: "/dept/loadDeptManagerLeftTreeJson" // 使用url加载可与data加载同时存在
});
//监听点击的方法
dtree.on("node(leaderdeptTree)", function (obj) {
var deptid = obj.param.nodeId;
//根据部门ID查询当前部门下面的领导列表
$.get("/user/loadUsersByDeptId",{deptid:deptid},function (res) {
var users = res.data;
var dom_mgr=$("#mgr");
var html = "<option value=''>请选择直属领导</option>";
$.each(users,function (index, item) {
html+="<option value='"+item.id+"'>"+item.name+"</option>";
});
dom_mgr.html(html);
//重新渲染
form.render("select");
})
});
//监听用户名失去焦点事件
$("#username").on("blur",function () {
var username = $(this).val();
$.get("/user/changeChineseToPinyin",{username:username},function (res) {
$("#loginname").val(res.value);
})
});
});
</script>

Loading…
Cancel
Save