From 681fb3fdb01ccfe874f92afecb96dbc9018aa82d Mon Sep 17 00:00:00 2001 From: username <1532322479@qq.com> Date: Thu, 10 Apr 2025 20:38:45 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E4=BF=AE=E6=94=B9=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E7=9B=B8=E5=85=B3=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/CtGalleryCataController.java | 38 +- .../java/com/bs/ct/domain/CtGalleryCata.java | 5 +- bs-ui/src/views/gallery/cata/index.vue | 522 ++++++++++-------- 3 files changed, 332 insertions(+), 233 deletions(-) diff --git a/bs-admin/src/main/java/com/bs/ct/controller/CtGalleryCataController.java b/bs-admin/src/main/java/com/bs/ct/controller/CtGalleryCataController.java index 061dbbe..07e7564 100644 --- a/bs-admin/src/main/java/com/bs/ct/controller/CtGalleryCataController.java +++ b/bs-admin/src/main/java/com/bs/ct/controller/CtGalleryCataController.java @@ -1,6 +1,9 @@ package com.bs.ct.controller; +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; +import java.util.Map; import javax.servlet.http.HttpServletResponse; import io.swagger.annotations.Api; @@ -50,7 +53,9 @@ public class CtGalleryCataController extends BaseController { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper(); condition(queryWrapper,ctGalleryCata); List list = ctGalleryCataService.list(queryWrapper); - return getDataTable(list); + List ctGalleryCatas = buildTree(list); + + return getDataTable(ctGalleryCatas); } /** @@ -62,7 +67,36 @@ public class CtGalleryCataController extends BaseController { LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper(); condition(queryWrapper,ctGalleryCata); List list = ctGalleryCataService.list(queryWrapper); - return success(list); + List ctGalleryCatas = buildTree(list); + return success(ctGalleryCatas); + } + + public List buildTree(List list) { + Map map = new HashMap<>(); + List tree = new ArrayList<>(); + // 先将所有节点放入 map 中 + for (CtGalleryCata node : list) { + map.put(node.getId(), node); + } + // 构建树结构 + for (CtGalleryCata node : list) { + Long parentId = node.getParentId(); + if (parentId == null ||!map.containsKey(parentId)) { + tree.add(node); + } else { + CtGalleryCata parent = map.get(parentId); + // 假设 CtGalleryCata 类中有一个 children 属性来存储子节点 + // 你需要在 CtGalleryCata 类中添加相应的属性和方法 + // 这里简单模拟添加子节点 + List children = parent.getChildren(); + if (children == null) { + children = new ArrayList<>(); + parent.setChildren(children); + } + children.add(node); + } + } + return tree; } /** diff --git a/bs-admin/src/main/java/com/bs/ct/domain/CtGalleryCata.java b/bs-admin/src/main/java/com/bs/ct/domain/CtGalleryCata.java index 4552299..becf75d 100644 --- a/bs-admin/src/main/java/com/bs/ct/domain/CtGalleryCata.java +++ b/bs-admin/src/main/java/com/bs/ct/domain/CtGalleryCata.java @@ -11,6 +11,8 @@ import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; +import java.util.List; + /** * 图库目录对象 ct_gallery_cata * @@ -54,6 +56,7 @@ public class CtGalleryCata extends BaseEntity{ private String remarks; - + @TableField(exist = false) + private List children; } diff --git a/bs-ui/src/views/gallery/cata/index.vue b/bs-ui/src/views/gallery/cata/index.vue index fd5e53e..5ac1c8b 100644 --- a/bs-ui/src/views/gallery/cata/index.vue +++ b/bs-ui/src/views/gallery/cata/index.vue @@ -1,28 +1,40 @@