element-plus 按鈕展開/隱藏功能實(shí)現(xiàn)
1、小記
element-plus中el-table 的 expand,箭頭控制子項(xiàng)顯示,有點(diǎn)丑。
想實(shí)現(xiàn)類似bootstrap ,用按鈕 展開/隱藏子項(xiàng)的功能


2、頁面
<!-- 表內(nèi)容 -->
<el-table
:data="tableData"
:border="true"
:preserve-expanded-content="true"
style="width: 100%"
:expand-row-keys="expands"
:row-key="getRowKeys"
>
<!-- 子項(xiàng) -->
<el-table-column type="expand" width="0"><!-- width隱藏列 -->
<template #default="props">
<div m="4" class="expandcontent">
<el-table :data="props.row.family" :border="true" :color="'red'">
<el-table-column label="Name" prop="name" />
<el-table-column label="State" prop="state" />
<el-table-column label="City" prop="city" />
<el-table-column label="Address" prop="address" />
<el-table-column label="Zip" prop="zip" />
</el-table>
</div>
</template>
</el-table-column>
<!-- 其他數(shù)據(jù)列 -->
<el-table-column label="Date" prop="date" />
<el-table-column label="Name" prop="name" />
<!-- 操作 -->
<el-table-column label="Operations">
<template #default="props">
<el-button type="primary" @click="toggleExpand(props.row)">
{{ isExpanded(props.row) ? '收起' : '展開' }}
</el-button>
</template>
</el-table-column>
</el-table>3、typescript事件
<script setup lang="tsx">
const getRowKeys = (row) => {
return row.id
}
//展開自定義
const expands = ref<string[]>([])
const toggleExpand = (row) => {
const key = getRowKeys(row)
const index = expands.value.indexOf(key)
if (index > -1) {
expands.value.splice(index, 1) // 收起
} else {
expands.value.push(key) // 展開
}
}
const isExpanded = (row) => {
return expands.value.includes(getRowKeys(row))
}
</script>4、測試數(shù)據(jù)
const tableData = [
{
id: 1,
date: '2016-05-03',
name: 'Tom',
state: 'California',
city: 'San Francisco',
address: '3650 21st St, San Francisco',
zip: 'CA 94114',
expand: false,
family: [
{
name: 'Jerry',
state: 'California',
city: 'San Francisco',
address: '3650 21st',
zip: 'CA 94114'
},
{
name: 'Spike',
state: 'California',
city: 'San Francisco',
address: '3650 21st ',
zip: 'CA 94114'
},
{
name: 'Tyke',
state: 'California',
city: 'San Francisco',
address: '3650 21st ',
zip: 'CA 94114'
}
]
},
{
id: 2,
date: '2016-05-02',
name: 'Tom',
state: 'California',
city: 'San Francisco',
address: '3650 21st St, San Francisco',
zip: 'CA 94114',
expand: false,
family: [
{
name: 'Jerry',
state: 'California',
city: 'San Francisco',
address: '3650 21st St, San Francisco',
zip: 'CA 94114'
}
]
}
]5、樣式
<!-- 樣式 -->
<style scoped lang="scss">
// 子項(xiàng)背景色
:deep(.el-table__expanded-cell) {
background-color: #cbdde2 !important;
}
// 子項(xiàng)居中
.expandcontent {
width: 95%;
margin: 0 auto;
}
</style>到此這篇關(guān)于element-plus 按鈕展開/隱藏功能實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)element-plus按鈕展開內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue與bootstrap實(shí)現(xiàn)時(shí)間選擇器的示例代碼
本篇文章主要介紹了vue與bootstrap實(shí)現(xiàn)時(shí)間選擇器的示例代碼,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2017-08-08
Vue 簡單實(shí)現(xiàn)前端權(quán)限控制的示例
這篇文章主要介紹了Vue 簡單實(shí)現(xiàn)前端權(quán)限控制的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-12-12
如何利用vue實(shí)現(xiàn)登陸界面及其跳轉(zhuǎn)詳解
在開發(fā)中我們經(jīng)常遇到這樣的需求,需要用戶直接點(diǎn)擊一個(gè)鏈接進(jìn)入到一個(gè)頁面,下面這篇文章主要給大家介紹了關(guān)于如何利用vue實(shí)現(xiàn)登陸界面及其跳轉(zhuǎn)的相關(guān)資料,需要的朋友可以參考下2023-04-04
element表格翻頁第2頁從1開始編號(后端從0開始分頁)
這篇文章主要介紹了element表格翻頁第2頁從1開始編號(后端從0開始分頁),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
這15個(gè)Vue指令,讓你的項(xiàng)目開發(fā)爽到爆
這篇文章主要介紹了這15個(gè)Vue指令,讓你的項(xiàng)目開發(fā)爽到爆,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-10-10
vue3中如何使用Pinia實(shí)現(xiàn)數(shù)據(jù)持久化操作
使用vue3中的pinia,我們可以在多個(gè)頁面間共享數(shù)據(jù),但是一旦我們關(guān)閉或刷新頁面,這些數(shù)據(jù)就會(huì)丟失,因此,我們需要有一種數(shù)據(jù)持久化的解決方案,下面我們就來看看具體如何解決的吧2023-10-10

