vue+iview tables多个分页实现

  1. 如果一个页面有多个分页那么可以把每个page和pageSize放到一个对象中,如下:
dataList: {
    name: 'dataList', // 方便取到dataList对象
    id: null, // 如果需要通过id获取一个列表
    fun: 'getDataList', // 获取列表的方法
    total: 0,
    page: 1,
    pageSize: 10
},    
  1. tables中将dataList传递给分页事件,on-change传值时,使用$event作为第二个参数(必须是第二个)
<tables ref="tables" v-model="pdParams" :columns="tableColumns" :total="dataList.total"
        :current="dataList.page" :page-size="dataList.pageSize"
        @on-change="changePage(dataList, $event)"
        @on-page-size-change="changePageSize(dataList, $event)"  stripe></tables>
  1. 分页事件
changePage: function (obj, page) {
    this[obj.name].page = page
    this[obj.fun](obj.id)
},
changePageSize: function (obj, pageSize) {
    this[obj.name].pageSize = pageSize
    this[obj.fun](obj.id)
},
  1. 获取数据列表方法
// 可传入搜索参数
getDataList: function(param){
    let vm = this
    param = param || {}

    $http(vm, 'CFNT0001', 'query', param, (res)=>{
        vm.dataList.total = parseInt(res.total)
        vm.listParam = res.list || []
    }, vm.dataList)
},

// 通过某个id获取参数
getDataList: function(someId){
    let vm = this
    $http(vm, 'CFNT0001', 'query', {someId}, (res)=>{
        vm.dataList.total = parseInt(res.total)
        vm.listParam = res.list || []
    }, vm.dataList)
},
  1. 接口把page分页封装进去
export const $http = (vm, tradeCode, action, param, success, pageable, error)=>{
    param = param || {}
    let baseParam = pageable? { // 如果传递了分页对象就使用该对象的page和pageSize
        page: pageable.page,
        pageSize: pageable.pageSize
    }: {}
    // assign将两个对象合并成一个
    let extParam = Object.assign(baseParam, param)
    vm.$request({
        tradeCode: tradeCode,
        action: action,
        data: extParam,
        success: res=>{
            success && success(res)
        },
        error: res=>{
            error && error(res)
        }
    })
}

原文地址:https://www.cnblogs.com/codebook/p/11108280.html

时间: 2024-10-08 11:18:43

vue+iview tables多个分页实现的相关文章

vue+iview实现table和分页及与后台数据交互

最近在项目中遇到使用table分页的功能,所以分享出来给大家希望能够对大家有帮助,话不多说直接上代码 1 <template> 2 <div> 3 <Table :columns="historyColumns" :data="historyData"></Table> 4 <Page :total="dataCount" :page-size="pageSize" sho

Vue iview中的render小案例3

当我按下play.穿梭在大街小巷没什么不对.每个人都会.只是你在束缚自己.快来做个一等一的player.要求自己不能够太普通.一定必须要去做点成就 Vue iview中的render小案例 第一个数据比较好拿是对象直接.就可以,第二个是数组所以需要遍历会麻烦些 工序一道也少不了,就像下面迟早会补齐的 每天记录一点点 { title: "场馆地址", // key: "gymnasium.name" render: (h, params) => { return

webpack+vue+iview使用vue-cli脚手架搭建

1.安装nodejs环境 下载node.js.安装成功后再控制台输入 node -v 出现版本号则,安装成功. 如果没有出现 版本号 而是出现node 不是内部命令的话 需要配置一下环境变量,如果已经出现版本号,此步骤可以忽略.将安装node的路径剪切,右键我的电脑-->属性-->高级系统环境设置-->环境变量-->找到path环境变量.加上复制的node的安装路径. 2.可以在控制台在输入一下命令,查看是否已经成功的安装了npm   npm -v  如果出现版本号说明已经安装成功

VUE iview date-picker取时间范围...

x HTML <script src="//unpkg.com/vue/dist/vue.js"></script> <script src="//unpkg.com/iview/dist/iview.min.js"></script> <div id="app"> <row> <i-col span="12"> <date-picker

使用VUE+iView+.Net Core上传图片

我们直接进入主题,使用VS2017开发工具 首先要创建一个WebApi项目,创建完之后,在wwwroot文件下,创建一个文件夹 名字可以随意起  我这里呢就叫做Upload了 ok ! 然后我们再创建一个控制器 IndexController 代码如下 要知道上传图片都是通过HTTP去请求,服务端从request中读取 public class PicData { public string Msg { get; set; } } [HttpPost] public async Task<boo

使用vue iview遇到的一些问题

使用阿里巴巴图标库 下载代码 这五个文件 iconfount.css 如果导入多个文件记得把@font-face复制到里面 改成./路径 //main.js import './assets/font/iconfont.css' 可以直接使用了 <Icon custom="icon iconfont icon_dingtalk_line icon-icon_dingtalk_line" size="small" /> 注意 记得上上 icon iconf

vue+Iview+gulp 生成文档说明

1.安装npm gulp相关插件 比如:gulp.gulp-concat.gulp-htmlmin.gulp-cssmin.gulp-cheerio.gulp-clean 2. 编写gulpfile.js //获取 gulp var gulp = require('gulp'); //压缩 JS var uglify = require('gulp-uglify'); //合并文件 var concat = require('gulp-concat'); //压缩html var htmlmin

vue + iview 怎样在vue项目下添加ESLint

参考:https://segmentfault.com/a/1190000012019019?utm_source=tag-newest 使用iview框架的MenuGroup标签,vscode报红,提示如下 [eslint-plugin-vue] [vue/no-parsing-error] Parsing error:x-invalid-end-tag 这个时候,把MenuGroup标签改成menu-item标签 还有问题,继续往下看 在vue的项目里新添加ESLint 有的时候,早期的时候

利用VUE框架,实现列表分页功能

原创作品转载请注明出处 先来看一下效果图: 功能描述: 1. 点击页面序号跳转到相应页面: 2. 点击单左/单右,向后/向前跳转一个页面: 3. 点击双左/双右,直接跳转到最后一页/第一页: 3. 一次显示当前页面的前三个与后三个页面: 4. 始终显示最后一个页面: HTML: <!-- 分页开始 --> <div class="u-pages" style="margin-bottom:20px; margin-top:10px;"> &l