vue 使用Jsx封装elementui的分页组件

// 使用
// import Pagination from '@common/components/uniCom/Pagination';
// <Pagination
//   :total="total"
//   :page="listQuery.page"
//   :limit="listQuery.limit"
//   @size-change="sizeChange"
//   @limit-change="limitChange"
// ></Pagination>
//     sizeChange(val) {
//       this.listQuery.limit = val;
//       this.getList();
//     },
//     limitChange(val) {
//       this.listQuery.page = val;
//       this.getList();
//     },

import { getSelectList } from '@common/api/base';

export default {
  name: 'Pagination',
  props: {
    total: Number,
    page: {
      type: Number,
      default: 1,
    },
    limit: {
      type: Number,
      default: 10,
    },
  },
  data() {
    return {
      pageSize: [],
    };
  },

  created() {
    //每页的条数可以通过配置获取
    getSelectList('pageSize').then(res => {
      let list = [];
      res.map((i, v) => {
        list.push(Number(i.propCode));
      });
      this.pageSize = list;
    });
  },
  methods: {
    handleSizeChange(val) {
      this.size = val;
      this.$emit('size-change', val);
    },
    handleCurrentChange(val) {
      this.limit = val;
      this.$emit('limit-change', val);
    },
  },

  render(h, context) {
    let sel_props = {
      on: {
        'size-change': val => {
          this.handleSizeChange(val);
        },
        'current-change': val => {
          this.handleCurrentChange(val);
        },
      },
    };
    return (
      <el-pagination
        {...sel_props}
        currentPage={this.page}
        pageSizes={this.pageSize}
        pageSize={this.limit}
        layout={'total, sizes, prev, pager, next, jumper'}
        total={this.total}
      ></el-pagination>
    );
  },
};

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值