日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

js如何構造elementUI樹狀菜單的數據結構詳解

瀏覽:209日期:2024-03-26 11:20:07
背景說明

elementUI中自帶樹狀菜單,就是數據結構有點復雜,偏向json風格。

數據庫中菜單數據是二維表格,通過parentPk定義上下級,是list型。

需要把list轉換成tree的結構。

elementUI樹狀菜單的數據結構

每個節點有4個屬性,id、label、newVal、children數組;

通過children數組包含關系標示上下級。

var treeData={id: 1,label: ’一級 1’,newVal: '',children: [{ id: 4, label: ’二級 1-1’, newVal: '', children: [{ id: 9, label: ’三級 1-1-1’, newVal: '', }, { id: 10, label: ’三級 1-1-2’, newVal: '', children:[{ id: 4444, label: ’四級 1-1-1-4’, newVal: '', }] }]},{ id:22, label:’二級 22’, newVal:’’}] }

數據庫返回的list

var itemlist =[{itemCode:’11’, itemName:’材料11’,itemType:’2’,parentPk:’1’},{itemCode:’111’, itemName:’材料111’,itemType:’3’,parentPk:’11’}, {itemCode:’1111’, itemName:’材料1111’,itemType:’3’,parentPk:’111’},{itemCode:’1112’, itemName:’材料1112’,itemType:’3’,parentPk:’111’} ]設計思路

用遞歸方法;

從list中遍歷,找parentPk是當前節點的id的對象,組裝成node,放到當前節點的children數組;同時,把list的對象刪除。 對新的node,遞歸執行找子節點的過程。 退出條件:list為空或者循環list完畢。 具體代碼

//root節點全局對象,因為不同的遞歸執行,要訪問的一個tree對象var itemtree ={ id:’1’, label:’物料名稱_整機’, children:[]}//數據庫返回的菜單list全局對象,因為不同的遞歸執行,要訪問的一個list對象var itemlist =[{itemCode:’11’, itemName:’材料11’,itemType:’2’,parentPk:’1’},{itemCode:’12’, itemName:’材料12’,itemType:’2’,parentPk:’1’},{itemCode:’111’, itemName:’材料111’,itemType:’3’,parentPk:’11’}, {itemCode:’1111’, itemName:’材料1111’,itemType:’3’,parentPk:’111’},{itemCode:’1112’, itemName:’材料1112’,itemType:’3’,parentPk:’111’} ]function buildtree(itemtreenode,itemlist){ if (itemlist.length===0) { console.log(’條件結束’) return } var j=0 /*?。∽⒁庋h變量j必須定義為局部變量,否則默認全局變量,會導致子節點丟失*/// var len=0 for(j=0,len=itemlist.length;j<len;j++){ console.log(new Date(),’j==>:’,j,’len==>:’,len,itemtreenode,itemlist) if (itemtreenode.id===itemlist[j].parentPk){ var node={id:itemlist[j].itemCode,label:itemlist[j].itemName,children:[]} itemtreenode.children.push(node) // itemlist.splice(j,1) /*!! 沒有刪除list元素,否則會導致后續引用錯誤。代碼不是很完美,一時沒想到完美方法*/ buildtree(node,itemlist)} } console.log(’循環結束’)}console.log(’begin’)buildtree(itemtree,itemlist) console.log(itemtree)代碼執行結果

js如何構造elementUI樹狀菜單的數據結構詳解

可以看到組裝樹是正確的。

總結

ps:和設計方案對比,代碼不是很完美,list中被引用的元素沒有成功移除;移除后,后邊會報錯。暫時沒找到好方法,對性能有點影響。

樹data轉list代碼

與此相反的操作。

var treeData={id: 1,label: ’一級 1’,newVal: '',children: [{ id: 4, label: ’二級 1-1’, newVal: '', children: [{ id: 9, label: ’三級 1-1-1’, newVal: '', }, { id: 10, label: ’三級 1-1-2’, newVal: '', children:[{ id: 4444, label: ’四級 1-1-1-4’, newVal: '', }] }]},{ id:22, label:’二級 22’, newVal:’’, children:[{id:’2-2-1’,label:’三級221’,newVal:’’,children:[],}]}] }var exp=undefinedvar itemlist=[]function tree2list(itemnode){ if(typeof(itemnode)=='undefined'){ console.log(’返回:’,itemnode) return } if(itemnode.children && itemnode.children.length>0){ var i=0 for(i=0;i<itemnode.children.length;i++){ itemnode.children[i].parentPk=itemnode.id console.log(itemnode.children[i]) itemlist.push(itemnode.children[i]) this.tree2list(itemnode.children[i]) } }} console.log(’begin’)tree2list(treeData,itemlist)console.log(itemlist)

到此這篇關于js如何構造elementUI樹狀菜單的數據結構的文章就介紹到這了,更多相關js構造elementUI樹狀菜單內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: JavaScript
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲免费成人| 麻豆久久精品| 欧美1区2区3| 日本亚洲欧美天堂免费| 黑丝一区二区三区| 蜜臀久久久久久久| 日韩激情中文字幕| 日本午夜免费一区二区 | 国产欧美日韩一级| 国产欧美日韩影院| 国产一区一一区高清不卡| 91tv亚洲精品香蕉国产一区| 宅男噜噜噜66国产日韩在线观看| 亚洲精品视频一二三区| 欧美日韩1区2区3区| 福利一区二区三区视频在线观看| 激情国产在线| 亚洲另类黄色| 国产成人久久| 一区二区91| 日韩精品看片| 奇米狠狠一区二区三区| 成人片免费看| 亚洲日本在线观看视频| 精品国产aⅴ| 亚洲精品亚洲人成在线观看| 在线亚洲人成| 国产欧美日韩| 在线精品观看| 亚洲午夜久久久久久尤物| 国产欧美三级| 欧美午夜精品一区二区三区电影| 国产日韩欧美三级| 9国产精品视频| 在线手机中文字幕| 日韩av中文字幕一区二区三区| 欧美影院三区| www.九色在线| 美女尤物国产一区| 日本精品一区二区三区在线观看视频 | 一级成人国产| 久久亚洲国产| 日韩一区二区三区在线免费观看| 日本中文字幕一区二区| 女人av一区| 亚洲精品国产嫩草在线观看 | 久久精品伊人| 欧美日韩一区二区三区不卡视频 | 久久青草久久| 国产99在线| 水蜜桃久久夜色精品一区| 国产精品毛片久久久| 日本不卡高清| 丝袜美腿高跟呻吟高潮一区| 日韩成人免费| 久久国产欧美日韩精品| 7777精品| 日本亚洲视频| 亚洲尤物在线| 亚洲欧美日韩国产综合精品二区| 99久久精品费精品国产| 久久精品播放| 欧美日韩精品一本二本三本| 一区二区三区视频免费观看| 国精品一区二区三区| av亚洲免费| 丝瓜av网站精品一区二区| 亚洲人成网站在线在线观看| 亚洲深夜福利在线观看| 午夜在线精品偷拍| 偷拍亚洲精品| 麻豆国产精品| 日韩精品第一区| 99日韩精品| 日韩av午夜在线观看| 国产中文字幕一区二区三区| 激情婷婷亚洲| 欧美日一区二区三区在线观看国产免 | 久久国产精品色av免费看| 中文字幕日韩欧美精品高清在线| 亚洲精品女人| 电影91久久久| 在线视频精品| 久久中文字幕一区二区三区| 日韩免费一区| 午夜久久av| 亚洲一级少妇| 亚洲乱码视频| 日韩精品首页| 欧美一区网站| 激情综合在线| 精品欧美日韩精品| 蜜桃免费网站一区二区三区| 国产剧情一区二区在线观看| 精品成人免费一区二区在线播放| 蜜臀91精品一区二区三区| 国产精品三p一区二区| 在线 亚洲欧美在线综合一区| 欧美国产极品| 久久精品青草| 亚洲网址在线观看| 国产精品不卡| 日韩高清不卡| 日本va欧美va精品发布| 国内精品福利| 九九99久久精品在免费线bt| 免费日韩一区二区| 香蕉视频亚洲一级| 91嫩草精品| 久久亚洲风情| 激情欧美一区二区三区| 国产一区二区精品福利地址| 亚洲精品一级| 视频在线在亚洲| 亚洲一区网站| 日韩一区二区免费看| 久久国产亚洲| 欧美手机在线| 亚洲五月婷婷| 欧美日韩国产一区二区三区不卡| 日韩影院二区| 播放一区二区| 欧美一级精品| 色网在线免费观看| 国产一区二区三区亚洲| 久久精品国产在热久久| 久久久久久亚洲精品美女| 麻豆精品蜜桃视频网站| 欧美有码在线| 美女性感视频久久| 日本一二区不卡| 亚洲人成在线网站| 国产综合婷婷| 日韩精品一二三区| 日韩精品一区第一页| 亚洲午夜免费| 国产亚洲观看| 国产一区二区三区久久久久久久久| 国产精品.xx视频.xxtv| 精品久久不卡| 亚洲二区在线| 亚洲精品无播放器在线播放| 国产三级一区| av最新在线| 六月婷婷一区| 国产午夜一区| 久久精品高清| 亚洲精品国产日韩| 国产成人调教视频在线观看| 久久人人97超碰国产公开结果| 国产精品色网| 国产精品网址| 国产一区久久| 青青草精品视频| 亚洲www免费| 国产伦一区二区三区| 在线一区电影| 麻豆精品在线播放| 国产亚洲激情| 国产精品毛片一区二区在线看| 老鸭窝毛片一区二区三区| 久久99精品久久久野外观看| 久久大逼视频| 日韩免费小视频| 国产欧美69| 午夜一区在线| 中文字幕在线视频久| 亚洲精品影院在线观看| 亚洲美女久久精品| 欧美亚洲福利| 蜜桃视频免费观看一区| 国产一区久久| 日韩免费看片| 国内一区二区三区| 欧美在线看片| 日韩高清电影免费| 亚洲精品888| 亚洲性色av| 成人欧美一区二区三区的电影| 国产精品男女| 欧美亚洲三级| 国产精品一区二区三区四区在线观看| 99亚洲视频| 99精品在线观看| 日韩欧美一区二区三区在线视频| 欧美黑人巨大videos精品| 欧美一级二级三级视频| 亚洲欧美日本国产| 亚洲日产av中文字幕| 亚洲三级网址| 日本综合视频| 国产精品资源| 精品亚洲成人| 亚洲精品**中文毛片| 精品欧美一区二区三区在线观看| 日本激情一区| 久久一区二区三区喷水| 久久亚洲在线| 在线综合视频| 国产精品日韩|