本文实例为大家分享了vue iview实现分页功能的具体代码,供大家参考,具体内容如下
子组件
<template> ? <div style="margin-top: 30px;"> ? ? <Page ? ? ? :total="paginations.total" ? ? ? show-elevator ? ? ? show-sizer ? ? ? :page-size="paginations.pageSize" ? ? ? :show-total="paginations.showTotal" ? ? ? :page-size-opts="paginations.pageSizeOpts" ? ? ? :current="paginations.current" ? ? ? @on-change="changepage" ? ? ? @on-page-size-change="pageSizeChange" ? ? ></Page> ? </div> </template> ? <script> export default { ? name: "page", ? props: { ? ? paginations: { ? ? ? type: Object, ? ? ? default: {} ? ? } ? }, ? methods: { ? ? changepage(index) { ? ? ? this.$emit("changepage", index); ? ? }, ? ? pageSizeChange(index) { ? ? ? this.$emit("pageSizeChange",index); ? ? } ? } }; </script> ? <style> </style>
父级件
/* ?* @Author: mikey.zhaopeng? ?* @Date: 2019-09-17 10:42:28? ?* @Last Modified by: mikey.zhaopeng ?* @Last Modified time: 2019-09-20 16:06:10 ?机主流量记录 ?*/ ? <template> ? <div id="news"> ? ? <Form :model="serach_data"> ? ? ? <Row> ? ? ? ? <Col span="3"> ? ? ? ? ? <FormItem> ? ? ? ? ? ? <Input v-model="serach_data.Nickname" placeholder="姓名"></Input> ? ? ? ? ? </FormItem> ? ? ? ? </Col> ? ? ? ? <Col span="3" style="margin-left:1%;"> ? ? ? ? ? <FormItem> ? ? ? ? ? ? <Input v-model="serach_data.customerNumber" placeholder="编号"></Input> ? ? ? ? ? </FormItem> ? ? ? ? </Col> ? ? ? ? <Col span="3" style="margin-left:1%;"> ? ? ? ? ? <Button type="primary" size="default" icon="ios-search" @click="onSerach"></Button> ? ? ? ? </Col> ? ? ? </Row> ? ? </Form> ? ? <Table border :columns="columns6" :data="tableData"></Table> ? ? <pageItem ? ? ? :paginations="{...paginations}" ? ? ? @changepage="changepage" ? ? ? @pageSizeChange="pageSizeChange" ? ? /> ? </div> </template> ? <script> import pageItem from "@/common/PageItem"; import { publicMethod } from "@/common/utils/public"; import { CustomerModule } from "@/utils/api"; export default { ? name: "userInfo", ? components: { ? ? pageItem ? }, ? data() { ? ? return { ? ? ? paginations: { ? ? ? ? // 初始化信息总条数 ? ? ? ? total: 15, ? ? ? ? // 每页显示多少条 ? ? ? ? pageSize: 15, ? ? ? ? // 每页条数切换的配置 ? ? ? ? pageSizeOpts: [15, 30, 45, 60, 75], ? ? ? ? current: 1, //当前位于哪页 ? ? ? ? showTotal: true ? ? ? }, ? ? ? serach_data: { ? ? ? ? Nickname: "", //昵称 ? ? ? ? customerNumber: "" //用户编号 ? ? ? }, ? ? ? columns6: [ ? ? ? ? { ? ? ? ? ? title: "编号", ? ? ? ? ? key: "Id", ? ? ? ? ? width: 100 ? ? ? ? }, ? ? ? ? { ? ? ? ? ? title: "昵称", ? ? ? ? ? width: 160, ? ? ? ? ? render: (h, params) => { ? ? ? ? ? ? return h( ? ? ? ? ? ? ? "div", ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? style: { ? ? ? ? ? ? ? ? ? display: "flex", ? ? ? ? ? ? ? ? ? alignItems: "center" ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? }, ? ? ? ? ? ? ? [ ? ? ? ? ? ? ? ? h("img", { ? ? ? ? ? ? ? ? ? style: { ? ? ? ? ? ? ? ? ? ? marginRight: "10px", ? ? ? ? ? ? ? ? ? ? width: "30px", ? ? ? ? ? ? ? ? ? ? display: "inline-block", ? ? ? ? ? ? ? ? ? ? borderRadius: "50%" ? ? ? ? ? ? ? ? ? }, ? ? ? ? ? ? ? ? ? attrs: { ? ? ? ? ? ? ? ? ? ? src: params.row.Avatar, //头像 ? ? ? ? ? ? ? ? ? ? style: "width: 100px;height: 30px" ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? }), ? ? ? ? ? ? ? ? h("div", [ ? ? ? ? ? ? ? ? ? h( ? ? ? ? ? ? ? ? ? ? "div", ? ? ? ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? ? ? ? style: { ? ? ? ? ? ? ? ? ? ? ? ? marginRight: "5px", ? ? ? ? ? ? ? ? ? ? ? ? height: "15px" ? ? ? ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? ? ? ? }, ? ? ? ? ? ? ? ? ? ? params.row.FullName //昵称 ? ? ? ? ? ? ? ? ? ) ? ? ? ? ? ? ? ? ]) ? ? ? ? ? ? ? ] ? ? ? ? ? ? ); ? ? ? ? ? } ? ? ? ? }, ? ? ? ? { ? ? ? ? ? title: "变动类型", //0.初始化 1.使用 2.充值 3.管理员调整 ? ? ? ? ? key: "VolumeType", ? ? ? ? ? render: (h, params) => { ? ? ? ? ? ? // console.log(params.row); ? ? ? ? ? ? let VolumeType = ""; ? ? ? ? ? ? switch (params.row.VolumeType) { ? ? ? ? ? ? ? case 0: ? ? ? ? ? ? ? ? VolumeType = "初始化"; ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? case 1: ? ? ? ? ? ? ? ? VolumeType = "使用"; ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? case 2: ? ? ? ? ? ? ? ? VolumeType = "充值"; ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? ? case 3: ? ? ? ? ? ? ? ? VolumeType = "管理员调整"; ? ? ? ? ? ? ? ? break; ? ? ? ? ? ? } ? ? ? ? ? ? ? return h( ? ? ? ? ? ? ? "div", ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? style: { ? ? ? ? ? ? ? ? ? display: "flex", ? ? ? ? ? ? ? ? ? alignItems: "center" ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? }, ? ? ? ? ? ? ? VolumeType ? ? ? ? ? ? ); ? ? ? ? ? } ? ? ? ? }, ? ? ? ? { ? ? ? ? ? title: "变动流量", ? ? ? ? ? key: "UseVolume" ? ? ? ? }, ? ? ? ? { ? ? ? ? ? title: "变动后总流量", ? ? ? ? ? key: "BalanceVolume" ? ? ? ? }, ? ? ? ? { ? ? ? ? ? title: "变动时间", ? ? ? ? ? key: "AddTime", ? ? ? ? ? render: (h, params) => { ? ? ? ? ? ? return h( ? ? ? ? ? ? ? "div", ? ? ? ? ? ? ? { ? ? ? ? ? ? ? ? style: { ? ? ? ? ? ? ? ? ? display: "flex", ? ? ? ? ? ? ? ? ? alignItems: "center" ? ? ? ? ? ? ? ? } ? ? ? ? ? ? ? }, ? ? ? ? ? ? ? publicMethod.getTimeData(params.row.AddTime) ? ? ? ? ? ? ); ? ? ? ? ? } ? ? ? ? } ? ? ? ], ? ? ? allTableData: [], //所有表单数据 ? ? ? tableData: [] ? ? }; ? }, ? methods: { ? ? getPageList(pageIndex = 1, pageSize = 15) { ? ? ? let serachVal = this.serach_data; ? ? ? let datas = { ? ? ? ? nickname: serachVal.Nickname, ? ? ? ? customerNumber: serachVal.customerNumber, ? ? ? ? pageIndex: pageIndex, ? ? ? ? pageSize: pageSize ? ? ? }; ? ? ? console.log(datas); ? ? ? CustomerModule.getCusVolumeLogList(datas).then(res => { ? ? ? ? let { Data } = res.data; ? ? ? ? console.log(Data); ? ? ? ? this.tableData = Data.data; ? ? ? ? this.paginations.total = Data.total; ? ? ? }); ? ? }, ? ? onSerach() { ? ? ? //搜索数据 ? ? ? this.getPageList(); ? ? }, ? ? ? //切换当前页 ? ? changepage(page) { ? ? ? this.paginations.current = page; ? ? ? this.getPageList(page, this.paginations.pageSize); ? ? }, ? ? //切换每页条数时的回调,返回切换后的每页条数 ? ? pageSizeChange(page_size) { ? ? ? this.paginations.current = 1; //当前页 ? ? ? this.paginations.pageSize = page_size; //所点击的条数,传给一页要显示多少条 ? ? ? this.getPageList(this.paginations.current, page_size); ? ? } ? }, ? mounted() { ? ? this.getPageList(); ? }, ? created() { ? ? this.$store测试数据mit("base/updateBreadcumb", { ? ? ? module: [{ name: "机主" }], ? ? ? list: [{ name: "机主流量记录", path: "" }] ? ? }); ? } }; </script> ? <style lang="less" scoped> // 模态框 .vertical-center-modal { ? display: flex; ? align-items: center; ? justify-content: center; ? ? .ivu-modal { ? ? top: 0; ? } } </style>
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://www.haodehen.cn/did124367