Element Table 动态生成列并且不同的列显示不同的样式
- 2020 年 2 月 25 日
- 笔记
我们在使用表格控件时,经常需要动态生成表格的列,并且某些列要求特殊的样式(如右对齐)
表格样式—————- 可以用cell-class-name 实现右对齐
表格头根据空格换行 — 使用render-header
addPullRightClass和renderheader都是methods中的函数
el-table模板
<el-table :data="filterData2(tableData,searchContent)" style="width: 100%" v-if="isShowTable1" border :cell-class-name="addPullRightClass"> <el-table-column v-for="(item,index) in tableColumns" :key="index" :prop="item.prop" :label="item.label" :render-header="renderheader" ></el-table-column> </el-table>
数据格式
tableColumns: [ { label: "日期 日期", prop: "date" }, { label: "名称", prop: "name" }, { label: "地址", prop: "address" } ], tableData: [ { date: "2016-05-02", name: "王小虎", address: "上海市普陀区金沙江路 1518 弄" }, { date: "2016-05-04", name: "王小虎", address: "上海市普陀区金沙江路 1517 弄" }, { date: "2016-05-01", name: "王小虎", address: "上海市普陀区金沙江路 1519 弄" }, { date: "2016-05-03", name: "王小虎", address: "上海市普陀区金沙江路 1516 弄" } ],
样式右对齐函数(返回的是class)
addPullRightClass({row, column, rowIndex, columnIndex}){ //console.log(column) if(column.property==="date" || column.property==="name"){ console.log("hi") return "text-right" }else{ return "" } }
.text-right{text-align:right !important;}
头部渲染函数(根据空格换行显示)
renderheader(h, { column, $index }) { column.minWidth=110 return h("div", {style:{width:'100%',paddingLeft:0,lineHeight:'25px'}}, [ h("span", {style:{display:'block'}}, column.label.split(" ")[0]), h("span", {style:{display:'block'}}, column.label.split(" ")[1]) ]); },