完成用户管理的查询

lihaobo
luoyijiucheng 6 years ago
parent 1f04711ddf
commit 54cd807d8e

@ -1,7 +1,11 @@
package com.yeqifu.sys.cache;
import com.yeqifu.sys.entity.Dept;
import com.yeqifu.sys.entity.User;
import com.yeqifu.sys.vo.DeptVo;
import com.yeqifu.sys.vo.UserVo;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
@ -21,31 +25,59 @@ import java.util.Map;
@EnableAspectJAutoProxy
public class CacheAspect {
//声明一个缓存容器
/**
*
*/
private Log log = LogFactory.getLog(CacheAspect.class);
/**
*
*/
private Map<String,Object> CACHE_CONTAINER = new HashMap<>();
//声明切面表达式
/**
*
*/
private static final String POINTCUT_DEPT_ADD="execution(* com.yeqifu.sys.service.impl.DeptServiceImpl.save(..))";
private static final String POINTCUT_DEPT_UPDATE="execution(* com.yeqifu.sys.service.impl.DeptServiceImpl.updateById(..))";
private static final String POINTCUT_DEPT_GET="execution(* com.yeqifu.sys.service.impl.DeptServiceImpl.getOne(..))";
private static final String POINTCUT_DEPT_GET="execution(* com.yeqifu.sys.service.impl.DeptServiceImpl.getById(..))";
private static final String POINTCUT_DEPT_DELETE="execution(* com.yeqifu.sys.service.impl.DeptServiceImpl.removeById(..))";
private static final String CACHE_DEPT_PROFIX="dept:";
/**
*
*
* @param joinPoint
* @return
*/
@Around(value = POINTCUT_DEPT_ADD)
public Object cacheDeptAdd(ProceedingJoinPoint joinPoint) throws Throwable {
//取出第一个参数
Dept object = (Dept) joinPoint.getArgs()[0];
Boolean res = (Boolean) joinPoint.proceed();
if (res){
CACHE_CONTAINER.put(CACHE_DEPT_PROFIX + object.getId(),object);
}
return res;
}
/**
*
* @param joinPoint
* @return
*/
@Around(value = POINTCUT_DEPT_GET)
public Object cacheDeptGet(ProceedingJoinPoint joinPoint) throws Throwable {
//取出第一个参数
Integer object = (Integer) joinPoint.getArgs()[0];
//从缓存里面取
Object res1 = CACHE_CONTAINER.get(CACHE_DEPT_PROFIX + object);
if (res1!=null){
log.info("已从缓存里面找到部门对象"+CACHE_DEPT_PROFIX + object);
return res1;
}else {
log.info("未从缓存里面找到部门对象,从数据库中查询并放入缓存");
Dept res2 =(Dept) joinPoint.proceed();
CACHE_CONTAINER.put(CACHE_DEPT_PROFIX+res2.getId(),res2);
return res2;
@ -53,13 +85,12 @@ public class CacheAspect {
}
/**
*
*
* @param joinPoint
* @return
*/
@Around(value = POINTCUT_DEPT_UPDATE)
public Object cacheDeptUpdate(ProceedingJoinPoint joinPoint) throws Throwable {
//取出第一个参数
DeptVo deptVo = (DeptVo) joinPoint.getArgs()[0];
Boolean isSuccess = (Boolean) joinPoint.proceed();
@ -67,15 +98,16 @@ public class CacheAspect {
Dept dept =(Dept) CACHE_CONTAINER.get(CACHE_DEPT_PROFIX + deptVo.getId());
if (null==dept){
dept=new Dept();
BeanUtils.copyProperties(deptVo,dept);
CACHE_CONTAINER.put(CACHE_DEPT_PROFIX+dept.getId(),dept);
}
BeanUtils.copyProperties(deptVo,dept);
log.info("部门对象缓存已更新"+CACHE_DEPT_PROFIX + deptVo.getId());
CACHE_CONTAINER.put(CACHE_DEPT_PROFIX+dept.getId(),dept);
}
return isSuccess;
}
/**
*
*
* @param joinPoint
* @return
*/
@ -92,4 +124,92 @@ public class CacheAspect {
return isSuccess;
}
/**
*
*/
private static final String POINTCUT_USER_UPDATE="execution(* com.yeqifu.sys.service.impl.UserServiceImpl.updateById(..))";
private static final String POINTCUT_USER_ADD="execution(* com.yeqifu.sys.service.impl.UserServiceImpl.updateById(..))";
private static final String POINTCUT_USER_GET="execution(* com.yeqifu.sys.service.impl.UserServiceImpl.getById(..))";
private static final String POINTCUT_USER_DELETE="execution(* com.yeqifu.sys.service.impl.UserServiceImpl.removeById(..))";
private static final String CACHE_USER_PROFIX="user:";
/**
*
* @param joinPoint
* @return
*/
@Around(value = POINTCUT_USER_ADD)
public Object cacheUserAdd(ProceedingJoinPoint joinPoint) throws Throwable {
//取出第一个参数
User object = (User) joinPoint.getArgs()[0];
Boolean res = (Boolean) joinPoint.proceed();
if (res){
CACHE_CONTAINER.put(CACHE_USER_PROFIX + object.getId(),object);
}
return res;
}
/**
*
* @param joinPoint
* @return
*/
@Around(value = POINTCUT_USER_GET)
public Object cacheUserGet(ProceedingJoinPoint joinPoint) throws Throwable {
//取出第一个参数
Integer object = (Integer) joinPoint.getArgs()[0];
//从缓存里面取
Object res1 = CACHE_CONTAINER.get(CACHE_USER_PROFIX + object);
if (res1!=null){
log.info("已从缓存里面找到用户对象"+CACHE_USER_PROFIX + object);
return res1;
}else {
log.info("未从缓存里面找到用户对象,从数据库中查询并放入缓存");
User res2 =(User) joinPoint.proceed();
CACHE_CONTAINER.put(CACHE_USER_PROFIX+res2.getId(),res2);
return res2;
}
}
/**
*
* @param joinPoint
* @return
*/
@Around(value = POINTCUT_USER_UPDATE)
public Object cacheUserUpdate(ProceedingJoinPoint joinPoint) throws Throwable {
//取出第一个参数
UserVo deptVo = (UserVo) joinPoint.getArgs()[0];
Boolean isSuccess = (Boolean) joinPoint.proceed();
if (isSuccess){
User dept =(User) CACHE_CONTAINER.get(CACHE_USER_PROFIX + deptVo.getId());
if (null==dept){
dept=new User();
}
BeanUtils.copyProperties(deptVo,dept);
log.info("用户对象缓存已更新"+CACHE_USER_PROFIX + deptVo.getId());
CACHE_CONTAINER.put(CACHE_USER_PROFIX+dept.getId(),dept);
}
return isSuccess;
}
/**
*
* @param joinPoint
* @return
*/
@Around(value = POINTCUT_USER_DELETE)
public Object cacheUserDelete(ProceedingJoinPoint joinPoint) throws Throwable {
//取出第一个参数
Integer id = (Integer) joinPoint.getArgs()[0];
Boolean isSuccess = (Boolean) joinPoint.proceed();
if (isSuccess){
//删除缓存
CACHE_CONTAINER.remove(CACHE_USER_PROFIX+id);
}
return isSuccess;
}
}

@ -25,9 +25,10 @@ public class Constast {
public static final String TYPE_PERMISSION = "permission";
/**
* 0 1 2
* 0 1
*/
public static final Integer USER_TYPE_SUPER = 0;
public static final Integer USER_TYPE_NORMAL = 1;
/**
* 0 1

@ -146,5 +146,14 @@ public class SystemController {
public String toRoleManager(){
return "system/role/roleManager";
}
/**
*
* @return
*/
@RequestMapping("toUserManager")
public String toUserManager(){
return "system/user/userManager";
}
}

@ -1,10 +1,25 @@
package com.yeqifu.sys.controller;
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.yeqifu.sys.common.Constast;
import com.yeqifu.sys.common.DataGridView;
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.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* InnoDB free: 9216 kB; (`deptid`) REFER `warehouse/sys_dept`(`id`) ON UPDATE CASC
@ -14,8 +29,49 @@ import org.springframework.web.bind.annotation.RestController;
* @since 2019-11-21
*/
@RestController
@RequestMapping("/sys/user")
@RequestMapping("/user")
public class UserController {
@Autowired
private IUserService userService;
@Autowired
private IDeptService deptService;
/**
*
* @param userVo
* @return
*/
@RequestMapping("loadAllUser")
public DataGridView loadAllUser(UserVo userVo){
IPage<User> page = new Page<User>(userVo.getPage(),userVo.getLimit());
QueryWrapper<User> queryWrapper = new QueryWrapper<User>();
queryWrapper.eq(StringUtils.isNotBlank(userVo.getName()),"loginname",userVo.getName()).or().eq(StringUtils.isNotBlank(userVo.getName()),"name",userVo.getName());
queryWrapper.eq(StringUtils.isNotBlank(userVo.getAddress()),"address",userVo.getAddress());
//查询系统用户
queryWrapper.eq("type", Constast.USER_TYPE_NORMAL);
queryWrapper.eq(userVo.getDeptid()!=null,"deptid",userVo.getDeptid());
userService.page(page,queryWrapper);
//将所有用户数据放入list中
List<User> list = page.getRecords();
for (User user : list) {
Integer deptid = user.getDeptid();
if (deptid!=null){
//先从缓存中去取,如果缓存中没有就去数据库中取
Dept one = deptService.getById(deptid);
//设置user的部门名称
user.setDeptname(one.getName());
}
Integer mgr = user.getMgr();
if (mgr!=null){
User one = userService.getById(mgr);
//设置user的领导名称
user.setLeadername(one.getName());
}
}
return new DataGridView(page.getTotal(),list);
}
}

@ -1,5 +1,6 @@
package com.yeqifu.sys.entity;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
@ -76,5 +77,17 @@ public class User implements Serializable {
*/
private String salt;
/**
*
*/
@TableField(exist = false)
private String leadername;
/**
*
*/
@TableField(exist = false)
private String deptname;
}

@ -13,6 +13,7 @@ import org.apache.shiro.realm.AuthorizingRealm;
import org.apache.shiro.subject.PrincipalCollection;
import org.apache.shiro.util.ByteSource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Lazy;
/**
* @Author: -
@ -21,6 +22,10 @@ import org.springframework.beans.factory.annotation.Autowired;
public class UserRealm extends AuthorizingRealm {
@Autowired
/**
* 使 CacheAspectuserService
*/
@Lazy
private IUserService userService;
@Override

@ -23,8 +23,8 @@ import java.io.Serializable;
public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements IDeptService {
@Override
public Dept getOne(Wrapper<Dept> queryWrapper) {
return super.getOne(queryWrapper);
public Dept getById(Serializable id) {
return super.getById(id);
}
@Override
@ -41,4 +41,9 @@ public class DeptServiceImpl extends ServiceImpl<DeptMapper, Dept> implements ID
public boolean removeById(Serializable id){
return super.removeById(id);
}
@Override
public boolean save(Dept entity) {
return super.save(entity);
}
}

@ -5,6 +5,7 @@ import com.yeqifu.sys.mapper.RoleMapper;
import com.yeqifu.sys.service.IRoleService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.Serializable;
import java.util.List;
@ -18,6 +19,7 @@ import java.util.List;
* @since 2019-11-28
*/
@Service
@Transactional
public class RoleServiceImpl extends ServiceImpl<RoleMapper, Role> implements IRoleService {
@Override

@ -1,5 +1,6 @@
package com.yeqifu.sys.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.yeqifu.sys.entity.User;
import com.yeqifu.sys.mapper.UserMapper;
import com.yeqifu.sys.service.IUserService;
@ -7,6 +8,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.Serializable;
/**
* <p>
* InnoDB free: 9216 kB; (`deptid`) REFER `warehouse/sys_dept`(`id`) ON UPDATE CASC
@ -19,4 +22,23 @@ import org.springframework.transaction.annotation.Transactional;
@Transactional
public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements IUserService {
@Override
public boolean save(User entity) {
return super.save(entity);
}
@Override
public boolean updateById(User entity) {
return super.updateById(entity);
}
@Override
public User getById(Serializable id) {
return super.getById(id);
}
@Override
public boolean removeById(Serializable id) {
return super.removeById(id);
}
}

@ -0,0 +1,17 @@
package com.yeqifu.sys.vo;
import com.yeqifu.sys.entity.User;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* @Author: -
* @Date: 2019/12/2 8:21
*/
@Data
@EqualsAndHashCode(callSuper = false)
public class UserVo extends User {
private Integer page=1;
private Integer limit=10;
}

@ -99,7 +99,7 @@
/** 下拉树属性*/
.dtree-select{position: absolute;max-height: 500px;height: 350px;overflow: auto;width: 99%;z-index: 123;display: none;border:1px solid silver;top: 42px;}
.dtree-select{position: absolute;max-height: 500px;height: 350px;overflow: auto;width: 99%;z-index: 900;display: none;border:1px solid silver;top: 42px;}
.dtree-select-show{display: block!important;}
/* 简单适配*/

@ -0,0 +1,352 @@
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title></title>
<meta name="renderer" content="webkit">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta http-equiv="Access-Control-Allow-Origin" content="*">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<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" 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"/>
</head>
<body>
<!---->
<fieldset class="layui-elem-field layui-field-title" style="margin-top: 15px;">
<legend></legend>
</fieldset>
<form action="" method="post" id="searchFrm" lay-filter="searchFrm" class="layui-form">
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label"></label>
<div class="layui-input-inline">
<input type="hidden" name="deptid" id="search_deptid">
<ul id="search_deptTree" class="dtree" data-id="0"></ul>
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label"></label>
<div class="layui-input-inline">
<input type="text" name="name" id="name" class="layui-input input-radius" placeholder="请输入用户名">
</div>
</div>
<div class="layui-inline">
<label class="layui-form-label"></label>
<div class="layui-input-inline">
<input type="text" name="address" class="layui-input input-radius"
placeholder="请输入用户地址">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block" style="text-align: center;padding-right: 15%;">
<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
class="layui-icon layui-icon-refresh"></i><span></span>
</button>
</div>
</div>
</form>
<!---->
<div>
<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>
</button>
</div>
<div id="userRowBar" style="display: none;">
<button type="button" lay-event="update" class="layui-btn layui-btn-xs layui-btn-radius"><i
class="layui-icon layui-icon-edit"></i>
</button>
<button type="button" lay-event="delete" class="layui-btn layui-btn-xs layui-btn-danger layui-btn-radius"><i
class="layui-icon layui-icon-delete"></i>
</button>
<button type="button" lay-event="resetPwd" class="layui-btn layui-btn-xs layui-btn-danger layui-btn-radius"><i
class="layui-icon layui-icon-delete"></i>
</button>
<button type="button" lay-event="selectRole" class="layui-btn layui-btn-xs layui-btn-danger layui-btn-radius"><i
class="layui-icon layui-icon-delete"></i>
</button>
</div>
</div>
<!---->
<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>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<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="请输入部门名称">
</div>
</div>
<div class="layui-inline">
<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="请输入部门地址">
</div>
</div>
</div>
<div class="layui-form-item">
<div class="layui-inline">
<label class="layui-form-label"></label>
<div class="layui-input-block">
<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>
<div class="layui-input-block">
<input type="radio" name="available" value="1" title="可用" checked="">
<input type="radio" name="available" value="0" title="不可用">
</div>
</div>
<div class="layui-inline">
<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="不展开">
</div>
</div>
</div>
<div class="layui-form-item">
<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]">
</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
class="layui-icon layui-icon-search layui-icon-normal"></i>
</button>
<button type="reset" class="layui-btn layui-btn-radius layui-btn-warm"><i
class="layui-icon layui-icon-refresh"></i><span></span>
</button>
</div>
</div>
</form>
</div>
<script type="text/javascript" src="/resources/layui/layui.js"></script>
<script type="text/javascript">
//提升数据表格的作用域因为底下还有一个reloadTable方法
var tableIns;
layui.extend({
dtree: '/resources/layui_ext/dtree/dtree'
}).use(['jquery', 'form', 'layer', 'laydate', 'table', 'layedit','dtree'], function () {
var $ = layui.jquery;
var form = layui.form;
var layer = layui.layer;
var table = layui.table;
var dtree = layui.dtree;
//初始化表格 加载数据
tableIns = table.render({
elem: "#userTable",
title: "部门数据表格",
url: "/user/loadAllUser",
toolbar: "#userToolBar",
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'}
] ],
done: function (data, curr, count) {
//不是第一页时如果当前返回的数据为0那么就返回上一页
if (data.data.length == 0 && curr != 1) {
tableIns.reload({
page: {
curr: curr - 1
}
})
}
//当是第一页时如果当前返回的数据为0并且当前为第一页 给一个空的查询条件并给curr赋初值为1
if (data.data.length==0 && curr==1){
tableIns.reload({
where: "",
page:{
curr:1
}
})
}
}
});
//监控模糊查询按钮事件
form.on("submit(doSearch)", function (data) {
tableIns.reload({
where: data.field,
page: {
curr: 1
}
});
return false;
});
//监控工具条事件
table.on("toolbar(userTable)", function (obj) {
switch (obj.event) {
case 'add':
openAddLayer();
break;
};
});
//监控行工具条事件
table.on("tool(userTable)", function (obj) {
//获取当前行数据
var data = obj.data;
switch (obj.event) {
case 'delete':
deleteUser(data);
break;
case 'update':
updateUser(data);
break;
};
});
var mainIndex;
var url;
//打开添加弹出层
function openAddLayer() {
mainIndex = layer.open({
type:1,
content:$("#addOrUpdateDiv"),
area:['800px','500px'],
title:'',
success:function () {
$("#dataFrm")[0].reset();
//设置下拉树中父节点的值为空
$("#pid").val("");
url="/user/addUser";
//初始化排序码
$.get("/user/loadUserMaxOrderNum",function (res) {
$("#ordernum").val(res.value);
});
//设置下拉树的value值为空
selectTree.selectVal("");
}
});
}
//打开修改的弹出层
function updateUser(data) {
mainIndex = layer.open({
type:1,
content:$("#addOrUpdateDiv"),
area:['800px','500px'],
title:'',
success:function () {
//清空原有的数据
$("#dataFrm")[0].reset();
//装载新的数据
form.val("dataFrm",data);
//选中之前的父级部门 nodeId=data.pid
dtree.dataInit("userTree",data.pid);
dtree.selectVal("userTree");
url="/user/updateUser";
}
});
}
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);
});
return false;
});
//删除
function deleteUser(data) {
layer.confirm('' + data.name + '', {icon: 3, title: ''}, function (index) {
$.post("/user/deleteUser", {id: data.id},function (res) {
if (res.code == 200) {
tableIns.reload();
//刷新下拉树
selectTree.reload();
//刷新左边的部门树
window.parent.left.userTree.reload();
}
layer.msg(res.msg);
});
layer.close(index);
});
}
//初始化查询条件的下拉树
var selectTree = dtree.renderSelect({
elem: "#search_deptTree",
width: "100%", // 可以在这里指定树的宽度来填满div
dataStyle: "layuiStyle", //使用layui风格的数据格式
dataFormat: "list", //配置data的风格为list
response:{message:"msg",statusCode:0}, //修改response中返回数据的定义
url: "/dept/loadManagerLeftTreeJson" // 使用url加载可与data加载同时存在
});
//监听点击的方法
dtree.on("node(search_deptTree)",function (obj) {
$("#search_deptid").val(obj.param.nodeId);
console.log(obj.param.nodeId);
});
});
</script>
</body>
</html>
Loading…
Cancel
Save