更新记录

0.1.0(2023-03-31) 下载此版本

2023-03-31 树形组件的封装


平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
app-vue app-nvue
钉钉小程序 快手小程序 飞书小程序 京东小程序
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

树形层级选择器

简介

在做uniapp移动端项目的时候,由于没有找到合适的移动端树形组件,所以自己动手封装了一个树组件。

  • 每个节点都可以选中或取消选中,父级节点选中,下级的所有节点都要全部选中;
  • 当下级节点部分选中时,父级节点处于半选状态;
  • 当下级节点不选中时,父级节点处于取消选中行状态;
  • 可展开或折叠,父级节点收起时,下级所有节点隐藏;

    使用方法

    script 中引入组件

        import WsTree, { useWsTree }  from "@/components/ws-tree"
        export default {
            components: {
            WsTree
            },
        setup(){
            const [register, { getCheckedKeys,  getExpandedKeys,  getIndeterminateKeys }] = useWsTree();
            return {
                register
            }
        }

    template 中使用组件

    
       <ws-tree
                  :data="data"
              childrenField= 'children'
              labelField='label' 
              keyField='id'
                  checkable
                  v-model:checked-keys="checkedKeys"
                  @register="register"
                ></ws-tree>
### 属性
|属性名|类型|默认值|说明|
|:-|:-:|:--:|:-|
|data|Array|[]|treeNodes 数据,key 在整个树范围内唯一|
|keyField|String|key|指定 Object 中 key 的值作为节点数据id|
|labelField|String|label|指定 Object 中 key 的值作为节点显示内容|
|childrenField|String|children|指定 Object 中 key 的值作为节点子集|
|checkable|Boolean|false|是否开启多选|
|defaultExpandAll|Boolean|false|默认是否展开所有树节点|
|indent|Number|40|缩进,单位是rpx,默认40rpx|
|checkboxPlacement|String|left|多选框的位置,可选值是left、right|
|checkedKeys|Array|[]|选中的keys|
|expandedKeys|Array|[]|展开的keys|

###  数据格式
注意:id、name、children可通过keyField、labelField、childrenField来配置,keyField字段在整棵树里是唯一的
``` json
[
    {
        id: 1,
        name: '公司1',
        children: [{
            id: 11,
            name: '研发部',
            children: [{
                id: 111,
                name: '张三',
               
            },{
                id: 112,
                name: '李四',
               
            }]
        },{
            id: 12,
            name: '综合部',
           
        } ]
    },
    {
        id: 2,
        name: '公司2',
        children: [{
            id: 21,
            name: '研发部',
           
        },{
            id: 22,
            name: '综合部',
           
        },{
            id: 23,
            name: '财务部',
           
        }, ]
    },
    {
        id: 3,
        name: '公司3'
    },
    {
        id: 4,
        name: '公司4',
        children: [{
            id: 41,
            name: '研发部',
           
        }]
    }
]

方法

方法名 说明
getCheckedKeys() 获取选中的节点的keys
getExpandedKeys() 获取展开的节点的keys
getIndeterminateKeys() 获取半选中的节点的keys

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

不包含

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问