vue+iview实现分页及查询功能


Posted in Vue.js onNovember 17, 2020

vue+iview 分页及删、查功能实现,供大家参考,具体内容如下

首先要想实现分页功能必须得知道 当前页码、每页大小、总数目。

iview对分页的功能支持还是很强大的,有很多钩子函数

具体实现看后端返回的数据

<template>
 <div v-if="this.$store.state.user.userType == 0 || this.$store.state.user.userType == 1">
 <Input type="text" search enter-button placeholder="根据施工人员姓名查找" v-model="peopleName" @input="search"/>
 <Table width="100%" :columns="peopleCol" :data="peopleDat"></Table>
 <!--通过sync修饰符可以动态获取页码-->
 <Page :total="dataCount" :current.sync="current" :page-size="pageSize" show-total class="paging" @on-change="changePage"></Page>
 
 <!--该modal是删除提醒框-->
 <Modal v-model="confirmDelete" width="360">
  <p slot="header" style="color:#f60;text-align:center">
  <Icon type="ios-information-circle"></Icon>
  <span>删除确认</span>
  </p>
  <div style="text-align:center">
  <p>此操作不可恢复,确定要删除吗?</p>
  </div>
  <div slot="footer">
  <Button size="large" @click="cancelDelete">取消</Button>
  <Button type="error" size="large" @click="deleteConfirm">删除</Button>
  </div>
 </Modal>
 </div>
</template>
<script>
 export default {
 components: {
  addWorker,
  updateWorker
 },
 data () {
  return {
  selectedID:'',//删除选中的ID
  confirmDelete:false,//删除提示框
  current:1,
  isShow:false,
  selectedList:{},//选中施工人员的id值
  peopleName:'',
  dataCount:0,//总条数
  pageSize:2,//每页显示数据条数
  peopleDat: [],
  peopleCol: [
   {
   title: '操作',
   key: 'action',
   width: 120,
   render: (h, params) => {
    return h('Button', {
     props: {
     type: 'error',
     size: 'small'
     },
     on:{
     click: ()=>{
      this.confirmDelete=true
      this.delete(params.row.peopleID)
     }
     }
    }, '删除')
   }
   }
  ],
  }
 },
 mounted() {
  this.getWorkerList()
 },
 methods:{
  getWorkerList(){//组件初始化显示的数据
  const currPage=1
  const pageSize=this.pageSize
  //下面是向后台发送请求
  setTimeout(async()=>{
   const r=await getWorkers(currPage,pageSize)
   if(r.data.success){
   this.dataCount=r.data.list.count//初始化总条数
   this.peopleDat=r.data.list.data//默认页列表渲染数据
   console.log(r)
   }
  })
  },
  changePage(index){//页码改变触发的函数
  //index当前页码
  const currPage=index
  const pageSize=this.pageSize
  setTimeout(async ()=>{
   const r=await changePage(currPage,pageSize)
   if(r.data.success){
   this.peopleDat=r.data.list.data//当前页列表数据
   }
  })
  },
  search(){
  const peopleName=this.peopleName
  const pageSize=this.pageSize
  setTimeout(async()=>{
   const r=await search(peopleName,pageSize)
   if(r.data.success){
   this.peopleDat=r.data.list.data
   this.dataCount=r.data.list.count//如果不设置总条数那么当精确查询时每页都会有数据这得看后端返回的数据有没有这些数据
   } else {
   this.$Message.warning('查询失败!')
   }
  })
  },
  delete(peopleID){
  this.selectedID=peopleID
  },
  deleteConfirm(){
  const id=this.selectedID
  setTimeout(async ()=>{
   const r=await deleteWorker(id)
   if(r.data.success){
   //这里做的一个功能是当你删除某页数据后立即刷新当前页的数据
   this.changePage(this.current)//更新当前页码的数据
   this.$Message.success('删除成功!')
   } else{
   this.$Message.warning('删除失败!')
   }
  })
  this.confirmDelete=false
  },
  cancelDelete(){
  this.confirmDelete=false
  this.$Message.info('你取消了删除操作')
  }
 }
 }
</script>
<style scoped>
 .paging{
 float:left;
 margin-top:10px;
 }
</style>

关于vue.js的学习教程,请大家点击专题vue.js组件学习教程、Vue.js前端组件学习教程进行学习。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Vue.js 相关文章推荐
vue watch监控对象的简单方法示例
Jan 07 Vue.js
Vue中引入svg图标的两种方式
Jan 14 Vue.js
vue实现简易计算器功能
Jan 20 Vue.js
vue form表单post请求结合Servlet实现文件上传功能
Jan 22 Vue.js
vue穿梭框实现上下移动
Jan 29 Vue.js
vue使用lodop打印控件实现浏览器兼容打印的方法
Feb 07 Vue.js
如何在 Vue 中使用 JSX
Feb 14 Vue.js
基于vue-simple-uploader封装文件分片上传、秒传及断点续传的全局上传插件功能
Feb 23 Vue.js
vue3.0 项目搭建和使用流程
Mar 04 Vue.js
vue实现无缝轮播效果(跑马灯)
May 14 Vue.js
Vue实现tab导航栏并支持左右滑动功能
Jun 28 Vue.js
el-table-column 内容不自动换行的解决方法
Aug 14 Vue.js
vue中音频wavesurfer.js的使用方法
Feb 20 #Vue.js
vue使用vant中的checkbox实现全选功能
Nov 17 #Vue.js
vue+vant实现购物车全选和反选功能
Nov 17 #Vue.js
在vue中通过render函数给子组件设置ref操作
Nov 17 #Vue.js
vue+iview分页组件的封装
Nov 17 #Vue.js
快速解决vue2+vue-cli3项目ie兼容的问题
Nov 17 #Vue.js
vue中echarts的用法及与elementui-select的协同绑定操作
Nov 17 #Vue.js
You might like
php ios推送(代码)
2013/07/01 PHP
php下载文件源代码(强制任意文件格式下载)
2014/05/09 PHP
php三元运算符知识汇总
2015/07/02 PHP
Laravel访问出错提示:`Warning: require(/vendor/autoload.php): failed to open stream: No such file or di解决方法
2019/04/02 PHP
PHP如何通过date() 函数格式化显示时间
2020/11/13 PHP
数理公式,也可以这么唯美
2021/03/10 无线电
引用外部js乱码问题分析及解决方案
2013/04/12 Javascript
JavaScript四种调用模式和this示例介绍
2014/01/02 Javascript
JavaScript网页定位详解
2014/01/13 Javascript
JS HTML5实现拖拽移动列表效果
2020/08/27 Javascript
20分钟打造属于你的Bootstrap站点
2016/07/27 Javascript
点击页面任何位置隐藏div的实现方法
2016/09/05 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
jQuery EasyUi 验证功能实例解析
2017/01/06 Javascript
使用Bootstrap打造特色进度条效果
2017/05/02 Javascript
React Native预设占位placeholder的使用
2017/09/28 Javascript
Vue-resource拦截器判断token失效跳转的实例
2017/10/27 Javascript
微信小程序里引入SVG矢量图标的方法
2019/09/20 Javascript
Vue实现购物车实例代码两则
2020/05/30 Javascript
[47:48]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第三局
2016/02/28 DOTA
python中装饰器级连的使用方法示例
2017/09/29 Python
Python数据结构与算法之字典树实现方法示例
2017/12/13 Python
python实现协同过滤推荐算法完整代码示例
2017/12/15 Python
Python实现的读取电脑硬件信息功能示例
2018/05/30 Python
python的debug实用工具 pdb详解
2019/07/12 Python
使用python快速实现不同机器间文件夹共享方式
2019/12/22 Python
flask框架自定义url转换器操作详解
2020/01/25 Python
python自动化unittest yaml使用过程解析
2020/02/03 Python
Python使用docx模块实现刷题功能代码
2020/02/13 Python
python实现猜拳游戏
2020/03/04 Python
css3实现小箭头各种图形效果
2020/07/08 HTML / CSS
HTML5中indexedDB 数据库的使用实例
2017/05/11 HTML / CSS
如何安装ruby on rails
2014/02/09 面试题
小学生竞选班干部演讲稿
2014/04/24 职场文书
销售经理岗位职责
2015/01/31 职场文书
Python Django / Flask如何使用Elasticsearch
2022/04/19 Python