elementUI 表格用法

CSS

表格表头样式

  • html
<el-table :header-cell-style="getRowClass"></el-table>
  • js
// 设置表格第一行的颜色
      getRowClass ({ row, column, rowIndex, columnIndex }) {
        if (rowIndex === 0) {
          return 'background:#2A3253'
        } else {
          return ''
        }
      },

https://blog.csdn.net/Feast_aw/article/details/80777577

表格默认hover背景颜色

.el-table__body tr:hover>td {
background: #1b223e !important;
}

https://segmentfault.com/q/1010000012532291?sort=created
https://blog.csdn.net/qq_39313596/article/details/83015358

表格设置头部第一行的背景颜色

https://blog.csdn.net/Feast_aw/article/details/80777577

表格点击一行,背景色变化

https://blog.csdn.net/zhongmei121/article/details/81560134

表格高度自适应

https://segmentfault.com/q/1010000013671400

表格宽度自适应

  • 百分比显示列
<el-table style="width: 100%;">
     <el-table-column min-width="25%"></el-table-column>
</el-table>

表格行高 (row-style)

<el-table :row-style="rowStyle"></el-table>
data () {
  return {
      rowStyle: {maxHeight: 57 + 'px', height: 57 + 'px'},
  }
}

注意:不能直接写 row-style="height: 100px;",
会报错 Invalid prop: type check failed for prop "rowStyle". Expected Object, Function, got String。

  • 解释:该变量需要一个对象或者方法,而你给他的是一个string。
  • 解决方法:应该在前面加上: 代表变量,在下面定义一个对象 将对象填入 :row_style="yourObject"

https://blog.csdn.net/qq_39313596/article/details/81477735

表格 滚动条样式修改

<style>
/* 滚动条的宽度 */
.el-table .el-table__body-wrapper::-webkit-scrollbar {
 width: 10px;
 height: 10px;
}
/* 滚动条的滑块 */
.el-table .el-table__body-wrapper::-webkit-scrollbar-thumb {
  background-color: #e6e6e6 !important;
  border-radius: 3px;
}
</style>

https://segmentfault.com/q/1010000016366942?utm_source=tag-newest

JS

表格路由跳转

<el-table-column label="问题"
          width="500">
    <template slot-scope="scope">
         <router-link v-if="isHelpResolve" :to="{ name: 'helpsResolve', params: {id: scope.row.id} }">
            <span>{{ scope.row.title }}</span>
         </router-link>
   </template>
</el-table-column>

https://www.jianshu.com/p/fe96cd805f3d

表格手风琴,且动态获取表格展开的数据

<el-table :data="tableData"
                :row-key="getRowKeys" 
                @expand-change="expandChange"
                :expand-row-keys="expands">
</el-table>
data () {
   return {
        // 获取row的key值
        getRowKeys(row) {
          return row.id;
        },
        // 要展开的行,数值的元素是row的key值
        expands: []
   }
}
expandChange (row) {
        if (this.expands.indexOf(row.id) >= 0) {
          this.expands.shift()  // 收起当前行
          return
        }
        this.expands = []
        this.expands.push(row.id) // 只展开当前行
        this.tableData.forEach((item, index) => {
          if (item.id == row.id) {
            // 直接为动态展开的数据,赋值
            this.$set(this.tableData[index], 'childData', this.childData) 
            // this.$set(要赋值的对象,属性名,数据) // 如果赋值后数据没有刷新,就需要提前清空数据
          }
        }, this)
      },

https://segmentfault.com/q/1010000008981772

表格嵌套并且在子表格没有数据的时候隐藏展开按钮

 :row-class-name="getRowClass"
    getRowClass(row, rowIndex) {
      if (row.row.children.length == 0) {
        // 判断当前行是否有子数据
        return 'row-expand-cover'
      }
    },
    .row-expand-cover td:first-child .el-table__expand-icon {
      display: none;
    }

https://blog.csdn.net/Null_Bugs/article/details/81146044

表格提交时获取所有选中的checkbox的数据

https://blog.csdn.net/rickiyeat/article/details/76595308

表格复选框配合分页,数据如何回显(reserve-selection与row-key结合)

  • html
<el-table :row-key="getRowKeys">
   <el-table-column type="selection" :reserve-selection="tableTrue"></el-table-column>
</el-table>
  • js
data () {
  return {
     // 获取row的key值
     getRowKeys (row) {
          return row.id
     },
    tableTrue: true
  }
}

https://segmentfault.com/q/1010000009772656

表格滚动条回到顶部

el-table 中设置 ref="mytable"

this.$refs.mytable.bodyWrapper.scrollTop =0;

https://www.jianshu.com/p/8d7f28d7bd87

表格复选框,清空选中的值

 <el-table
              ref="multipleTable"
              :data="tableData">
</el-table>
// 加到点击事件或其他事件中
this.$refs.multipleTable.clearSelection();

table列超出部分省略加悬浮提示(2.8.2新加功能)

<el-table-column :show-overflow-tooltip="true">
</el-table-column>

https://blog.csdn.net/xdhc304/article/details/80611227

表格固定表头和某一列

  • 固定表头:(给表格设置高)
<el-table :height="tableHeight"></el-table> // 可以是数字,也可以自定义数值
  • 固定某一列:(给列设置 fixed)
<el-table-column prop="name" fixed></el-table-column>

获取表格每一行的下标(用作表格序号)

<template scope="scope">
    <span v-text="scope.$index+1"></span>
</template>

https://blog.csdn.net/y1s2y3/article/details/82733179

获取每行的索引值

<el-table :row-class-name="tableRowClassName"
@row-click = "onRowClick"></el-table>
methods: {
  tableRowClassName ({row, rowIndex}) {
      //把每一行的索引放进row
      row.index = rowIndex;
  },
  onRowClick (row, event, column) {
      //行点击消除new标记
      var index = row.index;
      var deleteIndex = Array.indexOf(this.showIndexArr, index);
      if (deleteIndex != -1) {
         this.showIndexArr.splice(deleteIndex,1);  
      }
  }
}

https://www.cnblogs.com/yangyi9343/p/9295293.html

表格点击展开:

隐藏展开符号:

.el-table__expand-column .cell {
  display: none;
}

将点击事件赋值到其他地方:

<el-table ref="table">
  <el-table-column label="操作">
      <template slot-scope="props">
        <el-button type="primary" @click="handleCheck(props.row)">查看</el-button>
      </template>
  </el-table-column>
</el-table>
handleCheck(row) {
        const $table = this.$refs.table
        $table.toggleRowExpansion(row)
        $table.toggleRowSelection(row)
}

https://www.cnblogs.com/daipianpian/articles/9516088.html

单击某一行数据时选中对应的复选框

<el-table @row-click="clickRow" ref="moviesTable" :data="tableData"
          @selection-change="handleSelectionChange">
    <el-table-column type="selection" width="55"></el-table-column>
    <el-table-column prop="name" label="名称"></el-table-column>
</el-table>
clickRow(row){
     this.$refs.moviesTable.toggleRowSelection(row)
}    

https://blog.csdn.net/gongyi199393/article/details/80902845

element-ui的table列超出部分省略加悬浮提示

<el-table-column :show-overflow-tooltip="true">
</el-table-column>

https://blog.csdn.net/xdhc304/article/details/80611227

Element UI的表格双击之后可编辑(没试过)

https://segmentfault.com/q/1010000014417142/a-1020000014418134

elementUi table根据不同状态变成不同颜色的背景色

<el-table :row-class-name="tableColor"></el-table>
tableColor({row, rowIndex}) {
      if(rowIndex == rowIndex){
            if(row.status == 1){
                  return 'tableColor-blue'
            }else if(row.status == 2){
                  return 'tableColor-yellow'
            }else if(row.status == 3){
                  return 'tableColor-violet'
            }else if(row.status == 4){
                  return 'tableColor-green'
            }
      }
}

http://www.czl.mobi/a/qianduankuangjia/Vue/112.html

表格展开行报错

报错: [Vue warn]: Error in callback for watcher "data": "Error: if there's nested data, rowKey is required."

  • 表面的意思是如果有嵌套的数据,需要在el-table标签中新增row-key字段
  当tableData数据格式为以下形式会出现上面的报错: 
    tableData: [{
      name: '好滋好味鸡蛋仔',
      category: '江浙小吃、小吃零食',
      desc: '荷兰优质淡奶,奶香浓而不腻',
      children:[{
        name:'土鸡蛋',
        desc:'美味...'
      }]
    }]
  问题就出现在key为children名字上,如果换成其他命名不会报错。。。。 
  如下可使用array.map函数处理下数据就可以解决问题了。。。
    let handleData = tableData.map(item => {
      return {
        name: item.name,
        category: item.category,
        desc: item.desc,
        childrens: item.children
      };
    });

https://www.cnblogs.com/changxue/p/10719454.html

表格中禁用部分复选框

<el-table-column type="selection" :selectable="selectable"></el-table-column>
methods: {
  selectable(row, index) {
    if (row.status == 1) {
      return true
    } else {
      return false
    }
  }
} 

https://www.jb51.net/article/170515.htm

编辑,新增,删除一行

  • tableData中push一条新数据(新增)
tableData.push({ fildna: '',fildtp:'',remark:''})

https://blog.csdn.net/alokka/article/details/73719371

表格数据为空时自定义显示内容

<el-table :data="tableData">
    <template slot="empty">
                <div class="noTableData">
                    暂无数据,或点击 <span @click="getMakeList(1)">“刷新”</span>
                </div>
            </template>
</el-table>

https://blog.csdn.net/m0_46627730/article/details/106034638

自定义表头内容

<el-table-column
      prop="delete"
      label="删除"
      width="120"
    >
      <template
        slot="header"
        slot-scope="{ column, $index }"
      >
        <i
          class="el-icon-delete"
          @click="clearAll"
        >
        </i>
      </template>
      <template slot-scope="scope">
        <el-button
          type=""
          @click="handleDelete(scope.row)"
        >
          删除
        </el-button>
      </template>
    </el-table-column>

https://www.cnblogs.com/wenxinsj/p/10613764.html

删除一行
<el-table :data="tableData">
     <el-table-column label="操作">
        <template slot-scope="scope">
           <el-button @click="handleDelete(scope.$index)">删除</el-button>
        </template>
     </el-table-column>
  </el-table>
handleDelete(index){ //删除行数
    this.tableData.splice(index, 1)
}

https://www.jb51.net/article/191078.htm

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,504评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,434评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,089评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,378评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,472评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,506评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,519评论 3 413
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,292评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,738评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,022评论 2 329
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,194评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,873评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,536评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,162评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,413评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,075评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,080评论 2 352

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,971评论 25 707
  • 在此特此声明:一下所有链接均来自互联网,在此记录下我的查阅学习历程,感谢各位原创作者的无私奉献 ! 技术一点一点积...
    远航的移动开发历程阅读 11,092评论 12 197
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,709评论 2 59
  • 最近把自己经营了有半年多的公司出售了。 说是出售,实际上是个并购,把大部分的股份转让给了一个土豪,事情还没有定数,...
    遠揚童鞋阅读 236评论 0 0
  • 变量,语句,函数,对象模型,节点属性和方法是重点。 设置节点内容 定义表格 函数的简写,代码优化。 tab选项卡 ...
    普丽克兹阅读 484评论 0 1