elementui中樹(shù)形表格切換展開(kāi)不同層級(jí)的示例代碼
效果:
代碼(復(fù)制粘貼即可):
<template> <div class="myDiv"> <el-row style="margin:10px 0"> <el-col :span="22"> <el-button type="primary" size="mini" plain @click="expandLevel(0)">展開(kāi)一級(jí)</el-button> <el-button type="primary" size="mini" plain @click="expandLevel(1)">展開(kāi)二級(jí)</el-button> <el-button type="primary" size="mini" plain @click="expandLevel(2)">展開(kāi)三級(jí)</el-button> <el-button type="primary" size="mini" plain @click="expandLevel(3)">展開(kāi)四級(jí)</el-button> </el-col> </el-row> //下面寫(xiě)法主要方便大家作為組件封裝使用 <el-table :data="tableData" style="width: 100%" row-key="id" :expand-row-keys="expandId" border :tree-props="{children: 'children', hasChildren: 'hasChildren'}"> <el-table-column show-overflow-tooltip :prop="item.prop" :width="item.width" :label="item.label" v-for="(item,i) in treeProps" :key="i"> <template slot-scope="scope"> <!-- 自定義數(shù)據(jù)-展示slot插槽 --> <slot v-if="item.slot" :name="item.prop" :scope="scope">-</slot> <!-- 非自定義處理(判空) --> <span v-else-if="scope.row[item.prop] === '' || scope.row[item.prop] === null">-</span> <!-- 非自定義處理(展示數(shù)組數(shù)據(jù))-換行展示 --> <div v-else-if="Array.isArray( scope.row[item.prop])==true"> <div v-for="aa in scope.row[item.prop]" ::key="aa"> {{aa}} </div> </div> <!-- 非自定義處理(正常展示) --> <span v-else>{{scope.row[item.prop]}}</span> </template> </el-table-column> </el-table> </div> </template> <script> export default { name: '', components: {}, props: {}, data() { return { expandNum: 0, //展開(kāi)層級(jí)的數(shù)字 expandId: [], treeProps: [{ prop: 'date', label: '評(píng)估項(xiàng)目', width: '400' }, { prop: 'address', label: '指標(biāo)屬性', width: '300' }, { prop: 'map', label: '采集要點(diǎn)', width: '300' }], tableData: [{ id: 1, date: '快速反應(yīng)能力', name: '-', address: '-', level: 1, children: [{ id: 11, date: '快速籌劃', name: '-', address: '-', level: 2, children: [{ id: 111, date: '方案計(jì)劃齊全', name: '-', address: '-', level: 3, children: [{ id: 1111, date: '四級(jí)111', name: '四級(jí)111', address: '定量', map: ['11', '22', '33'], level: 4, }, { id: 1112, date: '四級(jí)1', name: '四級(jí)2', address: '定量', map: ['11', '22', '33'], level: 4, }, { id: 1113, date: '四級(jí)1', name: '四級(jí)3', address: '定量', map: ['11', '22', '33'], level: 4, }, { id: 1114, date: '四級(jí)1', name: '四級(jí)4', address: '定量', level: 4, }] }] }] }, { id: 2, date: '突發(fā)事件處理能力', name: '-', address: '-', level: 1, children: [{ id: 21, date: '隨機(jī)應(yīng)變', name: '-', address: '-', level: 2, children: [{ id: 211, date: '方案計(jì)劃齊全', name: '-', address: '-', level: 3, children: [{ id: 2111, date: '四級(jí)1', name: '四級(jí)1', level: 4, address: '定量' }] }] }] }], expandNumCopy: 0,//保留當(dāng)前展開(kāi)的層級(jí) } }, created() { }, methods: { /** 展開(kāi)層級(jí) */ expandLevel(i) { this.expandNum = i this.expandId.splice(0); if (this.expandNum > 0) { //expandNum==0 為第一層級(jí) 不需要展開(kāi) 大于0再執(zhí)行 this.setExpandKeys(this.tableData1, i) } }, /** 遞歸設(shè)置展開(kāi)層級(jí)對(duì)應(yīng)的id數(shù)組 */ setExpandKeys(dataList, num) { --num; if (num >= 0) { for (var i = 0; i < dataList.length; i++) { this.expandId.push(`${dataList[i].id}`); if (dataList[i].children) { this.setExpandKeys(dataList[i].children, num); } } } }, }, mounted() { } } </script> <style lang="scss" scoped> </style>
注意:效果圖的表格樣式?jīng)]貼出來(lái),自己定義就好。
到此這篇關(guān)于elementui中樹(shù)形表格切換展開(kāi)不同層級(jí)的文章就介紹到這了,更多相關(guān)elementui樹(shù)形表格內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue項(xiàng)目中實(shí)現(xiàn)el-dialog組件可拖拽效果
本文主要介紹了vue項(xiàng)目中實(shí)現(xiàn)el-dialog組件可拖拽效果,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01React和Vue中監(jiān)聽(tīng)變量變化的方法
這篇文章主要介紹了React和Vue中監(jiān)聽(tīng)變量變化的方法,本文通過(guò)一個(gè)場(chǎng)景,父組件傳遞子組件一個(gè)A參數(shù),子組件需要監(jiān)聽(tīng)A參數(shù)的變化轉(zhuǎn)換為state,具體內(nèi)容詳情大家跟隨小編一起通過(guò)本文學(xué)習(xí)吧2018-11-11vue 開(kāi)發(fā)一個(gè)按鈕組件的示例代碼
本篇文章主要介紹了vue 開(kāi)發(fā)一個(gè)按鈕組件的示例代碼,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-03-03Ant?Design?Vue?走馬燈實(shí)現(xiàn)單頁(yè)多張圖片輪播效果
這篇文章主要介紹了Ant?Design?Vue?走馬燈實(shí)現(xiàn)單頁(yè)多張圖片輪播,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-07-07Vue數(shù)據(jù)變化后頁(yè)面更新詳細(xì)介紹
這篇文章主要介紹了Vue在數(shù)據(jù)發(fā)生變化后是如何更新頁(yè)面的,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2022-10-10nuxt 服務(wù)器渲染動(dòng)態(tài)設(shè)置 title和seo關(guān)鍵字的操作
這篇文章主要介紹了nuxt 服務(wù)器渲染動(dòng)態(tài)設(shè)置 title和seo關(guān)鍵字的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-11-11Nuxt3項(xiàng)目搭建過(guò)程(Nuxt3+element-plus+scss詳細(xì)步驟)
這篇文章主要介紹了Nuxt3項(xiàng)目搭建(Nuxt3+element-plus+scss詳細(xì)步驟),本次記錄一次使用Nuxt3搭建前端項(xiàng)目的過(guò)程,內(nèi)容包含Nuxt3的安裝,基于Vite腳手架(默認(rèn))構(gòu)建的vue3項(xiàng)目,element-plus的安裝配置,scss的安裝,目錄結(jié)構(gòu)的創(chuàng)建和解釋?zhuān)枰呐笥芽梢詤⒖枷?/div> 2022-12-12vuex在vite&vue3中的簡(jiǎn)單使用說(shuō)明
這篇文章主要介紹了vuex在vite&vue3中的簡(jiǎn)單使用說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-06-06WebStorm啟動(dòng)vue項(xiàng)目報(bào)錯(cuò)代碼:1080?throw?err解決辦法
在使用webstorm新建vue項(xiàng)目時(shí)常會(huì)遇到一些報(bào)錯(cuò),下面這篇文章主要給大家介紹了關(guān)于WebStorm啟動(dòng)vue項(xiàng)目報(bào)錯(cuò)代碼:1080?throw?err的解決辦法,文中將解決辦法介紹的非常詳細(xì),需要的朋友可以參考下2023-12-12最新評(píng)論