“ element-ui”表如何将空单元格更改为“-”。

时间:2018-12-17 06:22:06

标签: vue.js element-ui

var Main = {
      data() {
        return {
          tableData: [{
            date: '2016-05-03',
            name: 'Tom',
            address: 'No. 189, Grove St, Los Angeles'
          }, {
            date: '2016-05-02',
            name: '',
            address: 'No. 189, Grove St, Los Angeles'
          }, {
            date: '2016-05-04',
            name: '',
            address: 'No. 189, Grove St, Los Angeles'
          }, {
            date: '2016-05-01',
            name: 'Tom',
            address: 'No. 189, Grove St, Los Angeles'
          }]
        }
      }
    }
var Ctor = Vue.extend(Main)
new Ctor().$mount('#app')
@import url("//unpkg.com/element-ui@2.4.11/lib/theme-chalk/index.css");
<script src="//unpkg.com/vue/dist/vue.js"></script>
<script src="//unpkg.com/element-ui@2.4.11/lib/index.js"></script>
<div id="app">
<template>
    <el-table :data="tableData" style="width: 100%">
      <el-table-column prop="date" label="Date" width="180">
      </el-table-column>
      <el-table-column prop="name" label="Name" width="180">
        <template slot-scope="scope">
          {{scope.row.name || '-'}}
        </template>
      </el-table-column>
      <el-table-column prop="address" label="Address">
      </el-table-column>
    </el-table>
  </template>
</div>

我知道如果我使用'template'标签,我可以将空数据转换为'-'。
现在,假设我有100多个表,而且我不知道哪个单元格可以为空。
将'template'放到所有el-table列中将是非常艰苦的工作,而且效率很低。
我想知道有什么方法可以同时将空单元格更改为“-”。帮帮我 jsfiddle

2 个答案:

答案 0 :(得分:0)

我相信有很多方法可以实现这一目标。但是尝试一下:

computed: {
  items() {
    let data = this.tableData;

    for(let item of data) {
      for(let key in item) {
        if (!item[key]) {
          item[key] = '-';
        }
      }
    }

    return data;
  }
}
<template>
  <el-table :data="items" style="width: 100%">
  <! -- the rest of the content -->

答案 1 :(得分:0)

刚刚:

<template>
<el-table :data="tableData" style="width: 100%">
  <el-table-column prop="date" label="Date" width="180">
  </el-table-column>
  <el-table-column prop="name" label="Name" width="180">
    <template slot-scope="scope">
      <!-- Replace empty cell by '-' --->
      <div class="cell" v-if="scope.row.name !== null">{{ scope.row.answer }}</div>
      <div v-else class="cell">-</div>
    </template>
  </el-table-column>
  <el-table-column prop="address" label="Address">
  </el-table-column>
</el-table>