el-table 实现动态隐藏列
html
<el-popover placement="bottom" trigger="hover" width="80">
<template #reference>
<el-button :icon="Operation" circle></el-button>
</template>
<div>
<el-checkbox-group v-model="checkedColumns" @change="watchCheckedColumns" class="checkbox-wrap">
<el-checkbox size="large" style="display: block" v-for="item in checkBoxGroup"
:key="item.value" :label="item.value">{{ item.label }}</el-checkbox>
</el-checkbox-group>
</div>
</el-popover>
<el-table-column v-if="tableColVisiableData.taskName" prop="taskName" label="任务名"
width="420"></el-table-column>
<el-table-column v-if="tableColVisiableData.description" prop="description" label="描述"
show-overflow-tooltip></el-table-column>
<el-table-column v-if="tableColVisiableData.totalNum" prop="totalNum" label="任务总数"
width="120"></el-table-column>
<el-table-column v-if="tableColVisiableData.finishNum" prop="finishNum" label="完成数"
width="120"></el-table-column>
<el-table-column v-if="tableColVisiableData.taskStatus" prop="taskStatus" label="状态"
width="120"></el-table-column>
<el-table-column v-if="tableColVisiableData.employeeId" prop="employeeId" label="操作人"
width="120"></el-table-column>
<el-table-column v-if="tableColVisiableData.createTime" prop="createTime" label="创建时间"
width="200"></el-table-column>
js
//用于存放随机数用于key属性的绑定
var reload = ref();
// 多选框的列表,列出表格的每一列
const checkBoxGroup = ref(
[{
"label": "任务名",
"value": "taskName"
}, {
"label": "描述",
"value": "description"
}, {
"label": "任务总数",
"value": "totalNum"
}, {
"label": "完成数",
"value": "finishNum"
}, {
"label": "状态",
"value": "taskStatus"
}, {
"label": "操作人",
"value": "employeeId"
}, {
"label": "创建时间",
"value": "createTime"
}]
)
// 当前选中的多选框,代表当前展示的列
const checkedColumns = ref([
"taskName",
"description",
"totalNum",
"finishNum",
"taskStatus",
"employeeId",
"createTime"
])
// 列出表格中的每一列,默认都展示
const tableColVisiableData = reactive({
"taskName": true,
"description": true,
"totalNum": true,
"finishNum": true,
"taskStatus": true,
"employeeId": true,
"createTime": true,
})
const watchCheckedColumns = () => {
console.log(checkedColumns.value);
for (let key in tableColVisiableData) {
tableColVisiableData[key] = false;
}
checkedColumns.value.forEach((item) => {
tableColVisiableData[item] = true
})
// 重新渲染表格
reload.value = Math.random()
}
本文作者:Joe's blog
本文链接:https://www.cnblogs.com/rise0111/p/17531456.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通