美文网首页
已知全部数据,前端搜索分页

已知全部数据,前端搜索分页

作者: 漠小涵 | 来源:发表于2024-01-16 17:12 被阅读0次
<template>
      <el-input v-model="searchBackEnd" clearable placeholder="请输入姓名" style="width: 200px"></el-input>
      <el-table
        border
        stripe
        ref="endpointTable"
        element-loading-text="拼命加载中"
        element-loading-spinner="el-icon-loading"
        element-loading-background="rgba(0, 0, 0, 0.8)"
        :data="endPointData.slice((currentPage - 1) * pagesize, currentPage * pagesize)"
        style="font-size: 13px;margin-top: 20px"
        :header-cell-style="{'background-color' : '#f5f7fa','color':'#000'}"
        max-height="700px"
      >
        <el-table-column
          v-for="(item, index) in pointCols"
          :key="index"
          :prop="item.prop"
          :label="item.label"
          :min-width="item.width"
          show-overflow-tooltip>
        </el-table-column>
      </el-table>
      <el-pagination
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
        :current-page="currentPage"
        :page-sizes="[10, 20, 30, 50, 100, 200, 300, 400, 500]"
        :page-size="pagesize"
        layout="sizes,prev, pager, next"
        :total="endPointData.length"
        background
        style="text-align: right; margin: 0.5rem"
      ></el-pagination>
</template>
<script>
import {debounce} from '@/utils/utils';
export default {
  data(){
    return{
        searchBackEnd: '',//搜索后端的值
       endPointData: [], //endpoint表格内容
       allPointData: [], //全部的endpoint表格内容,同上
      pointCols: [
        {
          prop: 'name',
          label: '名称',
          width: 200,
        },
        {
          prop: 'gender',
          label: '性别',
          width: 90,
        },{
          prop: 'check_time',
          label: '检查时间',
          width: 200,
        },{
          prop: 'status',
          label: '状态',
          width: 90,
        }
      ],
      currentPage: 1, //endpoints初始页
      pagesize: 10, //endpoints每页的数据
    }
  },
  watch(){
      searchBackEnd(val){
        if(val !== ""){
          this.changeDisplayTable();
        }else{
          this.endPointData = this.allPointData;
        }
        this.currentPage = 1;
    },
  },
  methods:{
        //根据搜索内容展示表格
    changeDisplayTable: debounce (
      function (){
        let allData = this.allPointData, val = this.searchBackEnd;
        this.endPointData = [];
        allData.forEach((item) => {
          if (item.name.indexOf(val) != -1 ) {
            this.endPointData.push(item);
          }
        });
      },1000),
    // --------------分页
    handleSizeChange(val) {
      this.pagesize = val;
    },
    handleCurrentChange(val) {
      this.currentPage = val;
    },
  },
}
</script>

补充debounce的具体写法

/**
 * @param {*} fn  是我们需要包装的事件回调
 * @param {*} delay 是每次推迟执行的等待时间
 */
 export function debounce(fn, delay = 1000){
    // 定时器
    let timer = null;
    // 将debounce处理结果当作函数返回
    return function() {
      // 保留调用时的this上下文,调用时传入的参数
      const context = this, args = arguments;
      // 每次事件被触发时,都去清除之前的旧定时器
      if (timer !== null) {
        clearTimeout(timer);
        timer = null;
      }
      // 设立新定时器
      timer = setTimeout(function() {
        fn.apply(context, args);
      }, delay);
    };
  };

相关文章

  • Javascript前端分页

    1、适合情形 前端分页一般用于数据量较小的情况,一次请求把数据全部从后端请求回来。 2、前端分页例子 前端分页代码...

  • 分页的实现(同步与异步)

    如果不能简单的把事情说清楚,说明你还没有完全明白 分页技术分为后端分页和前端分页。 前端分页 将数据一次性全部取出...

  • 大数据渲染解决方式

    大量数据放到select,并支持搜索 解决方式思路: 1、懒加载+分页:由前端完成分页 长列表优化,每次只加载能看...

  • vue+element实现前端逻辑分页及前端搜索功能

    后端一次获取数据前端分页 bug:vue和element实现的后台分页,当前是第二页,点击搜索,强制设置curre...

  • Mybatis数据分页

    一般数据分页的实现有两种:一种在前端分页,一种在后端分页。前端分页有些坑,数据量很大的时候,每次都要查询所有数据,...

  • Django中如何自定义分页模块

    阅读目录当数据库中数据有很多,我们通常会在前端页面做分页展示。 分页的数据可以在前端页面实现,也可以在后端实现分页...

  • Mybatis分页插件PageHelper

    在实际的项目开发中,常常需要使用到分页,分页方式分为两种:前端分页和后端分页。前端分页:一次ajax请求数据的所有...

  • 前后端分离_分页

    在分页类编写数据,展示前端实现跳转 你的数据样式 前端接收数据,展示

  • 2018-10-10:分页

    分页 真分页使用特定的sql语句,条件查询出指定内容 假分页数据全部取出,在页面分页显示 分页数据pageSize...

  • 随笔 Java分页 以及前端angularjs 中的$uib

    Javaweb 分页主要有三个方法: 1 .前端分页。(获取所有数据) 2.Java分页。(获取所有数据)(3步:...

网友评论

      本文标题:已知全部数据,前端搜索分页

      本文链接:https://www.haomeiwen.com/subject/sinmsdtx.html