摘要:當(dāng)前需求層級(jí)列表中選中某個(gè)元素則獲取最底層子集并用逗號(hào)連接數(shù)據(jù)形式遍歷方法可參考,寫的很詳細(xì)具體操作首先找到選擇元素的在樹形數(shù)據(jù)中的位置,并獲取他找尋相同的的元素找尋他的最底層子元素,也就是所有沒有子集的元素找當(dāng)前的子元素的
當(dāng)前需求:層級(jí)列表中選中某個(gè)元素,則獲取最底層子集id,并用逗號(hào)連接(1,2,3,4,5);
數(shù)據(jù)形式:let data = [{ id:"1", children:[{ id:"11", children:[{ id:"111", children:null }, { id:"112", children:null }, { id:"113", children:null }] }, { id:"12", children:[{ id:"121", children:null }, { id:"122", children:null }, { id:"123", children:null }] }] }];
遍歷方法可參考:https://blog.csdn.net/chaos_h...,寫的很詳細(xì)
具體操作:首先找到選擇元素的id在樹形數(shù)據(jù)中的位置,并獲取他
findSameId(tree, id) { let isGet = false; let retNode = null; function deepSearch(tree, id) { for (var i = 0; i < tree.length; i++) { if (tree[i].children && tree[i].children.length > 0) { deepSearch(tree[i].children, id); } if (id === tree[i].id || isGet) { isGet || (retNode = tree[i]); isGet = true; break; } } } deepSearch(tree, id); return retNode; };
找尋他的最底層子元素,也就是所有沒有子集的元素
找當(dāng)前id的子元素的idfindChildId(data) { console.log(data, 678); console.log(data.children, 678); if (data.children !== null) { for (let i = 0; i < data.children.length; i++) { console.log(data.children[i], i); const childrens = data.children[i]; if (childrens.hasOwnProperty("children") && childrens.children && childrens.children.length !== 0) { console.log("-------"); console.log(childrens, i); console.log("-------"); this.findChildId(childrens); } else { this.sideIds.push(childrens.id); } } } else { this.sideIds.push(data.id); } }
### 由于本身是vue下的處理 handleSelectDept是觸發(fā)點(diǎn)擊獲取到對(duì)應(yīng)id; this.sideIds是本身在data里里定義了的
data(){ return{ sideIds:[] } }觸發(fā)效果
handleSelectDept(key) { this.sideIds = [];//每次點(diǎn)擊需要把本身的sideIds清空 const dataId = this.findSameId(this.treeData, key); this.findChildId(dataId); console.log(this.sideIds, 9999) this.$set(this.queryForm, "depIds", this.sideIds.join(",")); console.log(this.queryForm, 989); this.getTableData(); }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/106719.html
摘要:此頁面是實(shí)現(xiàn)樹表格的關(guān)健頁面。這里就是關(guān)健點(diǎn),因?yàn)檫@個(gè)子組件是需要遞歸實(shí)現(xiàn),所以,需要?jiǎng)討B(tài)注冊到當(dāng)前組件中。補(bǔ)充一點(diǎn)不要只看部分,部分才是這個(gè)樹表格的關(guān)健所在。 基于vue.js實(shí)現(xiàn)樹形表格的封裝(vue-tree-table) 前言 由于公司產(chǎn)品(基于vue.js)需要,要實(shí)現(xiàn)一個(gè)樹形表格的功能,百度、google找了一通,并沒有發(fā)現(xiàn)很靠譜的,也不是很靈活。所以就用vue自己擼了一個(gè)...
摘要:調(diào)研最近公司有個(gè)需求,做一個(gè)可編輯的樹形組織圖。前言首先感謝的如果你想用的封裝,可以直接用我的項(xiàng)目功能格式導(dǎo)入導(dǎo)出樹形關(guān)系圖支持樹形關(guān)系圖導(dǎo)出圖片可拖拉樹形關(guān)系圖可編輯樹形關(guān)系圖預(yù)覽項(xiàng)目地址文檔地址 調(diào)研 最近公司有個(gè)需求,做一個(gè)可編輯的樹形組織圖。我第一個(gè)想到的是ECharts,可當(dāng)時(shí)并沒有(最近一個(gè)版本出了樹圖也不是組織圖);然后想到了AntV G6(上手難度有點(diǎn)大也不是組織圖);...
摘要:樹形菜單由于項(xiàng)目原因,沒有使用框架上的樹形菜單,所以自己動(dòng)手并參考大佬的代碼寫了一個(gè)樹形菜單的組件,話不多說,直接上代碼。 vue樹形菜單 由于項(xiàng)目原因,沒有使用ui框架上的樹形菜單,所以自己動(dòng)手并參考大佬的代碼寫了一個(gè)樹形菜單的組件,話不多說,直接上代碼。html代碼showImg(https://segmentfault.com/img/bV5Bq4?w=1015&h=269);j...
摘要:樹形菜單由于項(xiàng)目原因,沒有使用框架上的樹形菜單,所以自己動(dòng)手并參考大佬的代碼寫了一個(gè)樹形菜單的組件,話不多說,直接上代碼。 vue樹形菜單 由于項(xiàng)目原因,沒有使用ui框架上的樹形菜單,所以自己動(dòng)手并參考大佬的代碼寫了一個(gè)樹形菜單的組件,話不多說,直接上代碼。html代碼showImg(https://segmentfault.com/img/bV5Bq4?w=1015&h=269);j...
摘要:樹形控件數(shù)據(jù)格式組件最近做了第一個(gè)組內(nèi)可以使用的組件,雖然是最簡版,也廢了不少力。讓我來記錄這個(gè)樹形組件的編寫過程和期間用到的知識(shí)點(diǎn)。 vue+element tree(樹形控件數(shù)據(jù)格式)組件(1), 最近做了第一個(gè)組內(nèi)可以使用的組件,雖然是最簡版,也廢了不少力。各位前輩幫我解決問題,才勉強(qiáng)搞定。讓我來記錄這個(gè)樹形組件的編寫過程和期間用到的知識(shí)點(diǎn)。 首先說說需求,就是點(diǎn)擊出現(xiàn)彈窗+蒙板...
閱讀 732·2021-11-24 10:30
閱讀 1268·2021-09-24 09:48
閱讀 3083·2021-09-24 09:47
閱讀 3602·2019-08-29 17:11
閱讀 2885·2019-08-29 15:38
閱讀 2281·2019-08-29 11:03
閱讀 3609·2019-08-26 12:15
閱讀 1020·2019-08-26 10:45