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])      ]);  },