From 2ed9ffa3adc70678cda216b97928e16766d38cab Mon Sep 17 00:00:00 2001 From: paidaxing444 <12qwaszx> Date: Mon, 6 Jul 2020 17:31:44 +0800 Subject: [PATCH] =?UTF-8?q?20200706-zlp-1=20=E4=B8=BB=E9=A2=98=E6=95=B4?= =?UTF-8?q?=E5=90=88=E5=AD=A6=E4=B9=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/api/benyi/theme.js | 8 + .../src/views/benyi/dayflowstudy/index.vue | 16 +- ruoyi-ui/src/views/benyi/themestudy/index.vue | 268 ++++++++++++++++++ .../framework/web/domain/TreeSelect.java | 9 + .../benyi/controller/ByThemeController.java | 9 + .../ruoyi/project/benyi/domain/ByTheme.java | 26 ++ .../project/benyi/mapper/ByThemeMapper.java | 8 + .../benyi/service/IByThemeService.java | 25 ++ .../service/impl/ByThemeServiceImpl.java | 99 +++++++ .../resources/mybatis/benyi/ByThemeMapper.xml | 21 +- 10 files changed, 486 insertions(+), 3 deletions(-) create mode 100644 ruoyi-ui/src/views/benyi/themestudy/index.vue diff --git a/ruoyi-ui/src/api/benyi/theme.js b/ruoyi-ui/src/api/benyi/theme.js index b8a723077..3d67dd619 100644 --- a/ruoyi-ui/src/api/benyi/theme.js +++ b/ruoyi-ui/src/api/benyi/theme.js @@ -9,6 +9,14 @@ export function listTheme(query) { }) } +// 查询流程下拉树结构 +export function treeselect() { + return request({ + url: '/benyi/theme/treeselect', + method: 'get' + }) +} + // 查询主题整合详细 export function getTheme(id) { return request({ diff --git a/ruoyi-ui/src/views/benyi/dayflowstudy/index.vue b/ruoyi-ui/src/views/benyi/dayflowstudy/index.vue index 3ddbf8ba2..c90fbbd65 100644 --- a/ruoyi-ui/src/views/benyi/dayflowstudy/index.vue +++ b/ruoyi-ui/src/views/benyi/dayflowstudy/index.vue @@ -79,9 +79,11 @@ export default { //标题 title: "一日流程", //导言 - content: "寓教育于生活。以游戏为基本活动。没有爱就没有教育。教师素质决定教育品质。一童一世界,尊重差异,关注个性化发展。孩子喜欢的老师就是好老师,孩子喜欢的幼儿园就是好幼儿园。", + content: + "寓教育于生活。以游戏为基本活动。没有爱就没有教育。教师素质决定教育品质。一童一世界,尊重差异,关注个性化发展。孩子喜欢的老师就是好老师,孩子喜欢的幼儿园就是好幼儿园。", //目的 - note: "《幼儿园(3-6)标准化一日流程》(下称《一日流程》)的基本目的,就是要将国家教育纲领性文件中所主张的幼儿园教育理念完全落地。也就是能够让这些理念在幼儿园保教人员指尖上操作和实现。其纲领性文件包括《幼儿园工作规程》(简称《规程》),《幼儿园教育指导纲要》(简称《纲要》),《3-6岁儿童学习与发展指南》(简称《指南》)。这三部纲领中的教育理念不仅仅是确定《一日流程》全部内容的基本依据,而且也自始至终地指导了《一日流程》内容在一线进行实验的整个过程。因此,在其实质上,《一日流程》本身就是将国家三大教育理念——“寓教于生活”、“以游戏为基本活动”以及“以儿童为本”所支撑的教育过程进行分解和物化。", + note: + "《幼儿园(3-6)标准化一日流程》(下称《一日流程》)的基本目的,就是要将国家教育纲领性文件中所主张的幼儿园教育理念完全落地。也就是能够让这些理念在幼儿园保教人员指尖上操作和实现。其纲领性文件包括《幼儿园工作规程》(简称《规程》),《幼儿园教育指导纲要》(简称《纲要》),《3-6岁儿童学习与发展指南》(简称《指南》)。这三部纲领中的教育理念不仅仅是确定《一日流程》全部内容的基本依据,而且也自始至终地指导了《一日流程》内容在一线进行实验的整个过程。因此,在其实质上,《一日流程》本身就是将国家三大教育理念——“寓教于生活”、“以游戏为基本活动”以及“以儿童为本”所支撑的教育过程进行分解和物化。", // 根据一日流程id查到的名下任务列表 dayflowtaskList: [], // 根据任务查询到名下标准 @@ -212,4 +214,14 @@ export default { .pad-left { padding-left: 15px; } + +// 禁止复制 +div { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} \ No newline at end of file diff --git a/ruoyi-ui/src/views/benyi/themestudy/index.vue b/ruoyi-ui/src/views/benyi/themestudy/index.vue new file mode 100644 index 000000000..d36f67c80 --- /dev/null +++ b/ruoyi-ui/src/views/benyi/themestudy/index.vue @@ -0,0 +1,268 @@ + + + + \ No newline at end of file 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 2970e7be0..676ffa5a4 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 @@ -5,6 +5,7 @@ import java.util.List; import java.util.stream.Collectors; import com.fasterxml.jackson.annotation.JsonInclude; import com.ruoyi.project.benyi.domain.ByDayFlowDetail; +import com.ruoyi.project.benyi.domain.ByTheme; import com.ruoyi.project.system.domain.SysDept; import com.ruoyi.project.system.domain.SysMenu; @@ -50,6 +51,14 @@ public class TreeSelect implements Serializable this.children = byDayFlowDetail.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); } + //下拉树构造器 + public TreeSelect(ByTheme bytheme) { + + this.id = bytheme.getId(); + this.label = bytheme.getName(); + this.children = bytheme.getChildren().stream().map(TreeSelect::new).collect(Collectors.toList()); + } + public Long getId() { return id; diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByThemeController.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByThemeController.java index 517f02944..931f55df1 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByThemeController.java +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/controller/ByThemeController.java @@ -44,6 +44,15 @@ public class ByThemeController extends BaseController { return getDataTable(list); } + /** + * 获取部门下拉树列表 + */ + @GetMapping("/treeselect") + public AjaxResult treeselect(ByTheme byTheme) { + List byThemeDetails = byThemeService.selectByThemeListTree(byTheme); + return AjaxResult.success(byThemeService.buildThemeTreeSelect(byThemeDetails)); + } + /** * 导出主题整合列表 */ diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByTheme.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByTheme.java index e7a8ff433..a2ff1b87e 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByTheme.java +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/domain/ByTheme.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_theme * @@ -43,6 +46,12 @@ public class ByTheme extends BaseEntity { @Excel(name = "适用班级") private String classid; + /** 树状父类ID */ + private Long parentId; + + /** 树状子类 */ + private List children = new ArrayList(); + /** * 序号 */ @@ -97,6 +106,22 @@ public class ByTheme extends BaseEntity { return sort; } + public Long getParentId() { + return parentId; + } + + public void setParentId(Long parentId) { + this.parentId = parentId; + } + + public List getChildren() { + return children; + } + + public void setChildren(List children) { + this.children = children; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) @@ -107,6 +132,7 @@ public class ByTheme extends BaseEntity { .append("classid", getClassid()) .append("sort", getSort()) .append("createTime", getCreateTime()) + .append("parentid", getParentId()) .toString(); } } diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/ByThemeMapper.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/ByThemeMapper.java index 7892c75ed..f79ceda14 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/ByThemeMapper.java +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/mapper/ByThemeMapper.java @@ -27,6 +27,14 @@ public interface ByThemeMapper { */ public List selectByThemeList(ByTheme byTheme); + /** + * 查询一日流程树 + * + * @param byTheme 一日流程 + * @return 一日流程树集合 + */ + public List selectByThemeListTree(ByTheme byTheme); + /** * 新增主题整合 * diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByThemeService.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByThemeService.java index f8509ee27..abe16dc95 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByThemeService.java +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/IByThemeService.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.ByTheme; /** @@ -27,6 +28,30 @@ public interface IByThemeService { */ public List selectByThemeList(ByTheme byTheme); + /** + * 查询一日流程列表树 + * + * @param byTheme 一日流程 + * @return 一日流程树集合 + */ + public List selectByThemeListTree(ByTheme byTheme); + + /** + * 构建前端所需要树结构 + * + * @param byThemes 部门列表 + * @return 树结构列表 + */ + public List buildThemeDetailTree(List byThemes); + + /** + * 构建前端所需要下拉树结构 + * + * @param byThemes 部门列表 + * @return 下拉树结构列表 + */ + public List buildThemeTreeSelect(List byThemes); + /** * 新增主题整合 * diff --git a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByThemeServiceImpl.java b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByThemeServiceImpl.java index fa5b42613..4851bc498 100644 --- a/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByThemeServiceImpl.java +++ b/ruoyi/src/main/java/com/ruoyi/project/benyi/service/impl/ByThemeServiceImpl.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.ByThemeMapper; @@ -42,6 +47,100 @@ public class ByThemeServiceImpl implements IByThemeService { return byThemeMapper.selectByThemeList(byTheme); } + /** + * 查询一日流程列表树 + * + * @param byTheme 一日流程 + * @return 一日流程树集合 + */ + @Override + public List selectByThemeListTree(ByTheme byTheme) { + return byThemeMapper.selectByThemeListTree(byTheme); + } + + /** + * 构建前端所需要树结构 + * + * @param byThemes 部门列表 + * @return 树结构列表 + */ + @Override + public List buildThemeDetailTree(List byThemes) { + //System.out.println("start---"); + List returnList = new ArrayList(); + List tempList = new ArrayList(); + for (ByTheme item : byThemes) { + tempList.add(item.getId()); + } + for (Iterator iterator = byThemes.iterator(); iterator.hasNext(); ) { + ByTheme item = (ByTheme) iterator.next(); + //System.out.println("test==="+!tempList.contains(byDayFlowDetail.getParentId())); + // 如果是顶级节点, 遍历该父节点的所有子节点 + if (!tempList.contains(item.getParentId())) { + recursionFn(byThemes, item); + returnList.add(item); + } + } + if (returnList.isEmpty()) { + returnList = byThemes; + } + return returnList; + } + + /** + * 构建前端所需要下拉树结构 + * + * @param byThemes 部门列表 + * @return 下拉树结构列表 + */ + @Override + public List buildThemeTreeSelect(List byThemes) { + List byThemeTrees = buildThemeDetailTree(byThemes); + return byThemeTrees.stream().map(TreeSelect::new).collect(Collectors.toList()); + } + + /** + * 递归列表 + */ + private void recursionFn(List list, ByTheme t) { + // 得到子节点列表 + List childList = getChildList(list, t); + t.setChildren(childList); + for (ByTheme tChild : childList) { + if (hasChild(list, tChild)) { + // 判断是否有子节点 + Iterator it = childList.iterator(); + while (it.hasNext()) { + ByTheme n = (ByTheme) it.next(); + recursionFn(list, n); + } + } + } + } + + /** + * 得到子节点列表 + */ + private List getChildList(List list, ByTheme t) { + List tlist = new ArrayList(); + Iterator it = list.iterator(); + while (it.hasNext()) { + ByTheme n = (ByTheme) it.next(); + if (StringUtils.isNotNull(n.getParentId()) && n.getParentId().longValue() == t.getId().longValue()) { + //System.out.println("parentid="+n.getParentId().longValue()+"---"+t.getId().longValue()); + tlist.add(n); + } + } + return tlist; + } + + /** + * 判断是否有子节点 + */ + private boolean hasChild(List list, ByTheme t) { + return getChildList(list, t).size() > 0 ? true : false; + } + /** * 新增主题整合 * diff --git a/ruoyi/src/main/resources/mybatis/benyi/ByThemeMapper.xml b/ruoyi/src/main/resources/mybatis/benyi/ByThemeMapper.xml index afad49b88..6328c1b19 100644 --- a/ruoyi/src/main/resources/mybatis/benyi/ByThemeMapper.xml +++ b/ruoyi/src/main/resources/mybatis/benyi/ByThemeMapper.xml @@ -10,6 +10,7 @@ + @@ -18,13 +19,31 @@ select id, name, content, communicate, classid, sort, create_time from by_theme + + select dict_value+9999 id, 0 parent_id,dict_label name,dict_sort sort from sys_dict_data where dict_type='sys_yebjlx' and dict_label !='托班(2-3岁)' + union all + select id, classid+9999, name, sort from by_theme + order by sort + + + +