垂直樹形控件, 使用TypeScript編寫, 可用作部門組織架構(gòu)樹, 任務(wù)分發(fā)樹展示...

UNTree

介紹

垂直樹形控件, 使用TypeScript編寫, 可用作部門組織架構(gòu)樹, 任務(wù)分發(fā)樹展示等等, 可以傳入 json數(shù)組 或 已經(jīng)轉(zhuǎn)化后的json樹,支持垂直方向和水平方向(代碼可能不優(yōu),才看了TypeScript入門文檔)

預(yù)覽

垂直
水平

預(yù)覽地址:https://zhuzhaofeng.gitee.io/untree/

GitHub
Gitee

使用

引入dist/un-tree.min.js

<script src="./un-tree.min.js" type="text/javascript" charset="utf-8"></script>

初始化樹

let tree = new UNTree(options);
tree.render();

options 解釋

參數(shù) 說明 默認(rèn)值 可選值
el 加載元素
jsonArr 數(shù)據(jù) []
selfIdField 每條數(shù)據(jù)的主鍵字段 id
parentIdField 每條數(shù)據(jù)的父級字段 parent
parentld 第一級數(shù)據(jù)的父級id ""
text 需要顯示的字段 text
mode(新增) 顯示方向 vertical vertical | horizontal
type 數(shù)據(jù)類型 list list | tree
viewClass 自定義整體視圖class
itemClass 自定義單獨項class
click 單擊事件(返回三個參數(shù)itemId, itemData, itemNode)

示例

  • 加載json數(shù)組
<div id="un-tree--wrapper"></div>

JSON Array 數(shù)據(jù)

  let listData = [
    {
      id: "99d78438-1f14-4552-ba77-039bff75e4bc",
      text: "公司董事會",
      parent: "root",
    },
    {
      id: "d2eb4680-4cee-4549-8a0f-171fd9888f4b",
      text: "總經(jīng)理",
      parent: "99d78438-1f14-4552-ba77-039bff75e4bc",
    },
    {
      id: "18c9f830-e699-4fe1-b79c-71a6b34b7e8f",
      text: "副總經(jīng)理1",
      parent: "d2eb4680-4cee-4549-8a0f-171fd9888f4b",
    },
    {
      id: "b05991b4-8944-4dd8-92c4-ffd7848e7112",
      text: "副總經(jīng)理2",
      parent: "d2eb4680-4cee-4549-8a0f-171fd9888f4b",
    },
    {
      id: "f135c05b-ffde-4d82-895f-a6daf052c178",
      text: "副總經(jīng)理3",
      parent: "d2eb4680-4cee-4549-8a0f-171fd9888f4b",
    },
    {
      id: "234e9d2e-676b-4601-9820-e9b064761ff4",
      text: "技術(shù)總監(jiān)",
      parent: "d2eb4680-4cee-4549-8a0f-171fd9888f4b",
    },
    {
      id: "7937421a-ee31-4988-934d-7e6469f0f37f",
      text: "數(shù)據(jù)中心",
      parent: "18c9f830-e699-4fe1-b79c-71a6b34b7e8f",
    },
    {
      id: "11c1b052-89f8-4873-a876-6de6130385e5",
      text: "測量中心",
      parent: "18c9f830-e699-4fe1-b79c-71a6b34b7e8f",
    },
    {
      id: "e9c44ca7-5302-4ae7-836a-2adc93e0f5d4",
      text: "財務(wù)部",
      parent: "b05991b4-8944-4dd8-92c4-ffd7848e7112",
    },
    {
      id: "e9c44ca7-5302-4ae7-836a-2adc93e0f5d4",
      text: "辦公室",
      parent: "b05991b4-8944-4dd8-92c4-ffd7848e7112",
    },
    {
      id: "bc407b45-56ef-4bdc-ab31-325d4cad5243",
      text: "項目部",
      parent: "f135c05b-ffde-4d82-895f-a6daf052c178",
    },
    {
      id: "71fc1ee3-5f31-49a8-8cdc-086c92bff785",
      text: "評估一部",
      parent: "f135c05b-ffde-4d82-895f-a6daf052c178",
    },
    {
      id: "9a0214ba-4afc-43ce-9851-fbc79dd48f25",
      text: "技術(shù)部",
      parent: "234e9d2e-676b-4601-9820-e9b064761ff4",
    },
    {
      id: "71fc1ee3-5f31-49a8-8cdc-086c92bff785",
      text: "評估二部",
      parent: "234e9d2e-676b-4601-9820-e9b064761ff4",
    },
  ];

function handleClick(itemId, itemData, itemNode) {
    console.log(itemId);
    console.log(itemData);
    console.log(itemNode);
}
let el = document.getElementById("un-tree--wrapper");
let tree = new UNTree({
    el: el,
    jsonArr: listData,
    parentld: "root",
    type: "list",
    viewClass: "view-demo",
    itemClass: "item-demo",
    click: handleClick,
});
tree.render();
  • 加載轉(zhuǎn)化后的json樹
<div id="un-tree--wrapper2"></div>

JSON Tree 數(shù)據(jù)

let treeData = [
  {
    id: "99d78438-1f14-4552-ba77-039bff75e4bc",
    text: "公司董事會",
    parent: "root",
    children: [
      {
        id: "d2eb4680-4cee-4549-8a0f-171fd9888f4b",
        text: "總經(jīng)理",
        parent: "99d78438-1f14-4552-ba77-039bff75e4bc",
        children: [
          {
            id: "18c9f830-e699-4fe1-b79c-71a6b34b7e8f",
            text: "副總經(jīng)理1",
            parent: "d2eb4680-4cee-4549-8a0f-171fd9888f4b",
            children: [
              {
                id:
                "7937421a-ee31-4988-934d-7e6469f0f37f",
                text: "數(shù)據(jù)中心",
                parent:
                "18c9f830-e699-4fe1-b79c-71a6b34b7e8f",
              },
              {
                id:
                "11c1b052-89f8-4873-a876-6de6130385e5",
                text: "測量中心",
                parent:
                "18c9f830-e699-4fe1-b79c-71a6b34b7e8f",
              },
            ],
          },
          {
            id: "b05991b4-8944-4dd8-92c4-ffd7848e7112",
            text: "副總經(jīng)理2",
            parent: "d2eb4680-4cee-4549-8a0f-171fd9888f4b",
            children: [
              {
                id:
                "e9c44ca7-5302-4ae7-836a-2adc93e0f5d4",
                text: "財務(wù)部",
                parent:
                "b05991b4-8944-4dd8-92c4-ffd7848e7112",
              },
              {
                id:
                "e9c44ca7-5302-4ae7-836a-2adc93e0f5d4",
                text: "辦公室",
                parent:
                "b05991b4-8944-4dd8-92c4-ffd7848e7112",
              },
            ],
          },
          {
            id: "f135c05b-ffde-4d82-895f-a6daf052c178",
            text: "副總經(jīng)理3",
            parent: "d2eb4680-4cee-4549-8a0f-171fd9888f4b",
            children: [
              {
                id:
                "bc407b45-56ef-4bdc-ab31-325d4cad5243",
                text: "項目部",
                parent:
                "f135c05b-ffde-4d82-895f-a6daf052c178",
              },
              {
                id:
                "71fc1ee3-5f31-49a8-8cdc-086c92bff785",
                text: "評估一部",
                parent:
                "f135c05b-ffde-4d82-895f-a6daf052c178",
              },
            ],
          },
          {
            id: "234e9d2e-676b-4601-9820-e9b064761ff4",
            text: "技術(shù)總監(jiān)",
            parent: "d2eb4680-4cee-4549-8a0f-171fd9888f4b",
            children: [
              {
                id:
                "9a0214ba-4afc-43ce-9851-fbc79dd48f25",
                text: "技術(shù)部",
                parent:
                "234e9d2e-676b-4601-9820-e9b064761ff4",
              },
              {
                id:
                "71fc1ee3-5f31-49a8-8cdc-086c92bff785",
                text: "評估二部",
                parent:
                "234e9d2e-676b-4601-9820-e9b064761ff4",
              },
            ],
          },
        ],
      },
    ],
  },
];

function handleClick(itemId, itemData, itemNode) {
  console.log(itemId);
  console.log(itemData);
  console.log(itemNode);
}
let el2 = document.getElementById("un-tree--wrapper2");
let tree2 = new UNTree({
  el: el2,
  jsonArr: treeData,
  parentld: "root",
  type: "tree",
  viewClass: "view-demo",
  itemClass: "item-demo",
  click: handleClick,
});
tree2.render();
  • 改變方向為"水平",

只需要 改變參數(shù) mode 的值為 horizontal 即可

let tree2 = new UNTree({
    el: el2,
    jsonArr: treeData,
    parentld: "root",
    mode: "horizontal"
    type: "tree",
    viewClass: "view-demo",
    itemClass: "item-demo",
    click: handleClick,
});
tree2.render();
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末谤专,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子孤澎,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,204評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件腌乡,死亡現(xiàn)場離奇詭異盛龄,居然都是意外死亡,警方通過查閱死者的電腦和手機序调,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,091評論 3 395
  • 文/潘曉璐 我一進店門醉锅,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人发绢,你說我怎么就攤上這事硬耍。” “怎么了边酒?”我有些...
    開封第一講書人閱讀 164,548評論 0 354
  • 文/不壞的土叔 我叫張陵经柴,是天一觀的道長。 經(jīng)常有香客問我墩朦,道長口锭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,657評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮鹃操,結(jié)果婚禮上韭寸,老公的妹妹穿的比我還像新娘。我一直安慰自己荆隘,他們只是感情好恩伺,可當(dāng)我...
    茶點故事閱讀 67,689評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著椰拒,像睡著了一般晶渠。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上燃观,一...
    開封第一講書人閱讀 51,554評論 1 305
  • 那天褒脯,我揣著相機與錄音,去河邊找鬼缆毁。 笑死番川,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的脊框。 我是一名探鬼主播颁督,決...
    沈念sama閱讀 40,302評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼浇雹!你這毒婦竟也來了沉御?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,216評論 0 276
  • 序言:老撾萬榮一對情侶失蹤昭灵,失蹤者是張志新(化名)和其女友劉穎吠裆,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體烂完,經(jīng)...
    沈念sama閱讀 45,661評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡试疙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,851評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了窜护。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,977評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡非春,死狀恐怖柱徙,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情奇昙,我是刑警寧澤护侮,帶...
    沈念sama閱讀 35,697評論 5 347
  • 正文 年R本政府宣布,位于F島的核電站储耐,受9級特大地震影響羊初,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,306評論 3 330
  • 文/蒙蒙 一长赞、第九天 我趴在偏房一處隱蔽的房頂上張望晦攒。 院中可真熱鬧,春花似錦得哆、人聲如沸脯颜。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,898評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽栋操。三九已至,卻和暖如春饱亮,著一層夾襖步出監(jiān)牢的瞬間矾芙,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,019評論 1 270
  • 我被黑心中介騙來泰國打工近上, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留剔宪,地道東北人。 一個月前我還...
    沈念sama閱讀 48,138評論 3 370
  • 正文 我出身青樓戈锻,卻偏偏與公主長得像歼跟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子格遭,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,927評論 2 355