本文为实战坑记录

子组件(共用的搜索组件)

<template>
<div>
    <h2>{{pdbTitle}}</h2>  
<Form ref="searchform" :model="applysearchData" :label-width="120" inline>
<FormItem :label="labelName.srch1" prop="id">
<i-input v-model="applysearchData.id"/>
</FormItem>
        // 注意:特意写一下这个select组件
        // 这个地方select status选项要在搜索的时候对绑定的值进行特殊处理(重置为 ''),不然在搜索的时候会是undefined
        <FormItem :label="labelName.srch2" prop="status">
<Select v-model="applysearchData.status">
<Option value="100">a</Option>
<Option value="200">b</Option>
<Option value="300">c</Option>
</Select>
</FormItem>
       <FormItem>
         <Button @click="searchInfo('searchform')">查询</Button>
         <Button @click="handleReset('searchform')">清除条件</Button>
       </FormItem/>
</Form>
</div>
</template>
<script>
export default {
     // 接收父组件传递过来的搜索参数
props:{
       pdbTitle:{
         type:String
       },
applysearchData:{
type:Object
}
},
watch:{
        // 注意:seletct组件的status值为undefined的时候需要把它重置为空字符串,这样搜索的时候才会成功
        // 因为此处的表单的值为父组件传递过来的,所以要在父组件中去修改status
'applysearchData.status'(newValue,oldValue){
if(newValue === undefined){
this.$emit('changeStatus')
}
},
       // 在切换页码的时候监听查询表单数据的变化,如果有变化需要把current重置为1
applysearchData:{
handler(a,b){
if(a){
this.$emit('changeCurrent')
}
},
deep:true
}
},
methods:{
        // 搜索
searchInfo(applysearchform){
this.$emit('searchInfo');
},
        // 重置,注意这里也要触发一下修改status的方法
handleReset(applysearchform){
this.$refs[applysearchform].resetFields();
this.$emit('changeStatus')
}
}
}
</script>

父组件:

<template>
   <search-form :pdbTitle="pdbTitle" :labelName="labelName" @searchInfo="searchInfo" :applysearchData="applysearchData" @changeStatus="changeStatus" @changeCurrent="changeCurrent"></search-form>
<Page :total="searchPages.total" :current="searchPages.current" :page-size="searchPages.size" show-elevator show-total @on-change="initChangePage"/>
   <Table :loading="loading" border :columns="columns" :data="tableData"/>
</template>
<script>
import searchFrom from './searchForm'
export default {
  components:{
    searchForm
  },
  data(){
    return {
      columns:[....],
      pdbTitle:'信息2',
      // 搜索表单的数据
      applysearchData:{
         id:'',
         status:'' // 为select的值,根据需求也可以给一个默认值
      },
      tableData:[],
      searchPages:{
        size:5,
        total:0,
        current:1
      }
    }
  },
  created(){
    this.searchInfo()
  },
  methods:{
     initChangePage(val){
       this.searchPages.current = val
     },
     changeCurrent(){ // 关键点,把当前也设置为1
       this.searchPages.current = 1
     },
     changeStatus(){ // 关键点,处理status
        this.applysearchData.status = ''
     },
     searchInfo(){
        // 发送请求获取数据
     } 
  }
}
</script>

iview+vue查询分页实现的更多相关文章

  1. 基于vue的分页插件

    相信大家用过很多jquery的分页插件,那这次就用一用基于vue的分页插件. 这里的环境用的是springboot 首先要引入pagehelper的jar文件,版本是1.2.3,配置文件也需要配置一下 ...

  2. 基于Vue封装分页组件

    使用Vue做双向绑定的时候,可能经常会用到分页功能 接下来我们来封装一个分页组件 先定义样式文件 pagination.css ul, li { margin: 0px; padding: 0px;} ...

  3. mysql数据库管理工具sqlyog在首选项里可以设置默认查询分页条数和字体,改写关键字大小写

    sqlyog设置一直习惯用sqlyog来管理mysql数据库,但有三个地方用得不是很爽:1.默认查询条数只有1000条经常需要勾选掉重新查询.2.自动替换关键字大小写,有时候字段名为关键字的搞成大写的 ...

  4. RDIFramework.NET 中多表关联查询分页实例

    RDIFramework.NET 中多表关联查询分页实例 RDIFramework.NET,基于.NET的快速信息化系统开发.整合框架,给用户和开发者最佳的.Net框架部署方案.该框架以SOA范式作为 ...

  5. 查询分页的几种Sql写法

    查询分页的几种Sql写法 摘自:http://www.cnblogs.com/zcttxs/archive/2012/04/01/2429151.html 1.创建测试环境,(插入100万条数据大概耗 ...

  6. MyBatis关联查询分页

    背景:单表好说,假如是MySQL的话,直接limit就行了. 对于多对多或者一对多的情况,假如分页的对象不是所有结果集,而是对一边分页,那么可以采用子查询分页,再与另外一张表关联查询,比如: sele ...

  7. Hibernate的几种查询方式-HQL,QBC,QBE,离线查询,复合查询,分页查询

    HQL查询方式 这一种我最常用,也是最喜欢用的,因为它写起来灵活直观,而且与所熟悉的SQL的语法差不太多.条件查询.分页查询.连接查询.嵌套查询,写起来与SQL语法基本一致,唯一不同的就是把表名换成了 ...

  8. lucene 查询+分页+排序

    lucene 查询+分页+排序 1.定义一个工厂类 LuceneFactory 1 import java.io.IOException; 2 3 import org.apache.lucene.a ...

  9. 动态多条件查询分页以及排序(一)--MVC与Entity Framework版url分页版

    一.前言 多条件查询分页以及排序  每个系统里都会有这个的代码 做好这块 可以大大提高开发效率  所以博主分享下自己的6个版本的 多条件查询分页以及排序 二.目前状况 不论是ado.net 还是EF ...

随机推荐

  1. 小爬爬5:scrapy介绍2

    1.scrapy:爬虫框架 -框架:集成了很多功能且具有很强通用性的一个项目模板 -如何学习框架:(重点:知道有哪些模块,会用就行) -学习框架的功能模板的具体使用. 功能:(1)异步爬取(自带buf ...

  2. fedora 安装ftp

    fedora默认不安装ftp服务(包括client程序/service程序),需要进行手动安装: yum install ftp(安装client) yum install vsftpd(安装serv ...

  3. 阿里云对象存储OSS支持版本管理特性

    阿里云对象存储OSS现已经全面支持“对象版本管理”特性.该功能适用于所有的存储类型以及区域.当Bucket启用该特性后,“对象版本管理”功能可以保护和恢复误删除.误覆盖的数据. 对象存储OSS“版本管 ...

  4. linux下安装使用MySQL 以及 python mysqldb 遇到的问题

    一.安装mysql sudo apt-get install mysql-client-core-5.5 然后会出现: ERROR 2002 (HY000): Can't connect to loc ...

  5. axios细节之绑定到原型和axios的defaults的配置属性

    把axios绑定到原型 vue开发者一套很好用的实践,一般来说,实践如果能够让大部分人都接受,会逐渐成为一个默认的标准. // 把axios配置到原型上 Vue.prototype.$axios = ...

  6. 【NS2】TCL debug (转载)

    1.使用NS2进行模拟,就不可避免的会接触TCL/OTCL和C/C++.两者配合使用.一般设置场景啊,业务流啊,都使用TCL/OTCL来编写脚 本.要进行路由实验模拟的话,同一类的实验,这些脚本基本上 ...

  7. JavaScript for循环 while循环

    循环可以将代码块执行指定的次数. JavaScript 循环 如果您希望一遍又一遍地运行相同的代码,并且每次的值都不同,那么使用循环是很方便的. 我们可以这样输出数组的值: 一般写法: documen ...

  8. PHP中__FUNCTION__与__METHOD__的区别

    你知道php中__FUNCTION__与__METHOD__的区别吗?本文通过一个小例子,为大家介绍下二者的区别,有兴趣的朋友可以参考下.   PHP中__FUNCTION__与__METHOD__的 ...

  9. uni-app拨打电话

    调起通讯页面拨打电话 https://uniapp.dcloud.io/api/system/phone?id=makephonecall 点击按钮直接拨打电话 <template> &l ...

  10. 虎牙在全球 DNS 秒级生效上的实践

    本文整理自虎牙中间件团队在 Nacos Meetup 的现场分享,阿里巴巴中间件受权发布. 这次分享的是全球 DNS 秒级生效在虎牙的实践,以及由此产生的一些思考,整体上,分为以下5各部分: 背景介绍 ...