zoukankan      html  css  js  c++  java
  • elementui Tree 树形控件

    数据表结构:

     后端代码:

    @RequestMapping(value = "/list", method = RequestMethod.POST)
        public Result findCategory(){
            List<Category> list = categoryService.findCategory();
            if (CollectionUtils.isEmpty(list)){
                return ResultUtil.error(404,"资源未找到到");
            }
    
            return ResultUtil.success(list);
        }
    public interface CategoryService {
    
        
        List<Category> findCategory();
    
    }
    @Service
    public class CategoryServiceImpl implements CategoryService {
        @Autowired
        private CategoryDao categoryDao;
    
        @Override
        public List<Category> findCategory() {
            return categoryDao.findAll();
        }
    
    
    }
    public interface CategoryDao extends JpaRepository<Category,Integer> , JpaSpecificationExecutor<Category> {
    
    }

    后台返回数据结构:

    前台代码:

    <template>
            <!--tree-->
            <el-tree
                    :props="defaultProps"
                    :data="data"
                    show-checkbox
                    node-key="id"
                    :default-expand-all="false"
                    :expand-on-click-node="false">
          <span class="custom-tree-node" slot-scope="{ node, data }">
            <span>{{ node.label }}</span>
            <span>
              <el-button
                      type="text"
                      size="mini"
                      @click="() => append(data)">
                增加
              </el-button>
              <el-button
                      type="text"
                      size="mini"
                      @click="() => remove(node, data)">
                删除
              </el-button>
                <el-button
                        type="text"
                        size="mini"
                        @click="() => edit(node, data)">
                编辑
              </el-button>
            </span>
          </span>
            </el-tree>
        </el-card>
    </template>
    
    <script>
        import {getCategoryList} from "../../api/item/category";
    
        export default {
            name: "Category",
            data() {
                return {
                    data: [],
                    defaultProps: {
                        label: 'name'
                    }
                }
            },
            created() {
                this.getlist();
    
            },
            methods: {
                getlist() {
                    getCategoryList().then(res => {
                        console.log(res)
                        this.data = this.arraytotree(res.data);
                        console.log(this.data)
                    }).catch(res => {
    
                    })
    
                },
                handleNodeClick(data) {
                    console.log(data);
                },
    
                //数组转化为树
                arraytotree(arr) {
                    var top = [], sub = [], tempObj = {};
    
                    arr.forEach(function (item) {
                        if (item.parentId === 0) { // 顶级分类
                            top.push(item)
                        } else {
                            sub.push(item) // 其他分类
                        }
                        item.children = []; // 默然添加children属性
                        tempObj[item.id] = item // 用当前分类的id做key,存储在tempObj中
                    })
    
                    sub.forEach(function (item) {
                        // 取父级
                        var parent = tempObj[item.parentId] || {'children': []}
                        // 把当前分类加入到父级的children中
                        parent.children.push(item)
                    })
    
                    return top
                },
    
                append(node,data) {
                    console.log("node")
                    console.log(node)
                    console.log("data")
                    console.log(data)
                },
    
                remove(node, data) {
                    console.log("node")
                    console.log(node)
                    console.log("data")
                    console.log(data)
                },
                edit(node,data){
                    console.log("node")
                    console.log(node)
                    console.log("data")
                    console.log(data)
                }
            }
        }
    </script>

    前台段展示:

  • 相关阅读:
    [转]顶点数据压缩
    [转]将某个Qt4项目升级到Qt5遇到的问题
    「05」回归的诱惑:一文读懂线性回归
    AI漫谈:我们距离实现《庆余年》里的五竹叔机器人还有多远?
    “木兰”去哪儿了?被全国700所中小学引入的国产编程语言“木兰”,为何在官网删除了下载链接
    有哪些让人相见恨晚的Python库(一)
    2019年最值得关注的AI领域技术突破及未来展望
    为什么样本方差的分母是n-1?为什么它又叫做无偏估计?
    「04」机器学习、深度学习需要哪些数学知识?
    「03」机器学习、深度学习该怎样入门?
  • 原文地址:https://www.cnblogs.com/yscec/p/12210824.html
Copyright © 2011-2022 走看看