vue实现分页

第一步

页面添加分页控件

    <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>

@size-change监听用户选择了的页面长度,改变了则触发方法,即重新计算起始以及结束显示的数据
@current-change 监听页面变化的文本输入框,修改当前的页数
:current-page 绑定实际要显示的数据,这个数据是从计算属性方法中把全部数据截取出来的数据
:page-sizes="[10, 20, 30, 40]"确定下拉框显示的每页显示数据的条数
:page-size 绑定现在页的数据
layout="total, sizes, prev, pager, next, jumper"设置当前控件可以使用的功能total总页数, sizes每页显示的条数, prev前一页, pager当前页数, next下一页, jumper跳到第几页

第二步

添加相应的方法

// 分页相关计算属性
const currentData = computed(() => {const startIndex = (currentPage.value - 1) * pageSize.valueconst endIndex = startIndex + pageSize.valuereturn tableData.value.slice(startIndex, endIndex)
})// 处理每页显示条数变化
const handleSizeChange = (val) => {pageSize.value = val
}// 处理当前页码变化
const handleCurrentChange = (val) => {currentPage.value = val
}

定好所需的变量
//全局保存编辑的行号
const globalIndex = ref(-1)//
const name = ref(‘’)
const currentPage = ref(1)
const pageSize = ref(10)

全部代码:

<template ><div style="padding: 10px"><el-input style="width: 300px" placeholder="请输入名称..." v-model="name" clearable></el-input><el-button type="primary" @click="search" style="margin-left: 5px">查询数据</el-button><el-button type="primary" @click="handleAdd">新增数据</el-button><div style="margin: 10px 0"><el-table :data="currentData" border style="width: 100%"><el-table-column prop="date" label="日期" /><el-table-column prop="type" label="报警程度" /><el-table-column prop="errortype" label="报警类别" /><el-table-column prop="groupid" label="所属设备组" /><el-table-column prop="detail" label="报警信息" /><el-table-column prop="solvetime" label="解决时间" /><el-table-column prop="solveid" label="解决人" /><el-table-column label="操作"><template #default="scope"><el-button link type="primary" size="small" @click="handleEdit(scope.row, scope.$index)">编辑</el-button><el-button link type="danger" size="small" @click.prevent="remove(scope.$index)">删除</el-button></template></el-table-column></el-table></div><!--弹窗--><el-dialog v-model="dialogFormVisible" title="信息" width="40%"><el-form :model="form" label-width="100px" style="padding-right:30px "><el-form-item label="日期"><el-input v-model="form.date" autocomplete="off" /></el-form-item><el-form-item label="姓名"><el-input v-model="form.name" autocomplete="off" /></el-form-item><el-form-item label="地址"><el-input v-model="form.address" autocomplete="off" /></el-form-item></el-form><template #footer><span class="dialog-footer"><el-button @click="dialogFormVisible = false">取消</el-button><el-button type="primary" @click="save">确认</el-button></span></template></el-dialog><!-- 分页组件 --><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></div>
</template><script lang="ts" setup>import { reactive, ref, computed, onMounted } from "vue";
import { getErrors } from '@/api/baojing'
const fetchData = () => {getErrors().then((response) => {// 在这里处理返回的数据JSON.parse()tableData.value = JSON.parse(JSON.stringify(response.data));console.log(tableData);// console.log(data.value);//获取后端数据成功// // Clear previous data// state0Data.value = [];// state1Data.value = [];// state2Data.value = [];// data.value.forEach(item => {//   switch (item.state) {//     case 0://       state0Data.value.push(item);//       break;//     case 1://       state1Data.value.push(item);//       break;//     case 2://       state2Data.value.push(item);//       break;//   }// });// state0.value = state0Data.value.length;// state1.value = state1Data.value.length;// state2.value = state2Data.value.length;// state0.value = state0Data.value.length;// console.log(state0Data.value);// console.log(state1Data.value);// console.log(state2Data.value);});
};onMounted(() => {fetchData(); // 在组件挂载后发送请求并获取数据
});
let tableDatas = ref([{date: '2016-05-03',type: '故障',errortype: '温度',groupid: 123,detail: '设备组2的电流异常',solvetime: '2018-06-03',solveid: 1,},{date: '2016-05-03',type: '报警',errortype: '温度',groupid: 123,detail: '设备组2的温度异常',solvetime: '2018-06-03',solveid: 1,},{date: '2016-05-03',type: '解决',errortype: '温度',groupid: 123,detail: '设备组2的电流异常',solvetime: '2018-06-03',solveid: 1,},{date: '2016-05-03',type: '报警',groupid: 123,errortype: '温度',detail: '设备组2的温度异常',solvetime: '2018-06-03',solveid: 1,},])
let tableData = ref([{date: '2016-05-03',name: 'Jarry',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-02',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-03',name: 'Jarry',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-02',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-03',name: 'Jarry',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-02',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-03',name: 'Jarry',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-02',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-03',name: 'Jarry',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-02',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-03',name: 'Jarry',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-02',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-03',name: 'Jarry',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-02',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-03',name: 'Jarry',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-02',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-03',name: 'Jarry',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-02',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-03',name: 'Jarry',address: 'No. 189, Grove St, Los Angeles',},{date: '2016-05-02',name: 'Tom',address: 'No. 189, Grove St, Los Angeles',},
])let dialogFormVisible = ref(false)let form = reactive({date: "",name: "",address: "",})
//全局保存编辑的行号
const globalIndex = ref(-1)
const name = ref('')
const currentPage = ref(1)
const pageSize = ref(10)//新增数据 设置新的空的绑值对象 打开弹窗
const handleAdd = () => {//打开弹窗dialogFormVisible.value = true
}//保存数据,把数据插入到tableData中,并刷新页面,弹窗关闭
const save = () => {if (globalIndex.value >= 0) {//表示编辑tableData.value[globalIndex.value] = form//还原回去globalIndex.value = -1} else {//新增tableData.value.push(form)}dialogFormVisible.value = false
}//编辑数据 先赋值到表单再弹窗
const handleEdit = (row, index) => {const newObj = Object.assign({}, row)form = reactive(newObj)//把当前编辑的行号赋值给全局保存的行号globalIndex.value = indexconsole.log(globalIndex.value)dialogFormVisible.value = true
}//删除数据 从index位置开始,删除一行即可
const remove = (index) => {tableData.value.splice(index, 1)
}//查询数据
const search = () => {tableData.value = tableData.value.filter(v => v.name.includes(name.value))
}// 分页相关计算属性
const currentData = computed(() => {const startIndex = (currentPage.value - 1) * pageSize.valueconst endIndex = startIndex + pageSize.valuereturn tableData.value.slice(startIndex, endIndex)
})// 处理每页显示条数变化
const handleSizeChange = (val) => {pageSize.value = val
}// 处理当前页码变化
const handleCurrentChange = (val) => {currentPage.value = val
}</script>

我正在修改我的页面所以出现列属性不对应的情况,请忽略

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/111765.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

idea Java代码格式化规范

文章目录 引入基础知识代码模板idea模板eclipse模板1.安装插件2.生成配置文件3.导入配置文件 附录一&#xff1a;xml配置项说明附录二&#xff1a;赠送 引入 最近在公司开发中&#xff0c;遇到了一点小问题&#xff0c;组内各同事的格式化规范不一致。一来导致代码样式并不统一…

Polars库的常见用法总结

Polars是一个基于Rust语言的数据操作和分析库&#xff0c;专为大型数据集和高性能计算而设计。它提供了类似于pandas的API&#xff0c;但在性能方面更加强大。 以下是Polars库的一些常见用法&#xff1a; 导入Polars库&#xff1a; import polars as pl读取数据&#xff1a;…

【RealTek sdk-3.4.14b】RTL8812F 5G WiFi ETSI认证增加144~165信道支持修改

SDK说明 ** Gateway/AP firmware v3.4.14b – Aug 26, 2019**  Wireless LAN driver changes as:  Refine WiFi Stability and Performance  Add 8812F MU-MIMO  Add 97G/8812F multiple mac-clone  Add 97G 2T3R antenna diversity  Fix 97G/8812F/8814B MP issu…

【Linux学习笔记】常用命令汇总

sed https://mp.weixin.qq.com/s/PxaesXU7nkmYNCxIQ1ZHfw sed是一个强大的流式文本编辑器&#xff0c;它可以在读取文本时进行修改并输出&#xff0c;支持各种复杂的字符串替换、内容删除、行插入等操作。 sed s/old_string/new_string/g test.txt > new_test.txts是sed命令…

QCC51XX-QCC30XX系列开发教程(实战篇) 之 12.1-空间音频相关模块的概述

查看全部教程开发请点击:全网最全-QCC51xx-QCC30xx(TWS)系列从入门到精通开发教程汇总(持续更新中) ==================================================================== 版权归作者所有,未经允许,请勿转载。 ==========================================

从零开始搭建第一个django项目

目录 配置环境创建 Django 项目和 APP项目组成  ‍子目录文件组成应用文件组成 配置 settings.py启动项目 数据表创建models.pyDjango-models的常用字段和常用配置 Django-admin 引入admin后台和管理员外键views.pyurls.pypostman接口测试 QuerySetInstance功能APIView 的概念…

线程池在项目中的使用

1.runAsync执行完后无返回值 package com.search.thread; import java.util.concurrent.*; public class ThreadTest {public static ExecutorService executor Executors.newFixedThreadPool(10);public static void main(String[] args) throws ExecutionException, Interr…

[架构之路-240]:目标系统 - 纵向分层 - 应用层 - 应用层协议与业务应用程序的多样化,与大自然生物的丰富多彩,异曲同工

目录 前言&#xff1a; - 倒金子塔结构 - 大自然的组成 一、应用层在计算机系统中的位置 1.1 计算机应用程序的位置 1.1.1 业务应用程序概述 1.1.2 应用程序的分类 - 按照计算机作用范围 1.1.3 业务应用程序分类 - 按照行业分类 1.2 网络应用协议的位置 1.2.1 网络协…

django建站过程(1)

django建站过程&#xff08;1&#xff09; 使用pycharm创建过程运行项目创建数据库创建超级用户登录生成的后台&#xff1a;界面本地化 准备以django,bootstrap来做一个过程记录&#xff0c;文章主要阐述过程的细节。 使用pycharm创建过程 创建项目“schoolapps”&#xff0c;…

使用EasyExcel实现Excel导入导出

介绍 EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。 他能让你在不用考虑性能、内存的等因素的情况下&#xff0c;快速完成Excel的读、写等功能。 快速&#xff1a;快速的读取excel中的数据。 简洁&#xff1a;映射excel和实体类&#xff0c;让…

【Java异常】什么是异常,Java中如何处理异常?

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ Java异常处理 1. 了解异常&#xff1a;2. 异常…

探索未来的视觉革命:卷积神经网络的崭新时代(一)

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

leetcode 392. 判断子序列、115. 不同的子序列

392. 判断子序列 给定字符串 s 和 t &#xff0c;判断 s 是否为 t 的子序列。 字符串的一个子序列是原始字符串删除一些&#xff08;也可以不删除&#xff09;字符而不改变剩余字符相对位置形成的新字符串。&#xff08;例如&#xff0c;"ace"是"abcde"的…

unigui添加ssl(https)访问的方法

首先到腾讯云或者阿里云去申请免费的证书&#xff0c;前提是在该服务商那有申请过域名&#xff0c;怎么找出这个界面&#xff1f;网页顶部一般都有个搜索框&#xff0c;输入【证书】或者【SSL】就能看到了&#xff0c;然后点击申请免费证书&#xff0c;把解析信息填入自己的域名…

Allegro两种自动对齐方法

本法基于cadence的allegro可以在PCB设计运用&#xff0c;使用方法如下&#xff1a; 方式一&#xff1a;allegro软件的自动对齐——使用过程繁琐一点 1.在“setup”下拉选项中选择“application mode”&#xff0c;在副选项中选择“placement edit”&#xff1b; 2.在“Find”…

Mac电脑无法识别移动硬盘怎么办?

很多人都喜欢在Mac电脑上办公、学习&#xff0c;但有时我们将移动硬盘连接Mac电脑时&#xff0c;却会发现电脑无法识别移动硬盘。那么&#xff0c;Mac电脑无法识别移动硬盘怎么办呢&#xff1f; Mac无法识别移动硬盘的原因 导致Mac不识别移动硬盘的原因有很多&#xff0c;你可…

【Andriod】adb调试安卓手机时连接真机或模拟器的3种方法,你知道么?

一.adb是什么&#xff1f; adb 称之为&#xff1a;Android 调试桥 &#xff08;Android Debug Bridge &#xff09;是一种允许模拟器或已连接的 Android 设备进行通信的命令行工具&#xff0c;它可为各种设备操作提供便利&#xff0c;如安装和调试应用&#xff0c;并提供对 Un…

软考-网络安全体系与网络安全模型

本文为作者学习文章&#xff0c;按作者习惯写成&#xff0c;如有错误或需要追加内容请留言&#xff08;不喜勿喷&#xff09; 本文为追加文章&#xff0c;后期慢慢追加 by 2023年10月 网络安全体系相关安全模型 BLP机密性模型 BLP&#xff08;Biba-格雷泽-麦克拉伦&#x…

MyBatis (where、set、foreach)标签

where标签 在上一节SQL 语句中加入了一个条件“11”&#xff0c;如果没有加入这个条件&#xff0c;那么可能就会变成下面这样一条错误的语句。 SELECT id,name,url,age,country FROM website AND name LIKE CONCAT(%,#{name},%)显然以上语句会出现 SQL 语法异常&#xff0c;但…

centos 7.9离线安装wget

1.下载安装包 登录到wget官网上下载最新的wget的rpm安装包到本地 http://mirrors.163.com/centos/7/os/x86_64/Packages/ 2.上传安装包到服务器 3.安装 rpm -ivh wget-1.14-18.el7_6.1.x86_64.rpm 4.查看版本 wget -V