[vue3] Tree/TreeSelect树形控件使用

这篇具有很好参考价值的文章主要介绍了[vue3] Tree/TreeSelect树形控件使用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

 ✨✨个人主页:沫洺的主页

📚📚系列专栏: 📖 JavaWeb专栏📖 JavaSE专栏 📖 Java基础专栏📖vue3专栏 

                           📖MyBatis专栏📖Spring专栏📖SpringMVC专栏📖SpringBoot专栏

                           📖Docker专栏📖Reids专栏📖MQ专栏📖SpringCloud专栏     

💖💖如果文章对你有所帮助请留下三连✨✨

🍨效果图

[vue3] Tree/TreeSelect树形控件使用

🍹核心代码实现

Element Plus: Tree Tree 树形控件

Element Plus: TreeSelect TreeSelect 树形选择

含有下拉菜单的树形选择器,结合了 el-tree 和 el-selectt 两个组件的功能。

<el-tree-select v-model="formData.parentId" :check-strictly="true" :data="categoryTreeData"
        :render-after-expand="false" :default-expand-all="true" />
  • data 展示数据
  • render-after-expand 属性是默认开启的,所选择的标签名可能不会及时更新显示,您可以把该属性设置为 false 来显示正确的名称
  • 当属性 check-strictly=true 时,任何节点都可以被选择,否则只有子节点可被选择
  • default-expand-all 是否默认展开所有节点

data的数据结构

const data = [
  {
    value: '1',
    label: 'Level one 1',
    children: [
      {
        value: '1-1',
        label: 'Level two 1-1',
        children: [
          {
            value: '1-1-1',
            label: 'Level three 1-1-1',
          },
        ],
      },
    ],
  },
  {
    value: '2',
    label: 'Level one 2',
    children: [
      {
        value: '2-1',
        label: 'Level two 2-1',
        children: [
          {
            value: '2-1-1',
            label: 'Level three 2-1-1',
          },
        ],
      },
      {
        value: '2-2',
        label: 'Level two 2-2',
        children: [
          {
            value: '2-2-1',
            label: 'Level three 2-2-1',
          },
        ],
      },
    ],
  },
]

这是一种父子关系的数据结构,所以在创建数据库时需要对应的关系结构如下

[vue3] Tree/TreeSelect树形控件使用

上面的value映射id,label映射name,children代表子类

后端接口

            <dependency>
                <groupId>cn.hutool</groupId>
                <artifactId>hutool-all</artifactId>
                <version>5.8.5</version>
            </dependency>

hutool工具: 树结构工具 中有个自定义字段名的方法

[vue3] Tree/TreeSelect树形控件使用

使用如下

@GetMapping("/tree")
    public  List<Tree<Integer>> select(){
        //这里用的MyBatis Plus
        List<CategoryDto> dtos = categoryService.select(new CategoryQueryDto());
        //配置
        TreeNodeConfig treeNodeConfig = new TreeNodeConfig();
        // 自定义属性名 都要默认值的
        treeNodeConfig.setWeightKey("seq");
        treeNodeConfig.setIdKey("id");
        // 最大递归深度
        treeNodeConfig.setDeep(2);
        //转换器
        List<Tree<Integer>> treeNodes = TreeUtil.build(dtos, 0, treeNodeConfig,
                (treeNode, tree) -> {
                    tree.setId(treeNode.getId());
                    tree.setParentId(treeNode.getParentId());
                    tree.setWeight(treeNode.getSeq());
                    tree.setName(treeNode.getName());
                    // 扩展属性 ...
                    tree.putExtra("value", treeNode.getId());
                    tree.putExtra("label", treeNode.getName());
                });
        return treeNodes;
    }

返回treeNodes格式如下

[vue3] Tree/TreeSelect树形控件使用

上面的id,seq,parentId,name,这些数据根据需求去考虑是否获取

关键的是扩展属性value,label这两必须要有,目的是与前端树data结构中的value,label照应

// 扩展属性 ...
tree.putExtra("value", treeNode.getId());
tree.putExtra("label", treeNode.getName());

前端调用接口给:data="categoryTreeData"赋值

const categoryTreeData = ref([{ value: 0, label: "全部一级类目" }])
const callCategoryTreeApi = () => {
  categoryApi.tree.call().then((res:any) => {
    // concat 合并数组
    categoryTreeData.value = categoryTreeData.value.concat(res)
  })
}

补充: v-model="formData.parentId"双向绑定父类ID(parentId),主要作用就是赋值和获取值文章来源地址https://www.toymoban.com/news/detail-477136.html

到了这里,关于[vue3] Tree/TreeSelect树形控件使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • ElementUI之Tree树形控件使用

    以下列出的属性、事件、方法,可使用Tree控件实现节点的拖拽功能(可实现修改顺序、更换父级节点功能)、点击节点勾选复选框、只点击箭头图标展开和收缩节点、父子节点不级联勾选、默认展开全部节点功能 参数 说明 类型 可选值 默认值 data 展示数据 array 是 无 props 配

    2024年02月11日
    浏览(30)
  • vue2+element-ui el-tree树形控件封装

    1.封装 根据官网配置项封装了下el-tree 方便维护和复用,有用的话点赞收藏叭~ 2.使用 如若要对不同的一级二级节点设置不同的样式可以参考这样:

    2024年02月12日
    浏览(37)
  • VUE2+Element-ui树形控件tree结构的值获取和传给后台

    最近做到了权限管理模块 其中的菜单权限需要用到tree结构进行多选功能的渲染操作 废话少说,直接上代码 将tree结构放在form中配合表单使用 并附带全选和全不选,展开和折叠功能 其中的show-checkbox作用是对tree数据的多选模式 要写在data中的数据 其中defaultProps一定不能忘记

    2024年02月05日
    浏览(43)
  • 78.(前端)分配权限页面显示——树形结构使用(Element-ui的Tree树形控件)

    在前端的操作中,应该增加修改、删除、分配权限的操作 这次主要是实现分配权限的显示!!!!!! 更换icon图标,并设计大小 绑定函数,点击弹出提示框(DIalog对话框) 在对话框内,应该显示一个树形结构提供选择(Tree树形控件) 初始化树形结构,并填充数据

    2024年02月05日
    浏览(36)
  • VUE element-ui之el-tree树形控件循环遍历渲染dom节点;子节点横向排列;控件添加指示线

    定义模板(做循环遍历处理): tree的参数说明请参考官方文档 el-tree 定义模板数据: js部分: 指示线样式部分: 实际效果:

    2024年02月11日
    浏览(52)
  • VUE3 + Elementui-Plus 之 树形组件el-tree 一键展开(收起);一键全选(不全选)

    实现步骤: tree组件部分: ts部分: 页面效果: 默认状态 展开状态 折叠状态 全选状态 全不选状态 注意:以上方法会展开或折叠所有节点;全选或全不选节点。 问题:数据量过大以上操作会有明显卡顿;有高效解决方法的朋友可以交流。

    2024年04月11日
    浏览(35)
  • [VUE]Element_UI 实现TreeSelect 树形选择器

    最近在做一个人员管理系统,在增改用户信息时,可能会设置用户所在的部门,因为部门是多级的,于是想到用Element_UI的TreeSelect组件实现 效果: 安装完成后,打开package.json 可以看到@riophae/vue-treeselect的版本: 在需要使用TreeSelect的组件中引入 并将Treeselect加到components中:

    2024年02月09日
    浏览(27)
  • elementUI Tree 树形控件单选实现

    在Element UI中,树形控件(el-tree)本身不支持单选功能。但是,你可以通过监听节点点击事件并手动更新选中状态来实现单选树。 以下是一个简单的例子,展示了如何实现单选功能: html相关: js方法: 义了一个currentNodeKey来存储当前选中节点的 key。每次点击节点时,我们首

    2024年03月25日
    浏览(41)
  • element-ui树形控件(tree)

    1.基础用法 通过:data绑定了数据源,通过:props绑定了属性绑定对象,其中label代表着我们看到的是哪个属性对应的值,children代表父子节点通过哪个属性实现嵌套的 2.为树形控件添加show-checkbox属性,可实现复选框效果。如果要求选中的是文本对应的id值,而不是文本值本身。可

    2024年02月13日
    浏览(47)
  • Element-UI定制化Tree 树形控件

    说明:复制Tree树形控件。 说明:每一个label前面都有一个定制图标 或者     说明: 将默认箭头形式变成加号形式。      

    2024年02月04日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包