From 390eb53d1e3c24ecc2e8da7b50aa40145dfe26a8 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Thu, 11 Mar 2021 22:58:05 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BD=BF=E7=94=A8fit2cloud-ui=E6=9F=A5?= =?UTF-8?q?=E8=AF=A2=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../base/mapper/ext/ExtDeptMapper.java | 12 +- .../base/mapper/ext/ExtDeptMapper.xml | 21 ++ .../base/mapper/ext/ExtSysRoleMapper.java | 3 +- .../base/mapper/ext/ExtSysRoleMapper.xml | 18 +- .../base/mapper/ext/ExtSysUserMapper.java | 4 +- .../base/mapper/ext/ExtSysUserMapper.xml | 30 +- .../base/mapper/ext/query/GridExample.java | 259 ++++++++++++++++++ .../base/mapper/ext/query/GridSql.java | 4 + .../base/mapper/ext/query/GridSql.xml | 35 +++ .../controller/sys/SysDeptController.java | 14 + .../controller/sys/SysRoleController.java | 3 +- .../controller/sys/SysUserController.java | 7 +- .../controller/sys/base/BaseGridRequest.java | 24 ++ .../controller/sys/base/ConditionEntity.java | 16 ++ .../sys/request/SimpleTreeNode.java | 11 + .../io/dataease/service/sys/DeptService.java | 67 ++++- .../dataease/service/sys/SysRoleService.java | 5 +- .../dataease/service/sys/SysUserService.java | 8 +- frontend/src/api/system/dept.js | 11 +- frontend/src/utils/index.js | 26 +- frontend/src/views/system/dept/index.vue | 119 +++++--- frontend/src/views/system/role/index.vue | 21 +- frontend/src/views/system/user/index.vue | 11 +- 23 files changed, 634 insertions(+), 95 deletions(-) create mode 100644 backend/src/main/java/io/dataease/base/mapper/ext/ExtDeptMapper.xml create mode 100644 backend/src/main/java/io/dataease/base/mapper/ext/query/GridExample.java create mode 100644 backend/src/main/java/io/dataease/base/mapper/ext/query/GridSql.java create mode 100644 backend/src/main/java/io/dataease/base/mapper/ext/query/GridSql.xml create mode 100644 backend/src/main/java/io/dataease/controller/sys/base/BaseGridRequest.java create mode 100644 backend/src/main/java/io/dataease/controller/sys/base/ConditionEntity.java create mode 100644 backend/src/main/java/io/dataease/controller/sys/request/SimpleTreeNode.java diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtDeptMapper.java b/backend/src/main/java/io/dataease/base/mapper/ext/ExtDeptMapper.java index f8f8b503ad..5a71f86c61 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtDeptMapper.java +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtDeptMapper.java @@ -1,9 +1,8 @@ package io.dataease.base.mapper.ext; -import org.apache.ibatis.annotations.Delete; -import org.apache.ibatis.annotations.Mapper; -import org.apache.ibatis.annotations.Param; -import org.apache.ibatis.annotations.Update; +import io.dataease.base.mapper.ext.query.GridExample; +import io.dataease.controller.sys.request.SimpleTreeNode; +import org.apache.ibatis.annotations.*; import java.util.List; @@ -22,4 +21,9 @@ public interface ExtDeptMapper { " #{id} " + "") int batchDelete(@Param("ids") List ids); + + + List allNodes(); + + List nodesByExample(GridExample example); } diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtDeptMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtDeptMapper.xml new file mode 100644 index 0000000000..9dcec17d12 --- /dev/null +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtDeptMapper.xml @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysRoleMapper.java b/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysRoleMapper.java index 31ae070772..05c47bff5d 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysRoleMapper.java +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysRoleMapper.java @@ -1,6 +1,7 @@ package io.dataease.base.mapper.ext; import io.dataease.base.domain.SysRole; +import io.dataease.base.mapper.ext.query.GridExample; import io.dataease.controller.sys.request.RoleGridRequest; import io.dataease.controller.sys.response.RoleUserItem; import org.apache.ibatis.annotations.Param; @@ -12,7 +13,7 @@ import java.util.Map; public interface ExtSysRoleMapper { - List query(@Param("request")RoleGridRequest request); + List query(GridExample example); int deleteRoleMenu(@Param("roleId") Long roleId); diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysRoleMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysRoleMapper.xml index 37459e831b..1f3fe93d21 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysRoleMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysRoleMapper.xml @@ -9,15 +9,19 @@ - select r.* from sys_role r - - - AND r.name like CONCAT('%', #{request.name},'%') - - - order by r.update_time desc + + + + + order by ${orderByClause} + + + order by r.update_time desc + + diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysUserMapper.java b/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysUserMapper.java index 7fd6fc89c2..9c957c6b1f 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysUserMapper.java +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysUserMapper.java @@ -1,5 +1,7 @@ package io.dataease.base.mapper.ext; +import io.dataease.base.mapper.ext.query.GridExample; +import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.controller.sys.request.UserGridRequest; import io.dataease.controller.sys.response.SysUserGridResponse; import org.apache.ibatis.annotations.Param; @@ -8,5 +10,5 @@ import java.util.List; public interface ExtSysUserMapper { - List query(@Param("request")UserGridRequest request); + List query(GridExample example); } diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysUserMapper.xml b/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysUserMapper.xml index 374f4216d7..b13fb659f8 100644 --- a/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysUserMapper.xml +++ b/backend/src/main/java/io/dataease/base/mapper/ext/ExtSysUserMapper.xml @@ -27,26 +27,24 @@ - select u.*,u.user_id as id, r.role_id,r.name as role_name , d.pid, d.name as dept_name from sys_user u left join sys_users_roles ur on u.user_id = ur.user_id left join sys_role r on r.role_id = ur.role_id left join sys_dept d on d.dept_id = u.dept_id - - - AND u.nick_name like CONCAT('%', #{request.quick},'%') - - - AND u.nick_name like CONCAT('%', #{request.name},'%') - - - AND u.enabled = #{request.enabled} - - - AND u.dept_id = #{request.deptId} - - - order by u.update_time desc + + + + + + order by ${orderByClause} + + + order by u.update_time desc + + diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/query/GridExample.java b/backend/src/main/java/io/dataease/base/mapper/ext/query/GridExample.java new file mode 100644 index 0000000000..2bb6eaf3e6 --- /dev/null +++ b/backend/src/main/java/io/dataease/base/mapper/ext/query/GridExample.java @@ -0,0 +1,259 @@ +package io.dataease.base.mapper.ext.query; + +import io.dataease.controller.sys.base.ConditionEntity; +import org.apache.commons.lang3.StringUtils; + +import java.util.ArrayList; +import java.util.List; + +public class GridExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public GridExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + + + public Criteria addCondtion(ConditionEntity conditionEntity){ + String field = conditionEntity.getField(); + Object value = conditionEntity.getValue(); + String operator = conditionEntity.getOperator(); + if (StringUtils.isEmpty(operator)) + operator = "like"; + switch (operator){ + case "eq": + addCriterion(field+" = ", value, field); + break; + case "ne": + addCriterion(field+" <> ", value, field); + break; + case "like": + addCriterion(field+" like ", "%"+value+"%", field); + break; + case "not like": + addCriterion(field+" not like ", value, field); + break; + case "in": + List invalues = (List)value; + addCriterion(field+" in", invalues, field); + break; + case "not in": + List notinvalues = (List)value; + addCriterion(field+" not in", notinvalues, field); + break; + case "between": + List values = (List)value; + Object v1 = values.get(0); + Object v2 = values.get(1); + addCriterion(field+" between", v1, v2, field); + break; + case "gt": + addCriterion(field+" > ", value, field); + break; + case "ge": + addCriterion(field+" >= ", value, field); + break; + case "lt": + addCriterion(field+" < ", value, field); + break; + case "le": + addCriterion(field+" <= ", value, field); + break; + } + return (Criteria) this; + } + + + + + + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/query/GridSql.java b/backend/src/main/java/io/dataease/base/mapper/ext/query/GridSql.java new file mode 100644 index 0000000000..fefd5df763 --- /dev/null +++ b/backend/src/main/java/io/dataease/base/mapper/ext/query/GridSql.java @@ -0,0 +1,4 @@ +package io.dataease.base.mapper.ext.query; + +public interface GridSql { +} diff --git a/backend/src/main/java/io/dataease/base/mapper/ext/query/GridSql.xml b/backend/src/main/java/io/dataease/base/mapper/ext/query/GridSql.xml new file mode 100644 index 0000000000..a11cd3c87e --- /dev/null +++ b/backend/src/main/java/io/dataease/base/mapper/ext/query/GridSql.xml @@ -0,0 +1,35 @@ + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + diff --git a/backend/src/main/java/io/dataease/controller/sys/SysDeptController.java b/backend/src/main/java/io/dataease/controller/sys/SysDeptController.java index fcbe71ce65..0f922996ef 100644 --- a/backend/src/main/java/io/dataease/controller/sys/SysDeptController.java +++ b/backend/src/main/java/io/dataease/controller/sys/SysDeptController.java @@ -3,6 +3,7 @@ package io.dataease.controller.sys; import io.dataease.base.domain.SysDept; import io.dataease.commons.utils.BeanUtils; import io.dataease.controller.ResultHolder; +import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.controller.sys.request.DeptCreateRequest; import io.dataease.controller.sys.request.DeptDeleteRequest; import io.dataease.controller.sys.request.DeptStatusRequest; @@ -39,6 +40,19 @@ public class SysDeptController extends ResultHolder { return nodeResponses; } + @PostMapping("/search") + public List search(@RequestBody BaseGridRequest request){ + List nodes = deptService.nodesTreeByCondition(request); + //List nodes = deptService.nodesByPid(pid); + List nodeResponses = nodes.stream().map(node -> { + DeptNodeResponse deptNodeResponse = BeanUtils.copyBean(new DeptNodeResponse(), node); + deptNodeResponse.setHasChildren(node.getSubCount() > 0); + deptNodeResponse.setTop(node.getPid() == deptService.DEPT_ROOT_PID); + return deptNodeResponse; + }).collect(Collectors.toList()); + return nodeResponses; + } + @ApiOperation("查询部门") @PostMapping("/root") public ResultHolder rootData(){ diff --git a/backend/src/main/java/io/dataease/controller/sys/SysRoleController.java b/backend/src/main/java/io/dataease/controller/sys/SysRoleController.java index eb1cb93a2a..2927dd94a1 100644 --- a/backend/src/main/java/io/dataease/controller/sys/SysRoleController.java +++ b/backend/src/main/java/io/dataease/controller/sys/SysRoleController.java @@ -6,6 +6,7 @@ import com.github.pagehelper.PageHelper; import io.dataease.base.domain.SysRole; import io.dataease.commons.utils.PageUtils; import io.dataease.commons.utils.Pager; +import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.controller.sys.request.RoleGridRequest; import io.dataease.controller.sys.request.RoleMenusRequest; import io.dataease.controller.sys.response.RoleUserItem; @@ -49,7 +50,7 @@ public class SysRoleController { @ApiOperation("查询角色") @PostMapping("/roleGrid/{goPage}/{pageSize}") - public Pager> roleGrid(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody RoleGridRequest request) { + public Pager> roleGrid(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody BaseGridRequest request) { Page page = PageHelper.startPage(goPage, pageSize, true); Pager> listPager = PageUtils.setPageInfo(page, sysRoleService.query(request)); return listPager; diff --git a/backend/src/main/java/io/dataease/controller/sys/SysUserController.java b/backend/src/main/java/io/dataease/controller/sys/SysUserController.java index bdaeb7ed1a..4fe8913321 100644 --- a/backend/src/main/java/io/dataease/controller/sys/SysUserController.java +++ b/backend/src/main/java/io/dataease/controller/sys/SysUserController.java @@ -5,6 +5,7 @@ import com.github.pagehelper.Page; import com.github.pagehelper.PageHelper; import io.dataease.commons.utils.PageUtils; import io.dataease.commons.utils.Pager; +import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.controller.sys.request.SysUserCreateRequest; import io.dataease.controller.sys.request.SysUserPwdRequest; import io.dataease.controller.sys.request.SysUserStateRequest; @@ -27,10 +28,14 @@ public class SysUserController { @ApiOperation("查询用户") @PostMapping("/userGrid/{goPage}/{pageSize}") - public Pager> userGrid(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody UserGridRequest request) { + public Pager> userGrid(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody BaseGridRequest request) { Page page = PageHelper.startPage(goPage, pageSize, true); return PageUtils.setPageInfo(page, sysUserService.query(request)); } + /*public Pager> userGrid(@PathVariable int goPage, @PathVariable int pageSize, @RequestBody UserGridRequest request) { + Page page = PageHelper.startPage(goPage, pageSize, true); + return PageUtils.setPageInfo(page, sysUserService.query(request)); + }*/ @ApiOperation("创建用户") @PostMapping("/create") diff --git a/backend/src/main/java/io/dataease/controller/sys/base/BaseGridRequest.java b/backend/src/main/java/io/dataease/controller/sys/base/BaseGridRequest.java new file mode 100644 index 0000000000..4448c64b82 --- /dev/null +++ b/backend/src/main/java/io/dataease/controller/sys/base/BaseGridRequest.java @@ -0,0 +1,24 @@ +package io.dataease.controller.sys.base; + +import io.dataease.base.mapper.ext.query.GridExample; +import lombok.Data; +import org.apache.commons.collections.CollectionUtils; + +import java.io.Serializable; +import java.util.List; + + +@Data +public class BaseGridRequest implements Serializable { + + private List conditions; + + public GridExample convertExample(){ + GridExample gridExample = new GridExample(); + if (CollectionUtils.isEmpty(conditions))return gridExample; + + GridExample.Criteria criteria = gridExample.createCriteria(); + conditions.forEach(criteria::addCondtion); + return gridExample; + } +} diff --git a/backend/src/main/java/io/dataease/controller/sys/base/ConditionEntity.java b/backend/src/main/java/io/dataease/controller/sys/base/ConditionEntity.java new file mode 100644 index 0000000000..0da0774c41 --- /dev/null +++ b/backend/src/main/java/io/dataease/controller/sys/base/ConditionEntity.java @@ -0,0 +1,16 @@ +package io.dataease.controller.sys.base; + +import lombok.Data; + +import java.io.Serializable; + +@Data +public class ConditionEntity implements Serializable { + + private String field; + + private String operator; + + private Object value; + +} diff --git a/backend/src/main/java/io/dataease/controller/sys/request/SimpleTreeNode.java b/backend/src/main/java/io/dataease/controller/sys/request/SimpleTreeNode.java new file mode 100644 index 0000000000..53548d41b2 --- /dev/null +++ b/backend/src/main/java/io/dataease/controller/sys/request/SimpleTreeNode.java @@ -0,0 +1,11 @@ +package io.dataease.controller.sys.request; + +import lombok.Data; + +@Data +public class SimpleTreeNode { + + private Long id; + + private Long pid; +} diff --git a/backend/src/main/java/io/dataease/service/sys/DeptService.java b/backend/src/main/java/io/dataease/service/sys/DeptService.java index 71f9b7256b..101533d193 100644 --- a/backend/src/main/java/io/dataease/service/sys/DeptService.java +++ b/backend/src/main/java/io/dataease/service/sys/DeptService.java @@ -4,16 +4,20 @@ import io.dataease.base.domain.SysDept; import io.dataease.base.domain.SysDeptExample; import io.dataease.base.mapper.SysDeptMapper; import io.dataease.base.mapper.ext.ExtDeptMapper; +import io.dataease.base.mapper.ext.query.GridExample; import io.dataease.commons.utils.BeanUtils; +import io.dataease.commons.utils.CommonBeanFactory; +import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.controller.sys.request.DeptCreateRequest; import io.dataease.controller.sys.request.DeptDeleteRequest; import io.dataease.controller.sys.request.DeptStatusRequest; +import io.dataease.controller.sys.request.SimpleTreeNode; import org.apache.commons.lang3.ObjectUtils; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; @Service @@ -23,11 +27,11 @@ public class DeptService { private final static Integer DEFAULT_SUBCOUNT = 0; public final static Long DEPT_ROOT_PID = 0L; - @Resource + @Autowired(required = false) private SysDeptMapper sysDeptMapper; - @Resource + @Autowired(required = false) private ExtDeptMapper extDeptMapper; public List nodesByPid(Long pid){ @@ -120,4 +124,59 @@ public class DeptService { return sysDeptMapper.updateByPrimaryKeySelective(sysDept); } + + + public List nodesTreeByCondition(BaseGridRequest request){ + //DeptService proxy = proxy(); + List allNodes = allNodes(); + List targetNodes = nodeByCondition(request); + List ids = upTree(allNodes, targetNodes); + SysDeptExample example = new SysDeptExample(); + SysDeptExample.Criteria criteria = example.createCriteria(); + criteria.andDeptIdIn(ids); + example.setOrderByClause("dept_sort"); + List sysDepts = sysDeptMapper.selectByExample(example); + return sysDepts; + } + + private DeptService proxy(){ + return CommonBeanFactory.getBean(DeptService.class); + } + + + private List allNodes(){ + List simpleTreeNodes = extDeptMapper.allNodes(); + return simpleTreeNodes; + } + + private List nodeByCondition(BaseGridRequest request){ + GridExample gridExample = request.convertExample(); + List simpleTreeNodes = extDeptMapper.nodesByExample(gridExample); + return simpleTreeNodes; + } + + /** + * 找出目标节点所在路径上的所有节点 向上找 + * @param allNodes 所有节点 + * @param targetNodes 目标节点 + * @return + */ + private List upTree(List allNodes, List targetNodes){ + final Map map = targetNodes.stream().collect(Collectors.toMap(SimpleTreeNode::getId, node -> node)); + List results = targetNodes.parallelStream().flatMap(targetNode -> { + //向上逐级找爹 + List ids = new ArrayList<>(); + SimpleTreeNode node = targetNode; + while (node != null) { + ids.add(node.getId()); + Long pid = node.getPid(); + node = map.get(pid); + } + return ids.stream(); + }).distinct().collect(Collectors.toList()); + return results; + } + + + } diff --git a/backend/src/main/java/io/dataease/service/sys/SysRoleService.java b/backend/src/main/java/io/dataease/service/sys/SysRoleService.java index 0ad1d6f3bd..5500878071 100644 --- a/backend/src/main/java/io/dataease/service/sys/SysRoleService.java +++ b/backend/src/main/java/io/dataease/service/sys/SysRoleService.java @@ -6,6 +6,7 @@ import io.dataease.base.domain.SysUsersRolesExample; import io.dataease.base.mapper.SysRoleMapper; import io.dataease.base.mapper.SysUsersRolesMapper; import io.dataease.base.mapper.ext.ExtSysRoleMapper; +import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.controller.sys.request.RoleGridRequest; import io.dataease.controller.sys.request.RoleMenusRequest; import io.dataease.controller.sys.response.RoleUserItem; @@ -56,8 +57,8 @@ public class SysRoleService { } - public List query(RoleGridRequest request){ - List result = extSysRoleMapper.query(request); + public List query(BaseGridRequest request){ + List result = extSysRoleMapper.query(request.convertExample()); return result; } diff --git a/backend/src/main/java/io/dataease/service/sys/SysUserService.java b/backend/src/main/java/io/dataease/service/sys/SysUserService.java index 4e0ae14d2b..f36e23c859 100644 --- a/backend/src/main/java/io/dataease/service/sys/SysUserService.java +++ b/backend/src/main/java/io/dataease/service/sys/SysUserService.java @@ -7,8 +7,10 @@ import io.dataease.base.domain.SysUsersRolesKey; import io.dataease.base.mapper.SysUserMapper; import io.dataease.base.mapper.SysUsersRolesMapper; import io.dataease.base.mapper.ext.ExtSysUserMapper; +import io.dataease.base.mapper.ext.query.GridExample; import io.dataease.commons.utils.BeanUtils; import io.dataease.commons.utils.CodingUtil; +import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.controller.sys.request.SysUserCreateRequest; import io.dataease.controller.sys.request.SysUserPwdRequest; import io.dataease.controller.sys.request.SysUserStateRequest; @@ -40,8 +42,10 @@ public class SysUserService { @Resource private ExtSysUserMapper extSysUserMapper; - public List query(UserGridRequest request){ - List lists = extSysUserMapper.query(request); + + public List query(BaseGridRequest request){ + GridExample gridExample = request.convertExample(); + List lists = extSysUserMapper.query(gridExample); lists.forEach(item -> { List roles = item.getRoles(); List roleIds = roles.stream().map(SysUserRole::getRoleId).collect(Collectors.toList()); diff --git a/frontend/src/api/system/dept.js b/frontend/src/api/system/dept.js index c4a536007a..e322d2f08d 100644 --- a/frontend/src/api/system/dept.js +++ b/frontend/src/api/system/dept.js @@ -8,6 +8,15 @@ export function getDeptTree(pid) { }) } +export function loadTable(data) { + return request({ + url: 'api/dept/search', + method: 'post', + data, + loading: true + }) +} + export function addDept(data) { return request({ url: '/api/dept/create', @@ -32,4 +41,4 @@ export function editDept(data) { }) } -export default { addDept, delDept, editDept, getDeptTree } +export default { addDept, delDept, editDept, getDeptTree, loadTable } diff --git a/frontend/src/utils/index.js b/frontend/src/utils/index.js index 092535fee8..e1d77a8393 100644 --- a/frontend/src/utils/index.js +++ b/frontend/src/utils/index.js @@ -137,16 +137,28 @@ export function param2Obj(url) { ) } +// export function formatCondition(param) { +// if (!param) { +// return null +// } +// const condition = {} +// for (const key in param) { +// if (Object.hasOwnProperty.call(param, key)) { +// const element = param[key] +// condition[element.field] = element.value +// } +// } +// return condition +// } + export function formatCondition(param) { if (!param) { return null } - const condition = {} - for (const key in param) { - if (Object.hasOwnProperty.call(param, key)) { - const element = param[key] - condition[element.field] = element.value - } + const result = { conditions: [] } + for (const [key, value] of Object.entries(param)) { + console.log(`${key}`) + result.conditions.push(value) } - return condition + return result } diff --git a/frontend/src/views/system/dept/index.vue b/frontend/src/views/system/dept/index.vue index 6fce37780f..1dcac01e5c 100644 --- a/frontend/src/views/system/dept/index.vue +++ b/frontend/src/views/system/dept/index.vue @@ -5,7 +5,7 @@ ref="table" :data="tableData" lazy - :load="initTableData" + :load="loadExpandDatas" :columns="columns" :buttons="buttons" :header="header" @@ -13,7 +13,7 @@ :pagination-config="paginationConfig" :tree-props="{children: 'children', hasChildren: 'hasChildren'}" row-key="deptId" - @search="initTableData" + @search="search" >