【表格动态列】Vue + ElementUI实现表格多行表头以及表格动态列的功能
2023-09-14 09:13:55 时间
这周工作中,遇见了一个表格动态列的需求,这记录一下如何使用Vue和ElementUI实现表格多行表头以及表格动态列的功能。
目录
1.1、案例效果
Vue + ElementUI实现表格多行表头以及表格动态列的运行效果如下所示:
1.2、案例代码
(1)实现思路
- 表格的表头采用【v-for】循环渲染。
- Table表格要实现多行表头,只需要在【<el-table-column>】标签里面嵌套【<el-table-column>】标签即可。
- 表格的数据可以是:一条数据中包含一个数组,这个数组就是动态渲染列对应的数据。
(2)HTML代码
<el-table :data="tableData" style="width: 100%">
<!-- 采用 v-for 实现动态列 -->
<template v-for="(item,column) in tableHeaderColumn">
<template v-if="column === 0">
<el-table-column label="日期" prop="name" width="80">
<el-table-column label="星期" prop="name" width="80"></el-table-column>
</el-table-column>
</template>
<el-table-column :label="item.dayTime" width="60">
<el-table-column :label="item.weekName" width="60">
<template scope="scope">
<!-- 这里实现复选框的绑定 -->
<el-checkbox v-model="scope.row.tableColumn[column]['checked']"></el-checkbox>
</template>
</el-table-column>
</el-table-column>
</template>
</el-table>
(3)完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>表格动态列</title>
<!-- 引入样式 -->
<link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css">
<style>
#app {
padding: 100px 100px;
}
</style>
</head>
<body>
<div id="app">
<el-table :data="tableData" style="width: 100%">
<!-- 采用 v-for 实现动态列 -->
<template v-for="(item,column) in tableHeaderColumn">
<template v-if="column === 0">
<el-table-column label="日期" prop="name" width="80">
<el-table-column label="星期" prop="name" width="80"></el-table-column>
</el-table-column>
</template>
<el-table-column :label="item.dayTime" width="60">
<el-table-column :label="item.weekName" width="60">
<template scope="scope">
<!-- 这里实现复选框的绑定 -->
<el-checkbox v-model="scope.row.tableColumn[column]['checked']"></el-checkbox>
</template>
</el-table-column>
</el-table-column>
</template>
</el-table>
</div>
<script src="https://cdn.staticfile.org/vue/2.6.2/vue.min.js"></script>
<!-- 引入组件库 -->
<script src="https://unpkg.com/element-ui/lib/index.js"></script>
<script>
// 创建Vue实例对象
const vm = new Vue({
el: '#app',
data() {
return {
// 表格数据数组
tableData: [
{
id: 1001,
name: '张三',
tableColumn: [
{
checked: false
},
{
checked: true
},
{
checked: false
},
{
checked: false
},
{
checked: true
}
]
},
{
id: 1002,
name: '李四',
tableColumn: [
{
checked: true
},
{
checked: false
},
{
checked: false
},
{
checked: true
},
{
checked: true
}
]
},
{
id: 1003,
name: '王五',
tableColumn: [
{
checked: false
},
{
checked: false
},
{
checked: false
},
{
checked: true
},
{
checked: false
}
]
}
],
// 表头数组
tableHeaderColumn: [
{
dayTime: '1',
weekName: '一'
},
{
dayTime: '2',
weekName: '二'
},
{
dayTime: '3',
weekName: '三'
},
{
dayTime: '4',
weekName: '四'
},
{
dayTime: '5',
weekName: '五'
}
]
};
}
});
</script>
</body>
</html>
到此,Vue+ElementUI实现多行表头以及表格动态列就完成啦。
相关文章
- Vue+ElementUI项目使用webpack输出MPA
- vue+webpack开发(三)
- Vue命名规范
- [Vue @Component] Define Props on a Vue Class with vue-property-decorator
- vue 的elementui中select下拉框多选项-multiple属性
- Vue入门教程:node安装vue命令行工具及启动项目
- standalone vue initialization process - Vue应用的初始化过程
- vue+elementui 项目el-menu导航栏实现路由跳转及当前项的设置
- 怎样给vue项目重命名?怎样修改vue项目的title标题?vuejs项目:路由跳转时更改页面title名称
- 在vue里面使用ElementUI的具体步骤
- vue:export default 和 export 区别(difference between Vue 'export default' and 'new Vue')
- vue+elementUi实现将数字转化为 对应的字符串内容
- 159:vue+openlayers 地图上添加Echarts环形图
- Vue(一)vue 概述与用法、MVVM、绑定语法、vue 指令
- vue商品倒计时demo效果(整理)
- Vue 常用指令
- Vue: vue-router路由
- Vue学习笔记——vue-router