二:views/AboutView.vue

85 阅读1分钟
  <!-- 关键是对总数据的截取 tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize) -->
  <div>
    <el-button type="success" @click="exportExcel">导出</el-button>

    <el-table
      :data="tableData.slice((currentPage - 1) * pageSize, currentPage * pageSize)"
      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>
    <!-- 分页器 -->
    <div class="block" style="margin-top: 15px">
      <el-pagination
        align="center"
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
        :current-page="currentPage"
        :page-sizes="[1, 5, 10, 20]"
        :page-size="pageSize"
        layout="total, sizes, prev, pager, next, jumper"
        :total="tableData.length"
      >
      </el-pagination>
    </div>
  </div>
</template> 
<script>
import * as XLSX from 'xlsx'
import FileSaver from 'file-saver'
export default {
  name: "elementui",
  data() {
    return {
      name: "elementUi",
      tableData: [
        {
          date: "1",
          name: "第一页",
          address: "上海市普陀区金沙江路 1518 弄",
        },
        {
          date: "2",
          name: "第二页",
          address: "上海市普陀区金沙江路 1517 弄",
        },
        {
          date: "3",
          name: "第三页",
          address: "上海市普陀区金沙江路 1519 弄",
        },
        {
          date: "4",
          name: "第四页",
          address: "上海市普陀区金沙江路 1516 弄",
        },
        {
          date: "5",
          name: "第五页",
          address: "上海市普陀区金沙江路 1519 弄",
        },
        {
          date: "6",
          name: "第六页",
          address: "上海市普陀区金沙江路 1516 弄",
        },
        {
          date: "7",
          name: "第一页",
          address: "上海市普陀区金沙江路 1518 弄",
        },
        {
          date: "8",
          name: "第二页",
          address: "上海市普陀区金沙江路 1517 弄",
        },
        {
          date: "9",
          name: "第三页",
          address: "上海市普陀区金沙江路 1519 弄",
        }
      ],
      currentPage: 1, // 当前页码
      total: 20, // 总条数
      pageSize: 2, // 每页的数据条数
    };
  },
  methods:{
    //分页导出
    exportExcel(){
      //导出那个表格的数据
      let ws = XLSX.utils.json_to_sheet(this.tableData)
      let wb = XLSX.utils.book_new()
      XLSX.utils.book_append_sheet(wb,ws)
      return XLSX.writeFile(wb,Math.random()+'.xlsx')
    },
    //每页条数改变时触发 选择一页显示多少行
    handleSizeChange(val){
      this.currentPage = 1
      this.pageSize = val
    },
    //当前页改变时触发 跳转其他页
    handleCurrentChange(val){
      this.currentPage = val
    }
  }
};
</script>