当前位置:首页 > VUE

vue element实现表格

2026-03-07 18:58:40VUE

Vue Element 实现表格的方法

安装 Element UI

确保项目已安装 Vue 和 Element UI。若未安装,可以通过以下命令安装:

npm install element-ui

在 main.js 中引入 Element UI:

import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.use(ElementUI);

基本表格实现

使用 el-table 组件实现基础表格。以下是一个简单示例:

<template>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column prop="date" label="日期" width="180"></el-table-column>
    <el-table-column prop="name" label="姓名" width="180"></el-table-column>
    <el-table-column prop="address" label="地址"></el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { date: '2023-01-01', name: '张三', address: '北京市' },
        { date: '2023-01-02', name: '李四', address: '上海市' },
        { date: '2023-01-03', name: '王五', address: '广州市' }
      ]
    };
  }
};
</script>

表格排序

通过 sortable 属性实现列排序:

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

表格筛选

使用 filtersfilter-method 实现筛选功能:

<el-table-column prop="name" label="姓名" :filters="[
  { text: '张三', value: '张三' },
  { text: '李四', value: '李四' }
]" :filter-method="filterHandler"></el-table-column>

在 methods 中定义筛选方法:

methods: {
  filterHandler(value, row) {
    return row.name === value;
  }
}

表格分页

结合 el-pagination 实现分页功能:

<el-table :data="currentPageData" style="width: 100%">
  <!-- 表格列定义 -->
</el-table>
<el-pagination
  @size-change="handleSizeChange"
  @current-change="handleCurrentChange"
  :current-page="currentPage"
  :page-sizes="[10, 20, 30, 40]"
  :page-size="pageSize"
  layout="total, sizes, prev, pager, next, jumper"
  :total="tableData.length">
</el-pagination>

在 data 和 methods 中定义分页逻辑:

data() {
  return {
    currentPage: 1,
    pageSize: 10,
    tableData: [...],
    currentPageData: []
  };
},
methods: {
  handleSizeChange(val) {
    this.pageSize = val;
    this.updateCurrentPageData();
  },
  handleCurrentChange(val) {
    this.currentPage = val;
    this.updateCurrentPageData();
  },
  updateCurrentPageData() {
    const start = (this.currentPage - 1) * this.pageSize;
    const end = start + this.pageSize;
    this.currentPageData = this.tableData.slice(start, end);
  }
}

表格行编辑

通过作用域插槽实现行内编辑功能:

<el-table-column label="操作">
  <template slot-scope="scope">
    <el-button @click="handleEdit(scope.row)" size="mini">编辑</el-button>
  </template>
</el-table-column>

在 methods 中定义编辑方法:

methods: {
  handleEdit(row) {
    // 编辑逻辑
  }
}

表格多选

通过 type="selection" 实现多选功能:

<el-table :data="tableData" @selection-change="handleSelectionChange">
  <el-table-column type="selection" width="55"></el-table-column>
  <!-- 其他列 -->
</el-table>

在 methods 中处理选中项:

methods: {
  handleSelectionChange(val) {
    this.selectedRows = val;
  }
}

表格树形数据

使用 tree-propsrow-key 实现树形表格:

<el-table
  :data="treeData"
  row-key="id"
  :tree-props="{children: 'children', hasChildren: 'hasChildren'}">
  <el-table-column prop="label" label="名称"></el-table-column>
</el-table>

表格自定义样式

通过 header-cell-stylecell-style 自定义表格样式:

vue element实现表格

<el-table
  :data="tableData"
  :header-cell-style="{background: '#f5f7fa', color: '#606266'}"
  :cell-style="{padding: '8px 0'}">
</el-table>

标签: 表格vue
分享给朋友:

相关文章

vue全选实现

vue全选实现

Vue 全选实现方法 在 Vue 中实现全选功能通常涉及数据绑定和事件处理。以下是几种常见的实现方式: 基础实现方式 <template> <div> <i…

vue实现图库

vue实现图库

Vue 实现图库的基本方法 使用 Vue 实现图库功能可以通过多种方式完成,以下是一些常见的方法和实现步骤。 使用 Vue 和第三方库(如 Vue Gallery) 安装 vue-gallery 或…

vue广告实现

vue广告实现

Vue 广告实现方法 在 Vue 项目中实现广告功能可以通过多种方式完成,具体取决于广告类型和需求。以下是几种常见的实现方法: 使用第三方广告平台 许多广告平台如 Google AdSense、百…

vue实现switch

vue实现switch

Vue 实现 Switch 开关组件 在 Vue 中实现 Switch 开关组件可以通过自定义组件或使用现有 UI 库完成。以下是几种常见实现方式: 自定义 Switch 组件 创建一个基础 Sw…

vue实现删除

vue实现删除

Vue 实现删除功能的方法 在 Vue 中实现删除功能通常涉及以下几个步骤: 数据绑定与列表渲染 使用 v-for 指令渲染列表数据,并为每个项绑定唯一标识符(如 id)。例如: <ul&g…

vue实现剪辑

vue实现剪辑

Vue 实现视频剪辑功能 在Vue中实现视频剪辑功能通常需要结合HTML5的<video>元素和第三方库(如FFmpeg.js或Video.js)。以下是几种常见的实现方法: 使用FFm…