当前位置:首页 > VUE

vue表格预览实现

2026-01-19 14:39:34VUE

Vue 表格预览实现

使用 Element UI 的表格组件

Element UI 提供了功能丰富的表格组件,可以快速实现数据展示和预览。安装 Element UI 后,通过 el-table 组件渲染数据。

<template>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column prop="name" label="姓名"></el-table-column>
    <el-table-column prop="age" label="年龄"></el-table-column>
  </el-table>
</template>

<script>
export default {
  data() {
    return {
      tableData: [
        { name: '张三', age: 20 },
        { name: '李四', age: 22 }
      ]
    }
  }
}
</script>

自定义表格样式

通过 CSS 调整表格样式,例如边框、行高、字体等,使其更符合需求。

<style>
.el-table {
  border: 1px solid #ebeef5;
}
.el-table th {
  background-color: #f5f7fa;
}
</style>

添加分页功能

结合 el-pagination 组件实现分页功能,提升大数据量的浏览体验。

vue表格预览实现

<template>
  <div>
    <el-table :data="tableData" style="width: 100%">
      <el-table-column prop="name" label="姓名"></el-table-column>
      <el-table-column prop="age" label="年龄"></el-table-column>
    </el-table>
    <el-pagination
      @current-change="handleCurrentChange"
      :current-page="currentPage"
      :page-size="pageSize"
      layout="total, prev, pager, next"
      :total="total">
    </el-pagination>
  </div>
</template>

<script>
export default {
  data() {
    return {
      tableData: [],
      currentPage: 1,
      pageSize: 10,
      total: 0
    }
  },
  methods: {
    handleCurrentChange(val) {
      this.currentPage = val;
      this.fetchData();
    },
    fetchData() {
      // 模拟数据请求
      this.tableData = [
        { name: '张三', age: 20 },
        { name: '李四', age: 22 }
      ];
      this.total = 2;
    }
  },
  created() {
    this.fetchData();
  }
}
</script>

实现表格数据的动态加载

通过 API 请求动态加载表格数据,适用于实际项目中的数据交互。

<script>
export default {
  methods: {
    fetchData() {
      axios.get('/api/data').then(response => {
        this.tableData = response.data.list;
        this.total = response.data.total;
      });
    }
  }
}
</script>

添加表格操作列

在表格中添加操作列,例如编辑、删除按钮,增强交互性。

vue表格预览实现

<template>
  <el-table :data="tableData">
    <el-table-column prop="name" label="姓名"></el-table-column>
    <el-table-column prop="age" label="年龄"></el-table-column>
    <el-table-column label="操作">
      <template slot-scope="scope">
        <el-button @click="handleEdit(scope.row)">编辑</el-button>
        <el-button @click="handleDelete(scope.row)">删除</el-button>
      </template>
    </el-table-column>
  </el-table>
</template>

<script>
export default {
  methods: {
    handleEdit(row) {
      console.log('编辑', row);
    },
    handleDelete(row) {
      console.log('删除', row);
    }
  }
}
</script>

表格数据导出

使用第三方库如 xlsx 实现表格数据导出为 Excel 文件。

<script>
import XLSX from 'xlsx';

export default {
  methods: {
    exportToExcel() {
      const worksheet = XLSX.utils.json_to_sheet(this.tableData);
      const workbook = XLSX.utils.book_new();
      XLSX.utils.book_append_sheet(workbook, worksheet, 'Sheet1');
      XLSX.writeFile(workbook, 'data.xlsx');
    }
  }
}
</script>

表格数据的筛选和排序

通过 el-table 的内置功能实现数据的筛选和排序。

<template>
  <el-table :data="tableData" :default-sort="{prop: 'age', order: 'descending'}">
    <el-table-column prop="name" label="姓名" sortable></el-table-column>
    <el-table-column prop="age" label="年龄" sortable></el-table-column>
  </el-table>
</template>

以上方法可以根据实际需求灵活组合,实现功能完善的表格预览功能。

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

相关文章

vue实现拍照

vue实现拍照

Vue实现拍照功能 在Vue中实现拍照功能通常需要结合浏览器的MediaDevices API和Canvas元素。以下是具体实现方法: 安装依赖(可选) 如果需要更简单的封装,可以安装vue-web…

vue 简单实现

vue 简单实现

以下是 Vue 的简单实现示例,涵盖基础模板、数据绑定、方法及生命周期: 基础模板与数据绑定 <div id="app"> <p>{{ message }}</…

vue router实现分页

vue router实现分页

Vue Router 实现分页的方法 在 Vue.js 中,可以通过 Vue Router 实现分页功能,通常需要结合路由参数和动态路由匹配。以下是几种常见的实现方式: 使用查询参数实现分页 在路由…

vue实现转盘抽奖

vue实现转盘抽奖

Vue 实现转盘抽奖 基本思路 转盘抽奖的核心是通过 CSS 动画实现旋转效果,Vue 负责控制旋转逻辑和数据绑定。关键点包括转盘扇形区域的绘制、旋转动画的触发与停止、中奖结果的判定。 实现步骤 H…

vue实现登录检验

vue实现登录检验

实现登录状态检验的方法 在Vue中实现登录状态检验通常涉及前端路由守卫、Token验证以及与后端的交互。以下是几种常见的方法: 使用路由守卫进行登录验证 通过Vue Router的beforeEac…

vue 实现tab切换

vue 实现tab切换

使用动态组件实现Tab切换 在Vue中可以通过动态组件<component :is="currentTab">实现Tab切换效果。需要准备以下内容: 定义多个子组件作为Tab内容 <…