vue + elementui:分页查询,el-pagination,纯前端分页

效果:
在这里插入图片描述
新建pages.js文件,文件内容:

// 数据分页
function pageData (total, pageRow, currentPage, allTableDataList) {
  var dealData = []
  var onePageList = []
  var i = 1
  allTableDataList.forEach((val, index) => {
    onePageList.push(val)
    i++
    if (i > pageRow || index === allTableDataList.length - 1) {
      dealData.push(onePageList)
      i = 1
      onePageList = []
    }
  })
  return dealData[currentPage - 1]
}
export {pageData}

使用:直接引入pages.js中pageData,直接使用

<template>
  <div class="main-container">
    <!-- 表格 -->
    <el-table :data="tableData">
      <el-table-column label="摄像头ID" prop="cameraId" width="200" show-overflow-tooltip/>
      <el-table-column label="摄像头名称" prop="cameraName" width="250" show-overflow-tooltip/>
      <el-table-column label="rtsp地址" min-width="400" prop="rtspAddr" show-overflow-tooltip/>
    </el-table>
    <!-- 分页 -->
    <div class="block">
      <el-pagination
        :page-size="page.pageSize"
        :current-page="page.pageNum"
        :total="page.total"
        :page-sizes="page.pageSizeList"
        layout=" total, sizes, prev, pager, next, jumper"
        background
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"/>
    </div>
  </div>
</template>

<script>
import { pageData } from '@/utils/pages'
import { getCameraList } from '@/api/base_setting/cameraManager'
export default {
  name: 'CameraManager',
  data () {
    return {
      // 表格分页展示数据
      tableData: [],
      // 所有数据
      tableDataAll:[],
      // 分页
      page: {
        pageNum: 1,
        pageSize: 15,
        pageSizeList: [15, 30, 50, 100],
        total: 0
      }
    }
  },
  created () {
    this.getTableList()
  },
  methods: {
    // 每页条数更改
    handleSizeChange (val) {
      this.page.pageSize = val
      this.tableData = pageData(this.page.total, this.page.pageSize, this.page.pageNum, this.tableDataAll)
    },
    // 页数更改
    handleCurrentChange (val) {
      this.page.pageNum = val
      this.tableData = pageData(this.page.total, this.page.pageSize, this.page.pageNum, this.tableDataAll)
    },
    // 获取表格数据
    getTableList () {
      this.page.pageNum = 1
      getCameraList().then(res => {
        this.tableDataAll = res.data
        this.page.total = this.tableDataAll.length
        this.tableData = pageData(this.page.total, this.page.pageSize, this.page.pageNum, this.tableDataAll)
      })
    }
  }
}
</script>

<style scoped>
/* 分页 */
.block{
    width: 100%;
    text-align:center;
    margin-top:20px;
  }
</style>

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值