vue + element 表格删除线功能

在Vue + ElementUI 的项目中的表格添加删除线

示例:

image.png

这里因为我我最后一个单元格是按钮不需要删除线, 所以使用了 ElementUI 提供的 :cell-class-name方法, 他接收四个参数 Function({row, column, rowIndex, columnIndex}), 其中column中可以拿到单元格ID, 从而做进一步的判断, 可以控制任何一个单元格

代码如下

<template>
  <div class="comment_container">
      //使用单元格的 className 的回调方法
      <el-table :data="comments" :cell-class-name="delLine">
        <el-table-column label="标题" prop="title" width="400px"></el-table-column>
        <el-table-column label="总评论数" prop="total_comment_count" width="240px"></el-table-column>
        <el-table-column label="粉丝评论数" prop="fans_comment_count" width="240px"> </el-table-column>
        <el-table-column label="状态" width="260px"> </el-table-column>
        <el-table-column label="操作" prop width="100px">
          <template slot-scope="scope">
            <el-button
              v-if="!scope.row.comment_status"
              type="success"
              size="small"
              @click="changeComStatus(scope.row)"
            >打开评论</el-button>
            <el-button v-else type="danger" size="small" @click="changeComStatus(scope.row)">关闭评论</el-button>
          </template>
        </el-table-column>
      </el-table>
  </div>
</template>

<script>
export default {
  methods: {
    // 删除线
    delLine ({ row, column, rowIndex, columnIndex }) {
      if (!row.comment_status && column.id !== 'el-table_1_column_5')  return 'del_line'
    }

  }
}
</script>

如果整个tr都需要删除线, 可以使用:row-class-name

  methods: {
    // 删除线
    delLine ({ row, rowIndex,}) {
      if (!row.comment_status)  return 'del_line'
    }

根目录 style下 index.less

// 删除线
.del_line::after {
    content: no-open-quote;
    position: absolute;
    top: 51%;
    left: 0;
    width: 100%;
    border-bottom: 1px solid #000;
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容