以树-tree的形式返回数据

news/2024/7/10 2:08:43 标签: java, vue, tree

tree_0">以树-tree的形式返回数据

—后台

java">实体类:
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * @author Administrator
 */
@Data
@TableName("sys_org")
public class SysOrgEntity implements Serializable {
    private static final long serialVersionUID = 1L;

    /**
     * 组织id
     */
    @TableId
    private Long orgId;

    /**
     * 组织名称
     */
    private String name;

    /**
     * 组织父id
     */
    private Long parentId;

    /**
     * 父菜单名称
     */
    @TableField(exist=false)
    private String parentName;

    /**
     * 组织编号
     */
    private String orgNum;

    /**
     * 组织负责人
     */
    private String orgLeader;

    /**
     * 手机号
     */
    private String phone;

    /**
     * 创建人名称
     */
    private String createUser;

    /**
     * 修改人名称
     */
    private String updateUser;

    /**
     * 创建时间
     */
    private Date createTime;

    /**
     * 修改时间
     */
    private Date updateTime;

    /**
     * 组织备注
     */
    private String orgRemark;

    /**
     * ztree属性
     */
    @TableField(exist=false)
    private Boolean open;

    @TableField(exist=false)
    private List<?> list;
}

java">业务类
 /**
     * 获取树的组织
     * @return
     */
    List<SysOrgEntity> getTreeList();
java">业务层实现类
 @Override
    public List<SysOrgEntity> getTreeList() {
        List<SysOrgEntity> list = this.list();
        if (list == null || list.size() <= 0){
            return null;
        }
        LinkedList<SysOrgEntity> linkedList = new LinkedList<>();
        list.forEach(orgEntity -> {
            if (orgEntity.getParentId() == 0){
                linkedList.add(orgEntity);
            }
        });
        linkedList.forEach(orgEntity -> {
            orgEntity.setList(getChildren(orgEntity.getOrgId(),list));
        });
        return linkedList;
    }
 private List<SysOrgEntity> getChildren(Long parentId, List<SysOrgEntity> orgList){
        //孩子集合
        LinkedList<SysOrgEntity> linkedList = new LinkedList<>();
        orgList.forEach(orgEntity -> {
            if (parentId.equals(orgEntity.getParentId())){
                linkedList.add(orgEntity);
            }
        });
        // 递归退出条件
        if (linkedList.size() == 0){
            return null;
        }
        // 把子菜单的子菜单再递归循环一遍
        linkedList.forEach(orgEntity -> {
            orgEntity.setList(getChildren(orgEntity.getOrgId(),orgList));
        });
        return linkedList;
    }
javascript">前台---级联
  <el-form-item placeholder="学院名称">
        <el-cascader expand-trigger="hover" :options="options" :props="defaultParams" change-on-select v-model="selectedOptions"
          @change="handleMenu" ref="cascaderMenu" change-on-select :show-all-levels="false" clearable>
        </el-cascader>
  </el-form-item>
javascript">export default {
    data() {
      return {
        defaultParams: {
          label: 'name',
          value: 'orgId',
          children: 'list'
        },
        options: [],
        selectedOptions: [],
        selectedOrgId: ''
      }
    },
    handleMenu() {
        this.selectedOrgId = this.$refs['cascaderMenu'].currentValue
        console.log(this.selectedOrgId)
      },
      mounted: function() {
      // 调用方法获取所有数据
      this.getOrgList()
    },
    getOrgList() {
        this.$http({
          url: this.$http.adornUrl('/sys/org/tree'),
          method: 'get',
          params: this.$http.adornParams()
        }).then(({
          data
        }) => {
          this.options = data
        })
      }
treeSkill">

http://www.niftyadmin.cn/n/1302219.html

相关文章

springboot学习(五十六) springboot解决@Cacheable(redis)等注解不带生效时间的问题

文章目录前言一、Spring缓存注解介绍二、自定义缓存的失效时间1.配置文件内添加配置2.redis缓存配置类前言 spring boot中使用Redis作为缓存系统&#xff0c;如果使用Spring的注解使用缓存&#xff0c;默认是不带失效时间的&#xff0c;需要自己做处理。 一、Spring缓存注解介…

npm ERR! renren-fast-vue@1.2.2 build: `gulp`问题解决

转发链接&#xff1a;https://blog.csdn.net/zlbdmm/article/details/110069961

使用gradle将java项目推送至maven中央仓库

文章目录一、注册Sonatype账号申请创建项目二、等待Sonatype申请批复三、生成GPG四、配置gradle五、Sonatype将项目同步至Maven中央仓库一、注册Sonatype账号申请创建项目 到链接&#xff1a;https://issues.sonatype.org/注册一个账号。 创建点击顶部导航栏的 create 创建项目…

tomcat自启动的另外一种方式

1、tomcat自启动 1、WinR&#xff1a;输入shell:startup,直接会进入&#xff1a;启动的文件夹下![在这里插入图片描述](https://img-blog.csdnimg.cn/20210705162255817.jpg?x-oss-processimage/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ub…

springboot学习(五十七) springboot中使用Callable和DeferredResult异步处理请求

文章目录前言一、异步请求处理的使用场景二、Callable1.先定义一个ThreadPoolExecutor2.定义通用返回实体3.编写测试的Restful接口二、DeferredResult1.定义一个通用处理DeferredResult的工具类2.编写测试的Restful接口总结前言 Callable和DeferredResult可以用来进行异步请求…

vue 限制字体,多出的用‘...‘显示

vue 限制字体&#xff0c;多出的用’…显示 代码实现&#xff1a; 1、在table中 <el-table-column prop"questions" header-align"center" align"center" label"课堂问题"><template slot-scope"scope"><e…

springboot学习(五十八) springboot中使用SseEmitter推送消息

服务端常用推送技术有&#xff1a; 1、客户端轮询:ajax定时拉取 2、服务端主动推送:WebSocket。全双工的&#xff0c;本质上是一个额外的tcp连接&#xff0c;建立和关闭时握手使用http协议&#xff0c;其他数据传输不使用http协议&#xff0c;更加复杂一些&#xff0c;适用于需…

MyBatis-plus实现树形结构展示并分页

MyBatis-plus实现树形结构展示 一、无分页树形结构展示 实体类 import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data;import java.io…