前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >uniapp无限树形结构

uniapp无限树形结构

作者头像
阿超
发布2022-08-17 21:46:16
5.7K0
发布2022-08-17 21:46:16
举报
文章被收录于专栏:快乐阿超快乐阿超

性格左右命运,气度影响格局。——余世雅博士

件地址:https://ext.dcloud.net.cn/plugin?id=5718

作者: luyj

介绍:

无限极树形结构。支持搜索、面包屑导航、单项选择、多项选择。

代码块 luyj-tree 内包含luyj-tree-searchluyj-tree-navigationluyj-tree-item

说明

  • 本插件是基于xiaolu-tree进行了uni_modules模块化。并进行了一些修改。
  • 本人暂时只在微信小程序端和H5 使用Chrome浏览器测试。更改了一些内容,有可能会有一些错误 或说明与实际不一致,介意者慎用。本人会适当的抽出业余时间,把它完善,毕竟有一定的下载量了,而且自己也需要学习,再次感谢原作者。
  • 暂时,使用自定义插件渲染有问题,会出现duplication is found under a single shadow root. The first one was accepted ,还未找到解决方案。

安装方式

本组件符合easycom规范,HBuilderX 2.5.5起,只需将本组件导入项目,在页面template中即可直接使用,无需在页面中import和注册components

基本用法

template 中使用组件

代码语言:javascript
复制
复制代码<!-- 基础用法 -->
<luyj-tree v-slot:default="{item}" :max="max" :trees="tree">
    <!-- 内容插槽 -->
    <view>
        <view class="content-item">
            <view class="word">{{item.name}}</view>
        </view>
    </view>
</luyj-tree>
复制代码import dataList from '@/common/data.js'; // 引用数据
export default {
    data() {
        return {
            tree: dataList,
            max: 5,
        }
    },
}

功能说明

  1. 树形结构展示。
  2. 包含搜索框。能够自定义搜索框的样式,能够直接搜索树形图、子文件的内容。
  3. 包含面包屑导航。
  4. 可以仅仅展示或选择树形的项内容。
  5. 可以显示选择改变,或确认选择的方法。
  6. 只需传checkList字段就可以回显默认选中。
  7. 支持自定义显示内容的插件(slot)。
  8. 支持懒加载。

luyj-tree-search 说明 luyj-tree-searchluyj-tree内的组件,作为搜索框,可以单独引用。

Image text
Image text

基本用法

template 中使用组件

代码语言:javascript
复制
<luyj-tree-search></luyj-tree-search>

属性

luyj-tree-navigation

luyj-tree-navigationluyj-tree内的组件,作为面包屑导航栏,可以单独引用。

luyj-tree-item

luyj-tree-itemluyj-tree内的组件,是树的选择项。包含单选、多选的样式,可以单独引用。

基础用法

template中使用组件

代码语言:javascript
复制
复制代码<!-- 普通使用 -->               
<luyj-tree-item :item="item" :isCheck="ischecked" :multiple="multiple" :checked="ischecked" :comparison="comparison" @change="change" @clickItem="clickItem">
</luyj-tree-item>
<!-- 使用插件 -->
<luyj-tree-item :item="item" :isCheck="isCheck" :multiple="multiple" :checked="ischecked" :comparison="comparison" @change="change" @clickItem="clickItem">
    <!-- 自定义插件内容 -->
    <template slot="body" >
        {{ item.label }} 
    </template>
    <!-- 自定义插件内容 -->
</luyj-tree-item>

对应的数据及方法如下:

代码语言:javascript
复制
复制代码import  dataItem from '../../common/item-data.js';
export default {
    data() {
        return {
            item : dataItem,        // 当前item值
            isCheck : true,         // 是否可选
            ischecked : true,       // 是否选中
            multiple : false,       // 是否多选
            comparison :{
                value : 'value',            // 选中值
                label : 'label',            // 显示名称
                children:'children',        // 子级名称
            },
            test :124
        }
    },
    onLoad:function(){
    },
    methods: {
        // 修改change
        change : function(e , item){
            console.log("修改当前值=>" ,e , item);
        },
        // 点击当前项目
        clickItem : function(item , hasChildren){
            console.log("点击当前项目");
        }
    }
}

代码csdn地址 代码github地址

选了好几个,看着这个还不错,试着在项目中用了一下,确实可以,源码逻辑也很容易看懂

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-11-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 说明
    • 安装方式
      • 基本用法
        • 功能说明
          • 基本用法
            • 属性
            • luyj-tree-navigation
            • luyj-tree-item
              • 基础用法
              相关产品与服务
              云开发 CloudBase
              云开发(Tencent CloudBase,TCB)是腾讯云提供的云原生一体化开发环境和工具平台,为200万+企业和开发者提供高可用、自动弹性扩缩的后端云服务,可用于云端一体化开发多种端应用(小程序、公众号、Web 应用等),避免了应用开发过程中繁琐的服务器搭建及运维,开发者可以专注于业务逻辑的实现,开发门槛更低,效率更高。
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档