From 47369fc80522c351f49b577251674e6f5de13fa2 Mon Sep 17 00:00:00 2001
From: sk1551 <15175617877@163.com>
Date: Sat, 17 Oct 2020 18:58:24 +0800
Subject: [PATCH] =?UTF-8?q?=E8=AF=84=E4=BC=B0=E5=86=85=E5=AE=B9=E9=83=A8?=
=?UTF-8?q?=E5=88=86=E4=BB=A3=E7=A0=81?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
ruoyi-ui/src/api/benyi/assessmentcontent.js | 67 +++++++------
.../views/benyi/assessmentcontent/index.vue | 63 ++++++++-----
.../framework/web/domain/TreeSelect.java | 8 ++
.../ByAssessmentcontentController.java | 18 ++++
.../benyi/domain/ByAssessmentcontent.java | 45 +++++++--
.../service/IByAssessmentcontentService.java | 17 ++++
.../impl/ByAssessmentcontentServiceImpl.java | 93 +++++++++++++++++++
.../benyi/ByAssessmentcontentMapper.xml | 10 +-
8 files changed, 252 insertions(+), 69 deletions(-)
diff --git a/ruoyi-ui/src/api/benyi/assessmentcontent.js b/ruoyi-ui/src/api/benyi/assessmentcontent.js
index e0559c694..671f894d3 100644
--- a/ruoyi-ui/src/api/benyi/assessmentcontent.js
+++ b/ruoyi-ui/src/api/benyi/assessmentcontent.js
@@ -2,52 +2,61 @@ import request from '@/utils/request'
// 查询评估内容列表
export function listAssessmentcontent(query) {
- return request({
- url: '/benyi/assessmentcontent/list',
- method: 'get',
- params: query
- })
+ return request({
+ url: '/benyi/assessmentcontent/list',
+ method: 'get',
+ params: query
+ })
}
+// 查询部门下拉树结构
+export function treeselect() {
+ return request({
+ url: '/benyi/assessmentcontent/treeselect',
+ method: 'get'
+ })
+}
+
+
// 查询评估内容详细
export function getAssessmentcontent(id) {
- return request({
- url: '/benyi/assessmentcontent/' + id,
- method: 'get'
- })
+ return request({
+ url: '/benyi/assessmentcontent/' + id,
+ method: 'get'
+ })
}
// 新增评估内容
export function addAssessmentcontent(data) {
- return request({
- url: '/benyi/assessmentcontent',
- method: 'post',
- data: data
- })
+ return request({
+ url: '/benyi/assessmentcontent',
+ method: 'post',
+ data: data
+ })
}
// 修改评估内容
export function updateAssessmentcontent(data) {
- return request({
- url: '/benyi/assessmentcontent',
- method: 'put',
- data: data
- })
+ return request({
+ url: '/benyi/assessmentcontent',
+ method: 'put',
+ data: data
+ })
}
// 删除评估内容
export function delAssessmentcontent(id) {
- return request({
- url: '/benyi/assessmentcontent/' + id,
- method: 'delete'
- })
+ return request({
+ url: '/benyi/assessmentcontent/' + id,
+ method: 'delete'
+ })
}
// 导出评估内容
export function exportAssessmentcontent(query) {
- return request({
- url: '/benyi/assessmentcontent/export',
- method: 'get',
- params: query
- })
-}
+ return request({
+ url: '/benyi/assessmentcontent/export',
+ method: 'get',
+ params: query
+ })
+}
\ No newline at end of file
diff --git a/ruoyi-ui/src/views/benyi/assessmentcontent/index.vue b/ruoyi-ui/src/views/benyi/assessmentcontent/index.vue
index b9c54d82e..67c7a309d 100644
--- a/ruoyi-ui/src/views/benyi/assessmentcontent/index.vue
+++ b/ruoyi-ui/src/views/benyi/assessmentcontent/index.vue
@@ -54,8 +54,6 @@
@selection-change="handleSelectionChange"
>
-
-
@@ -90,15 +88,13 @@
-
-
-
-
+
+
@@ -114,7 +110,7 @@
-
+
{
this.iselementOptions = response.data;
});
- this.getPartntid();
},
methods: {
// 性别字典翻译
@@ -224,13 +218,27 @@ export default {
this.loading = false;
});
},
- getPartntid() {
+
+ /** 查询部门下拉树结构 */
+ getTreeselect() {
listAssessmentcontent(null).then(response => {
- this.parentidOptions = response.rows;
+ this.parentidOptions = this.handleTree(response.rows, "id");
console.log(this.parentidOptions);
});
},
+ /** 转换部门数据结构 */
+ normalizer(node) {
+ if (node.children && !node.children.length) {
+ delete node.children;
+ }
+ return {
+ id: node.id,
+ label: node.name,
+ children: node.children
+ };
+ },
+
// 取消按钮
cancel() {
this.open = false;
@@ -240,7 +248,7 @@ export default {
reset() {
this.form = {
id: undefined,
- parentid: undefined,
+ parentId: undefined,
name: undefined,
iselement: undefined,
scope: undefined,
@@ -265,14 +273,19 @@ export default {
this.multiple = !selection.length;
},
/** 新增按钮操作 */
- handleAdd() {
+ handleAdd(row) {
this.reset();
+ this.getTreeselect();
+ if (row != undefined) {
+ this.form.parentId = row.id;
+ }
this.open = true;
this.title = "添加评估内容";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
+ this.getTreeselect();
const id = row.id || this.ids;
getAssessmentcontent(id).then(response => {
this.form = response.data;
diff --git a/ruoyi/src/main/java/com/ruoyi/framework/web/domain/TreeSelect.java b/ruoyi/src/main/java/com/ruoyi/framework/web/domain/TreeSelect.java
index a9743f62a..3061da598 100644
--- a/ruoyi/src/main/java/com/ruoyi/framework/web/domain/TreeSelect.java
+++ b/ruoyi/src/main/java/com/ruoyi/framework/web/domain/TreeSelect.java
@@ -4,6 +4,7 @@ import java.io.Serializable;
import java.util.List;
import java.util.stream.Collectors;
import com.fasterxml.jackson.annotation.JsonInclude;
+import com.ruoyi.project.benyi.domain.ByAssessmentcontent;
import com.ruoyi.project.benyi.domain.ByDayFlowDetail;
import com.ruoyi.project.benyi.domain.ByMath;
import com.ruoyi.project.benyi.domain.ByTheme;
@@ -37,6 +38,13 @@ public class TreeSelect implements Serializable
this.children = dept.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
}
+ public TreeSelect(ByAssessmentcontent byAssessmentcontent)
+ {
+ this.id = byAssessmentcontent.getId();
+ this.label = byAssessmentcontent.getName();
+ this.children = byAssessmentcontent.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList());
+ }
+
public TreeSelect(SysMenu menu)
{
this.id = menu.getMenuId();
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByAssessmentcontentController.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByAssessmentcontentController.java
index fc674f405..677575647 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByAssessmentcontentController.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByAssessmentcontentController.java
@@ -1,6 +1,10 @@
package com.ruoyi.project.benyi.controller;
import java.util.List;
+
+import com.ruoyi.common.utils.ServletUtils;
+import com.ruoyi.framework.security.LoginUser;
+import com.ruoyi.framework.security.service.TokenService;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
@@ -32,6 +36,8 @@ public class ByAssessmentcontentController extends BaseController
{
@Autowired
private IByAssessmentcontentService byAssessmentcontentService;
+ @Autowired
+ private TokenService tokenService;
/**
* 查询评估内容列表
@@ -68,6 +74,18 @@ public class ByAssessmentcontentController extends BaseController
return AjaxResult.success(byAssessmentcontentService.selectByAssessmentcontentById(id));
}
+
+
+ /**
+ * 获取部门下拉树列表
+ */
+ @GetMapping("/treeselect")
+ public AjaxResult treeselect(ByAssessmentcontent byAssessmentcontent) {
+ List byAssessmentcontents = byAssessmentcontentService.selectByAssessmentcontentList(byAssessmentcontent);
+ return AjaxResult.success(byAssessmentcontentService.buildByAssessmentcontentTreeSelect(byAssessmentcontents));
+ }
+
+
/**
* 新增评估内容
*/
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByAssessmentcontent.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByAssessmentcontent.java
index 929f8659c..8ba49b17b 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByAssessmentcontent.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByAssessmentcontent.java
@@ -5,6 +5,9 @@ import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.framework.aspectj.lang.annotation.Excel;
import com.ruoyi.framework.web.domain.BaseEntity;
+import java.util.ArrayList;
+import java.util.List;
+
/**
* 评估内容对象 by_assessmentcontent
*
@@ -23,7 +26,7 @@ public class ByAssessmentcontent extends BaseEntity {
* 父id
*/
@Excel(name = "父id")
- private Long parentid;
+ private Long parentId;
/**
* 名称
@@ -37,6 +40,28 @@ public class ByAssessmentcontent extends BaseEntity {
@Excel(name = "是否元素")
private String iselement;
+ public String getParentName() {
+ return parentName;
+ }
+
+ public void setParentName(String parentName) {
+ this.parentName = parentName;
+ }
+
+ public List getChildren() {
+ return children;
+ }
+
+ public void setChildren(List children) {
+ this.children = children;
+ }
+
+ /** 父部门名称 */
+ private String parentName;
+
+ /** 子部门 */
+ private List children = new ArrayList();
+
/**
* 元素才有适用范围;应该以幼儿的岁数为准
*/
@@ -51,14 +76,6 @@ public class ByAssessmentcontent extends BaseEntity {
return id;
}
- public void setParentid(Long parentid) {
- this.parentid = parentid;
- }
-
- public Long getParentid() {
- return parentid;
- }
-
public void setName(String name) {
this.name = name;
}
@@ -87,11 +104,19 @@ public class ByAssessmentcontent extends BaseEntity {
public String toString() {
return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
.append("id", getId())
- .append("parentid", getParentid())
+ .append("parentId", getParentId())
.append("name", getName())
.append("iselement", getIselement())
.append("scope", getScope())
.append("createTime", getCreateTime())
.toString();
}
+
+ public Long getParentId() {
+ return parentId;
+ }
+
+ public void setParentId(Long parentId) {
+ this.parentId = parentId;
+ }
}
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByAssessmentcontentService.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByAssessmentcontentService.java
index f8701b3f3..639d01098 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByAssessmentcontentService.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByAssessmentcontentService.java
@@ -2,6 +2,7 @@ package com.ruoyi.project.benyi.service;
import java.util.List;
+import com.ruoyi.framework.web.domain.TreeSelect;
import com.ruoyi.project.benyi.domain.ByAssessmentcontent;
/**
@@ -27,6 +28,22 @@ public interface IByAssessmentcontentService {
*/
public List selectByAssessmentcontentList(ByAssessmentcontent byAssessmentcontent);
+ /**
+ * 构建前端所需要树结构
+ *
+ * @param byAssessmentcontents 部门列表
+ * @return 树结构列表
+ */
+ List buildbyAssessmentcontentTree(List byAssessmentcontents);
+
+ /**
+ * 构建前端所需要下拉树结构
+ *
+ * @param byAssessmentcontents 部门列表
+ * @return 下拉树结构列表
+ */
+ public List buildByAssessmentcontentTreeSelect(List byAssessmentcontents);
+
/**
* 新增评估内容
*
diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByAssessmentcontentServiceImpl.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByAssessmentcontentServiceImpl.java
index 589981410..339681ae2 100644
--- a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByAssessmentcontentServiceImpl.java
+++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByAssessmentcontentServiceImpl.java
@@ -1,8 +1,13 @@
package com.ruoyi.project.benyi.service.impl;
+import java.util.ArrayList;
+import java.util.Iterator;
import java.util.List;
+import java.util.stream.Collectors;
import com.ruoyi.common.utils.DateUtils;
+import com.ruoyi.common.utils.StringUtils;
+import com.ruoyi.framework.web.domain.TreeSelect;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.project.benyi.mapper.ByAssessmentcontentMapper;
@@ -42,6 +47,44 @@ public class ByAssessmentcontentServiceImpl implements IByAssessmentcontentServi
return byAssessmentcontentMapper.selectByAssessmentcontentList(byAssessmentcontent);
}
+ /**
+ * 构建前端所需要树结构
+ *
+ * @param byAssessmentcontents 部门列表
+ * @return 树结构列表
+ */
+ @Override
+ public List buildbyAssessmentcontentTree(List byAssessmentcontents)
+ {
+ List returnList = new ArrayList();
+ List tempList = new ArrayList();
+ for (ByAssessmentcontent byAssessmentcontent : byAssessmentcontents)
+ {
+ tempList.add(byAssessmentcontent.getId());
+ }
+ for (Iterator iterator = byAssessmentcontents.iterator(); iterator.hasNext();)
+ {
+ ByAssessmentcontent byAssessmentcontent = (ByAssessmentcontent) iterator.next();
+ // 如果是顶级节点, 遍历该父节点的所有子节点
+ if (!tempList.contains(byAssessmentcontent.getParentId()))
+ {
+ recursionFn(byAssessmentcontents, byAssessmentcontent);
+ returnList.add(byAssessmentcontent);
+ }
+ }
+ if (returnList.isEmpty())
+ {
+ returnList = byAssessmentcontents;
+ }
+ return returnList;
+ }
+
+ @Override
+ public List buildByAssessmentcontentTreeSelect(List byAssessmentcontents) {
+ List byAssessmentcontentTrees = buildbyAssessmentcontentTree(byAssessmentcontents);
+ return byAssessmentcontentTrees.stream().map(TreeSelect::new).collect(Collectors.toList());
+ }
+
/**
* 新增评估内容
*
@@ -86,4 +129,54 @@ public class ByAssessmentcontentServiceImpl implements IByAssessmentcontentServi
public int deleteByAssessmentcontentById(Long id) {
return byAssessmentcontentMapper.deleteByAssessmentcontentById(id);
}
+
+ /**
+ * 递归列表
+ */
+ private void recursionFn(List list, ByAssessmentcontent t)
+ {
+ // 得到子节点列表
+ List childList = getChildList(list, t);
+ t.setChildren(childList);
+ for (ByAssessmentcontent tChild : childList)
+ {
+ if (hasChild(list, tChild))
+ {
+ // 判断是否有子节点
+ Iterator it = childList.iterator();
+ while (it.hasNext())
+ {
+ ByAssessmentcontent n = (ByAssessmentcontent) it.next();
+ recursionFn(list, n);
+ }
+ }
+ }
+ }
+
+ /**
+ * 得到子节点列表
+ */
+ private List getChildList(List list, ByAssessmentcontent t)
+ {
+ List tlist = new ArrayList();
+ Iterator it = list.iterator();
+ while (it.hasNext())
+ {
+ ByAssessmentcontent n = (ByAssessmentcontent) it.next();
+ if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getId().longValue())
+ {
+ tlist.add(n);
+ }
+ }
+ return tlist;
+ }
+
+ /**
+ * 判断是否有子节点
+ */
+ private boolean hasChild(List list, ByAssessmentcontent t)
+ {
+ return getChildList(list, t).size() > 0 ? true : false;
+ }
+
}
diff --git a/ruoyi/src/main/resources/mybatis/benyi/ByAssessmentcontentMapper.xml b/ruoyi/src/main/resources/mybatis/benyi/ByAssessmentcontentMapper.xml
index 954e3bd4d..28d682b42 100644
--- a/ruoyi/src/main/resources/mybatis/benyi/ByAssessmentcontentMapper.xml
+++ b/ruoyi/src/main/resources/mybatis/benyi/ByAssessmentcontentMapper.xml
@@ -6,7 +6,7 @@
-
+
@@ -21,7 +21,7 @@
resultMap="ByAssessmentcontentResult">
- and parentId = #{parentid}
+ and parentId = #{parentId}
and name like concat('%', #{name}, '%')
and iselement = #{iselement}
and scope = #{scope}
@@ -36,14 +36,14 @@
insert into by_assessmentcontent
- parentId,
+ parentId,
name,
iselement,
scope,
create_time,
- #{parentid},
+ #{parentId},
#{name},
#{iselement},
#{scope},
@@ -54,7 +54,7 @@
update by_assessmentcontent
- parentId = #{parentid},
+ parentId = #{parentId},
name = #{name},
iselement = #{iselement},
scope = #{scope},