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 $router和$route的区别详解
Dec 02 Vue.js
vuex页面刷新导致数据丢失的解决方案
Dec 10 Vue.js
Vue——前端生成二维码的示例
Dec 19 Vue.js
vue 实现图片懒加载功能
Dec 31 Vue.js
vue 实现click同时传入事件对象和自定义参数
Jan 29 Vue.js
学习 Vue.js 遇到的那些坑
Feb 02 Vue.js
Vue包大小优化的实现(从1.72M到94K)
Feb 18 Vue.js
Vue通过懒加载提升页面响应速度
May 10 Vue.js
深入理解Vue的数据响应式
May 15 Vue.js
Vue如何实现组件间通信
May 15 Vue.js
vue3中provide && inject的使用
Jul 01 Vue.js
vue组件冲突之引用另一个组件出现组件不显示的问题
Apr 13 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
在Windows系统上安装PHP运行环境文字教程
2010/07/19 PHP
PHP和.net中des加解密的实现方法
2013/02/27 PHP
深入PHP magic quotes的详解
2013/06/17 PHP
PHP比较运算符的详细介绍
2015/09/29 PHP
javascript  Error 对象 错误处理
2008/05/18 Javascript
jquery的ajaxSubmit()异步上传图片并保存表单数据演示代码
2013/06/04 Javascript
node.js中的path.extname方法使用说明
2014/12/09 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
深入分析jQuery的ready函数是如何工作的(工作原理)
2015/12/17 Javascript
微信小程序 122100版本更新问题解决方案
2016/12/22 Javascript
bootstrap折叠调用collapse()后data-parent不生效的快速解决办法
2017/02/23 Javascript
web前端vue之vuex单独一文件使用方式实例详解
2018/01/11 Javascript
Vue多种方法实现表头和首列固定的示例代码
2018/02/02 Javascript
vue elementUI tree树形控件获取父节点ID的实例
2018/09/12 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
JavaScript实现答题评分功能页面
2020/06/24 Javascript
Python中分数的相关使用教程
2015/03/30 Python
详解python字节码
2018/02/07 Python
Python实现通讯录功能
2018/02/22 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
Python subprocess模块常见用法分析
2018/06/12 Python
Python中关键字global和nonlocal的区别详解
2018/09/03 Python
Python求离散序列导数的示例
2019/07/10 Python
python opencv 简单阈值算法的实现
2019/08/04 Python
Python 合并拼接字符串的方法
2020/07/28 Python
解决TensorFlow训练模型及保存数量限制的问题
2021/03/03 Python
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
2016/12/16 HTML / CSS
英国综合网上购物商城:The Hut
2018/07/03 全球购物
什么是抽象
2015/12/13 面试题
硕士研究生自我鉴定
2013/11/08 职场文书
三好学生个人先进事迹材料
2014/05/17 职场文书
党的群众路线教育实践活动通讯稿
2014/09/10 职场文书
公司转让协议书
2016/03/19 职场文书
市直属机关2016年主题党日活动总结
2016/04/05 职场文书
2019思想汇报范文
2019/05/21 职场文书
MySQL 使用SQL语句修改表名的实现
2021/04/07 MySQL