uni-app-使用tkiTree组件实现树形结构选择

前言

  • 在实际开发中我们经常遇见树结构-比如楼层区域-组织架构-部门岗位-系统类型等情况

  • 往往需要把这个树结构当成条件来查询数据,在PC端可以使用Tree,table,Treeselect等组件展示

  • 在uni-app的内置组件中似乎没有提供这样组件来展示,但是是有第三方包tkiTree组件来解决这个问题

  • 我是基本使用,通过确认之后传递id和name形式来使用,据说深层次使用会有很多bug(需要自己尝试)

官网包地址:树形选择器增强版,支持多选、单选、父级选择,Picker形式 - DCloud 插件市场

细节

  • 该组件是没有提供v-model,通过确定事件获取到选择值,传递给input和form表单,回显如此

  • 该组件没有类似prop这样的配置选项,就说明我们树结构的形式必须是(id,name,children)

  • 该组件通过官网下载到HBuilder X之后会在components下,HBuilder X提示你需要把包放在分包里面

  • 该组件移动到page/common/下面(我用这种方式),HBuilder X也会提示相同报错-暂时没找到解决方法

代码实现

1.通过上面官网地址去到插件市场-点击下载插件并导入HBuilder X-会在components下出现(我挪到了page/common/下面)-- 下载插件需要HBuilder 账号密码登录

2.具体页面代码-注意包的引入位置

html 复制代码
<template>
    <view class="Treeform">
        选择城市: <uni-easyinput @focus="focusfloor" v-model="form.floorName" placeholder="选择城市"></uni-easyinput>
        <!-- 树形组件 -->
        <tki-tree ref="tkitree" :range="floorlist" :foldAll="foldAll" :multiple="multiple" :selectParent="selectParent"
            rangeKey="name" @confirm="treeConfirm" @cancel="treeCancel"></tki-tree>
    </view>
</template>
​
<script>
    import tkiTree from '@/pages/common/tki-tree/tki-tree.vue';
    export default {
        name: 'Tree',
        components: {
            tkiTree
        },
        data() {
            return {
                // 表单值
                form: {
                    // 城市id
                    floorID: null,
                    // 城市名称
                    floorName: null
                },
                // 树结构配置\
                // 是否默认展开上一次打开-默认不打开
                foldAll: true,
                // 是否多选-默认单选
                multiple: false,
                // 是否可以选择父级-默认不能
                selectParent: false,
                // 树形数据
                floorlist: [{
                    id: 1,
                    name: '中国',
                    children: [{
                            id: 2,
                            name: '广东',
                            children: [{
                                    id: 4,
                                    name: "惠州"
                                },
                                {
                                    id: 5,
                                    name: "仲恺"
                                },
                                {
                                    id: 6,
                                    name: '深圳'
                                }
                            ]
                        }, {
                            id: 3,
                            name: '湖北'
                        },
                        {
                            id: 8,
                            name: '福建'
                        }
                    ]
                }],
            };
        },
        methods: {
            // 输入款获取焦点事件
            focusfloor() {
                console.log('输入款获取焦点了');
                // 打开树形选择器
                this.$refs.tkitree._show();
            },
            // 确定回调事件
            treeConfirm(e) {
                console.log(e)
                // 必须选择
                if (e.length == 0) {
                    return console.log('请先选择楼层');
                }
                // 传递楼层id
                this.form.floorID = e[0].id
                // 传递楼层名称
                this.form.floorName = e[0].name
            },
            // 取消回调事件
            treeCancel(e) {
                console.log(e)
            },
        }
    }
</script>
​
<style lang="scss">
    .Treeform {
        display: flex;
        align-items: center;
    }
</style>

总结:


经过这一趟流程下来相信你也对 uni-app-使用tkiTree组件实现树形结构选择 有了初步的深刻印象,但在实际开发中我 们遇到的情况肯定是不一样的,所以我们要理解它的原理,万变不离其宗。加油,打工人!

什么不足的地方请大家指出谢谢 -- 風过无痕

相关推荐
Mintopia1 天前
Vue3 项目如何迁移到 uni-app x:从纯 Web 到多端应用的系统指南
uni-app
Mintopia1 天前
uni-app x 发展前景技术分析:跨端统一的新阶段?
uni-app
不爱说话郭德纲2 天前
告别漫长的HbuilderX云打包排队!uni-app x 安卓本地打包保姆级教程(附白屏、包体积过大排坑指南)
android·前端·uni-app
HashTang3 天前
【AI 编程实战】第 12 篇:从 0 到 1 的回顾 - 项目总结与 AI 协作心得
前端·uni-app·ai编程
JunjunZ3 天前
uniapp 文件预览:从文件流到多格式预览的完整实现
前端·uni-app
郑州光合科技余经理4 天前
代码展示:PHP搭建海外版外卖系统源码解析
java·开发语言·前端·后端·系统架构·uni-app·php
TT_Close4 天前
“啪啪啪”三下键盘,极速拉起你的 uni-app 项目!
vue.js·uni-app·前端工程化
特立独行的猫a4 天前
uni-app x跨平台开发实战:开发鸿蒙HarmonyOS影视票房榜组件完整实现过程
华为·uni-app·harmonyos·轮播图·uniapp-x
00后整顿职场4 天前
Hbuilderx APP真机无法识别iqoo Z9+手机设备解决方案
uni-app·uniapp真机调试·真机运行
前端小雪的博客.4 天前
【保姆级教程】uniAI 插件高效开发 uni-app 微信小程序(附实战案例)
微信小程序·uni-app·ai编程·uniai