開源一個vue2的tree組件


一直打算偷懶使用個現成的樹組件,但是在github上找了一大圈沒有找到真正滿足應用開發的樹組件,所以沒辦法只能自己寫了一個,開源出來希望可以幫助到需要的人,同時如果大家覺得好用,我可以順帶騙騙★(**希望喜歡的朋友對我體力輸出的肯定可以點下★ **),由於我也算剛接觸vue,所以難免有所考慮不周的地方,希望大家在issue里面指正。組件重點是父子組件數據的共享和狀態保持,我是利用了下vuex的思路,采用一個控制倉庫完成。

github 地址 vue-tree

How to run demo

npm install
npm run dev

效果圖

效果圖

示例

<template>
  <div style="width:300px;">
    <tree ref ='tree' :treeData="treeData" :options="options" @node-click='handleNode'/>
  </div>
</template>
<script>
import Tree from '../components/tree/tree.vue'
export default {
  name: 'test',
  data () {
    return {
      options: {
        showCheckbox: true,
        search: {
          useInitial: true,
          useEnglish: false,
          customFilter: null
        }
      },
      treeData: [
        {
          id: 1,
          label: '一級節點',
          open: true,
          checked: false,
          parentId: null,
          visible: true,
          searched: false,
          children: [
            {
              id: 2,
              label: '二級節點-1',
              checked: false,
              parentId: 1,
              searched: false,
              visible: true
            },
            {
              label: '二級節點-2',
              open: true,
              checked: false,
              id: 3,
              parentId: 1,
              visible: true,
              searched: false,
              children: [
                {
                  id: 4,
                  parentId: 3,
                  label: '三級節點-1',
                  visible: true,
                  searched: false,
                  checked: false
                },
                {
                  id: 5,
                  label: '三級節點-2',
                  parentId: 3,
                  searched: false,
                  visible: true,
                  checked: false
                }
              ]
            },
            {
              label: '二級節點-3',
              open: true,
              checked: false,
              id: 6,
              parentId: 1,
              visible: true,
              searched: false,
              children: [
                {
                  id: 7,
                  parentId: 6,
                  label: '三級節點-4',
                  checked: false,
                  searched: false,
                  visible: true
                },
                {
                  id: 8,
                  label: '三級節點-5',
                  parentId: 6,
                  checked: false,
                  searched: false,
                  visible: true
                }
              ]
            }
          ]
        }
      ]
    }
  },
  components: {Tree}
}
</script>

屬性

參數 說明 類型 可選值 默認值
options 配置項 Object
treeData 指定節點對象數組 Array[Object]
     options: {
        showCheckbox: true,  //是否支持多選
        search: {
          useInitial: true, //是否支持首字母搜索
          useEnglish: false, //是否是英文搜索
          customFilter: null // 自定義節點過濾函數
        }

    /* 節點元素 */
    {
      id: 1, //節點標志
      label: '一級節點', //節點名稱
      open: true, // 是否打開節點
      checked: false, //是否被選中
      parentId: null, //父級節點Id
      visible: true, //是否可見
      searched: false, //是否是搜索值
      children: [] //子節點
    }

方法

方法名 說明 參數
getSelectedNodeIds 若節點可被選擇則返回目前被選中的節點Id所組成的數組 被選中的節點Id所組成的數組
getSelectedNodes 若節點可被選擇則返回目前被選中的節點組成的數組 被選中的節點所組成的數組

事件

事件名稱 說明 回調參數
node-click 節點被點擊時的回調 共1個參數,節點組件本身。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM