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 相关文章推荐
深入了解Vue3模板编译原理
Nov 19 Vue.js
Vue使用Element实现增删改查+打包的步骤
Nov 25 Vue.js
如何正确解决VuePress本地访问出现资源报错404的问题
Dec 03 Vue.js
vue基于Echarts的拖拽数据可视化功能实现
Dec 04 Vue.js
vue 通过base64实现图片下载功能
Dec 19 Vue.js
详解vue之自行实现派发与广播(dispatch与broadcast)
Jan 19 Vue.js
详解实现vue的数据响应式原理
Jan 20 Vue.js
Vue实现圆环进度条的示例
Feb 06 Vue.js
原生JS封装vue Tab切换效果
Apr 28 Vue.js
vue实现无缝轮播效果(跑马灯)
May 14 Vue.js
vue Element-ui表格实现树形结构表格
Jun 07 Vue.js
一起来看看Vue的核心原理剖析
Mar 24 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
php4的session功能评述(三)
2006/10/09 PHP
PHP中使用gettext来支持多语言的方法
2011/05/02 PHP
ThinkPHP中RBAC类的四种用法分析
2014/11/24 PHP
Laravel 5框架学习之用户认证
2015/04/09 PHP
php无序树实现方法
2015/07/28 PHP
CI框架的安全性分析
2016/05/18 PHP
Laravel框架用户登陆身份验证实现方法详解
2017/09/14 PHP
纯js实现的论坛常用的运行代码的效果
2008/07/15 Javascript
js 鼠标拖动对象 可让任何div实现拖动效果
2009/11/09 Javascript
灵活应用js调试技巧解决样式问题的步骤分享
2012/03/15 Javascript
如何在node的express中使用socket.io
2014/12/15 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
详解AngularJS中module模块的导入导出
2015/12/10 Javascript
JavaScript中的遍历详解(多种遍历)
2017/04/07 Javascript
jQuery自定义元素右键点击事件(实现案例)
2017/04/28 jQuery
解决vue-cli + webpack 新建项目出错的问题
2018/03/20 Javascript
详解开发react应用最好用的脚手架 create-react-app
2018/04/24 Javascript
Vue.js更改调试地址端口号的实例
2018/09/19 Javascript
jquery.pager.js实现分页效果
2019/07/29 jQuery
vue 组件间的通信之子组件向父组件传值的方式
2020/07/29 Javascript
python 表达式和语句及for、while循环练习实例
2017/07/07 Python
OpenCV+python手势识别框架和实例讲解
2018/08/03 Python
python合并已经存在的sheet数据到新sheet的方法
2018/12/11 Python
python多任务及返回值的处理方法
2019/01/22 Python
python Pandas库基础分析之时间序列的处理详解
2019/07/13 Python
Python 转换RGB颜色值的示例代码
2019/10/13 Python
Django实现CAS+OAuth2的方法示例
2019/10/30 Python
解决TensorFlow调用Keras库函数存在的问题
2020/07/06 Python
python中如何打包用户自定义模块
2020/09/23 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
美国最大的在线寄售和旧货店:Swap.com
2018/08/27 全球购物
统计员岗位职责
2013/11/14 职场文书
房屋买卖定金协议书
2016/03/21 职场文书
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS
OpenCV实现反阈值二值化
2021/11/17 Java/Android
Java 多线程协作作业之信号同步
2022/05/11 Java/Android