el-table用法总结

表格主要学习链接:

https://element-plus.gitee.io/zh-CN/component/table.html#table-%E6%96%B9%E6%B3%95

主要用法:

  • 表格插槽、单选、多选、固定头和列

主要用法:

1.固定表头
也就是表格超过显示页面的高度时要出现滚动条,一般要设置表头不能滚动。

 height 属性  例子height="250"

2.动态高度
一般用次方式设置固定表头一步到位

 height="calc(100vh - 180px )" 

3.固定列
当表格字段很多时或出现横向滚动条,一般操作栏要固定。
想要固定的列,添加fixed属性(可以设置左右固定)

  例如: fixed="right"

4.设置首行样式

   :header-cell-style="{
      background: '#eef1f6',
      color: '#606266',
      'text-align': 'center'
    }"

5.处理表格多选或全选

      <el-table
	    :data="tableData"
	    @selection-change="handleSelectionChange"
	  >
	      <el-table-column
	          type="selection"
	          label="全选"
	      >
	        </el-table-column>
	  </el-table>

6.表格插槽
(1)操作栏插槽
@子组件:

    <el-table-column label="操作" :align="'center'" fixed="right">
      <template #header> <el-input v-model="search"  /></template> // 自定义表头
      <template #default="scope">
        <slot name="action" :scope="scope"></slot>
      </template>
    </el-table-column>

@父组件

         <template #action="scope">
	        <el-button
	          @click="handleDelete(scope.scope.row)"
	          >删除</el-button
	        >
	     </template>

(2)默认插槽

       <el-table-column label="创建时间" prop="createTime" :align="'center'">
	      <template #default="scope">
	        {{ dayjs(scope.row.createTime).format("YYYY-MM-DD HH:mm:ss") }}
	      </template>
	    </el-table-column>

7.多级表头
数据结构比较复杂的时候,可使用多级表头来展现数据的层次关系。
只需要将el-table-column 放置于el-table-column 中,你可以实现组头。

8.单选

 <el-table
    :data="tableData"
    ref="singleTableRef"
    highlight-current-row   //点击选中颜色高亮
    @current-change="handleCurrentChange"  //执行某个动作。
 ></el-table>

清理选中的值: singleTableRef.value.setCurrentRow()
9.排序
前端一般处理单页的排序,分页的后台处理。加sortable 即可

<el-table-column prop="date" label="Date" sortable width="180" />

10.展开行

 <el-table-column type="expand"><template #default="props"></template></el-table-column> 

表格事件:

clearSelection 用于多选表格,清空用户的选择 —
getSelectionRows 返回当前选中的行
toggleRowSelection 用于多选表格,切换某一行的选中状态, 如果使用了第二个参数,则可直接设置这一行选中与否 row, selected
toggleAllSelection 用于多选表格,切换全选和全不选 —
toggleRowExpansion 用于可扩展的表格或树表格,如果某行被扩展,则切换。 使用第二个参数,您可以直接设置该行应该被扩展或折叠。 row, expanded
setCurrentRow 用于单选表格,设定某一行为选中行, 如果调用时不加参数,则会取消目前高亮行的选中状态。 row
clearSort 用于清空排序条件,数据会恢复成未排序的状态 —
clearFilter 传入由columnKey 组成的数组以清除指定列的过滤条件。 如果没有参数,清除所有过滤器 columnKeys
doLayout 对 Table 进行重新布局。 当表格可见性变化时,您可能需要调用此方法以获得正确的布局 —
sort 手动排序表格。 参数 prop 属性指定排序列,order 指定排序顺序。 prop: string, order: string
scrollTo 滚动到一组特定坐标 (options: ScrollToOptions | number, yCoord?: number)
setScrollTop 设置垂直滚动位置 top
setScrollLeft 设置水平滚动位置 left


表格图片预览:

<el-table-column label="Thumbnail" width="180">
    <template #default="scope">
        <div style="display: flex; align-items: center">
            <el-image :preview-src-list="srcList"/>
        </div>
    </template>
</el-table-column>

注:由于固定列是通过 sticky 来实现的,如果表格中含有固定列,请在图像上添加 preview-teleported 属性