element-ui中table表格的折疊和隱藏方式
element-ui中table表格的折疊和隱藏
el-table的折疊展開(kāi)
使用elment-ui的el-table組件做表格的折疊和展開(kāi) 使用 default-expand-all屬性 通過(guò)click控制它為true或false來(lái)完成折疊展開(kāi) 但是卻沒(méi)有效果?。。?/p>
通過(guò)查資料發(fā)現(xiàn)需要這樣來(lái)寫(xiě)
<el-table
v-if="refreshTable"
:header-cell-style="{background:'#f4f3f9',color:'#606266'}"
:data="deptList"
style="width: 100%;margin-bottom: 20px;"
row-key="id"
:default-expand-all="Expand"
:tree-props="{children: 'children', hasChildren: 'hasChildren'
>
-------------數(shù)據(jù)設(shè)置
data() {
return {
Expand: true,
refreshTable: true,
}
}
-------------鼠標(biāo)點(diǎn)擊事件
/** 展開(kāi)/折疊操作 */
toggleExpandAll() {
this.refreshTable = false
this.Expand = !this.Expand
this.$nextTick(() => {
this.refreshTable = true
})
},
設(shè)置v-if table的顯示和隱藏 設(shè)置default-expand-all 兩個(gè)都要設(shè)置 向上面那樣 最后成功了 也不知道具體 原理 先這樣記?。?/p>
最近發(fā)現(xiàn)之前那個(gè)方法有bug 很不好用 又找到一個(gè)簡(jiǎn)單好用得
this.$refs.table..toggleRowExpansion(this.tableData[0]) // 全部折疊
直接拿到table得dom元素, 然后調(diào)用element-ui的table表格得一個(gè)方法toggleRowExpansion就可以實(shí)現(xiàn)展開(kāi)和折疊了
實(shí)現(xiàn)element-ui表格el-table展開(kāi)行
<template> <el-table :data="tableData" style="width: 100%" @row-click="rowClick" :row-key='getRowKeys' :expand-row-keys="expands" @expand-change="expandChange" ref="tableList">
<el-table-column type="expand">
<template slot-scope="props">
<el-form label-position="right" inline class="demo-table-expand" align="right">
<el-form-item label="商品名稱(chēng)">
<span>{{ props.row.name }}</span>
</el-form-item>
<el-form-item label="所屬店鋪">
<span>{{ props.row.shop }}</span>
</el-form-item>
<el-form-item label="商品 ID">
<span>{{ props.row.id }}</span>
</el-form-item>
<el-form-item label="店鋪 ID">
<span>{{ props.row.shopId }}</span>
</el-form-item>
<el-form-item label="商品分類(lèi)">
<span>{{ props.row.category }}</span>
</el-form-item>
<el-form-item label="店鋪地址">
<span>{{ props.row.address }}</span>
</el-form-item>
<el-form-item label="商品描述">
<span>{{ props.row.desc }}</span>
</el-form-item>
</el-form>
</template>
</el-table-column>
<el-table-column label="商品 ID" prop="id"></el-table-column>
<el-table-column label="商品名稱(chēng)" prop="name"></el-table-column>
<el-table-column label="描述" prop="desc"></el-table-column>
</el-table>
</template>
<script>
export default {
data() {
return {
tableData: [
{
id: "12987122",
name: "好滋好味雞蛋仔",
category: "江浙小吃、小吃零食",
desc: "荷蘭優(yōu)質(zhì)淡奶,奶香濃而不膩",
address: "上海市普陀區(qū)真北路",
shop: "王小虎夫妻店"+'<br>'+"asfdasfafasdfasdfas",
shopId: "10333",
},
{
id: "12987123",
name: "好滋好味雞蛋仔",
category: "江浙小吃、小吃零食",
desc: "荷蘭優(yōu)質(zhì)淡奶,奶香濃而不膩",
address: "上海市普陀區(qū)真北路",
shop: "王小虎夫妻店",
shopId: "10333",
},
{
id: "12987125",
name: "好滋好味雞蛋仔",
category: "江浙小吃、小吃零食",
desc: "荷蘭優(yōu)質(zhì)淡奶,奶香濃而不膩",
address: "上海市普陀區(qū)真北路",
shop: "王小虎夫妻店",
shopId: "10333",
},
{
id: "12987126",
name: "好滋好味雞蛋仔",
category: "江浙小吃、小吃零食",
desc: "荷蘭優(yōu)質(zhì)淡奶,奶香濃而不膩",
address: "上海市普陀區(qū)真北路",
shop: "王小虎夫妻店",
shopId: "10333",
},
],
expands: []
};
},
methods: {
rowClick(row){//點(diǎn)擊行時(shí)展開(kāi)收起
this.$refs.tableList.toggleRowExpansion(row);
},
expandChange(row,expandedRows){//
let that = this;
if(expandedRows.length){//此時(shí)展開(kāi)
that.expands = [];
if(row){
that.expands.push(row.id);
}
}else{//折疊
that.expands = [];
}
},
getRowKeys(row){//行數(shù)據(jù)的key,用于優(yōu)化table的渲染
return row.id;
}
}
};
</script>
<style scoped>
.demo-table-expand {
font-size: 0;
}
.demo-table-expand .el-form-item {
margin-right: 0;
margin-bottom: 0;
width: 50%;
}
</style><style>//在添加scoped時(shí)未生效.demo-table-expand .label{ width:150px; color: #99a9bf;}
</style>
row-click: 當(dāng)某一行點(diǎn)擊時(shí)觸發(fā)row-key: 行數(shù)據(jù)的key,用于優(yōu)化talbe的渲染expand-row-keys: 可通過(guò)這個(gè)屬性設(shè)置表格的當(dāng)前展開(kāi)行(必需row-key屬性)expand-change: 用于某一行點(diǎn)擊展開(kāi)或者關(guān)閉時(shí)觸發(fā)(展開(kāi)行時(shí),第二個(gè)屬性為expandedRows,關(guān)閉行時(shí),第二個(gè)屬性為expanded)
后續(xù)問(wèn)題
列表中存在操作按鈕列,點(diǎn)擊操作按鈕時(shí),同時(shí)會(huì)觸發(fā)row-click
問(wèn)題解決
<el-button type="warning" size="mini" circle icon="el-icon-question" @click.stop="diagnose"></el-button>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue-router跳轉(zhuǎn)時(shí)打開(kāi)新頁(yè)面的兩種方法
這篇文章主要給大家介紹了關(guān)于vue-router跳轉(zhuǎn)時(shí)打開(kāi)新頁(yè)面的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue-router具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
vue router 跳轉(zhuǎn)時(shí)打開(kāi)新頁(yè)面的示例方法
這篇文章主要介紹了vue router 跳轉(zhuǎn)時(shí)打開(kāi)新頁(yè)面的示例方法,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-07-07
使用Pinia Persistedstate插件實(shí)現(xiàn)狀態(tài)持久化的操作方法
Pinia 作為 Vue 的新一代狀態(tài)管理工具,以其輕量化和易用性受到開(kāi)發(fā)者的喜愛(ài),然而,Pinia 默認(rèn)使用內(nèi)存存儲(chǔ)狀態(tài),為了解決這個(gè)問(wèn)題,我們可以借助 Pinia Persistedstate 插件來(lái)實(shí)現(xiàn)狀態(tài)的持久化存儲(chǔ),本文將詳細(xì)介紹該插件的使用方法,需要的朋友可以參考下2024-11-11
詳解vue中使用vue-quill-editor富文本小結(jié)(圖片上傳)
這篇文章主要介紹了詳解vue中使用vue-quill-editor富文本小結(jié)(圖片上傳),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04
vue3使用富文本編輯器Editor.js的簡(jiǎn)單方法
Editor.js是一個(gè)用于構(gòu)建具有完全可定制化塊結(jié)構(gòu)的現(xiàn)代編輯器的開(kāi)源庫(kù),它提供了一個(gè)簡(jiǎn)潔、可擴(kuò)展和易于使用的接口,使開(kāi)發(fā)人員能夠創(chuàng)建擁有豐富內(nèi)容和互動(dòng)性的編輯器,這篇文章主要給大家介紹了關(guān)于vue3使用富文本編輯器Editor.js的簡(jiǎn)單方法,需要的朋友可以參考下2024-04-04
Vue結(jié)合后臺(tái)導(dǎo)入導(dǎo)出Excel問(wèn)題詳解
這篇文章主要介紹了Vue結(jié)合后臺(tái)導(dǎo)入導(dǎo)出Excel問(wèn)題詳解,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2019-02-02
vue3點(diǎn)擊不同的菜單頁(yè)切換局部頁(yè)面實(shí)現(xiàn)方法
這篇文章主要給大家介紹了關(guān)于vue3點(diǎn)擊不同的菜單頁(yè)切換局部頁(yè)面實(shí)現(xiàn)的相關(guān)資料,文中示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue3具有一定的參考價(jià)值,需要的朋友可以參考下2023-08-08
C#實(shí)現(xiàn)將一個(gè)字符轉(zhuǎn)換為整數(shù)
下面小編就為大家分享一篇C#實(shí)現(xiàn)將一個(gè)字符轉(zhuǎn)換為整數(shù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2017-12-12
vue與django集成打包的實(shí)現(xiàn)方法
這篇文章主要介紹了vue與django集成打包的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11

