Element-UI 项目中 Pagination 分页如何使用 ???

24 篇文章 0 订阅
14 篇文章 1 订阅

先看效果:

 

应用场景:

        一般分页功能多用于一些数据量较大的信息展示页面,通过分页可以设置每页的显示数量。多用于和 el-table 结合使用!

属性

参数说明类型可选值默认值
small是否使用小型分页样式booleanfalse
background是否为分页按钮添加背景色booleanfalse
page-size每页显示条目个数,支持 .sync 修饰符number10
total总条目数number
page-count总页数,total 和 page-count 设置任意一个就可以达到显示页码的功能;如果要支持 page-sizes 的更改,则需要使用 total 属性Number
pager-count页码按钮的数量,当总页数超过该值时会折叠number大于等于 5 且小于等于 21 的奇数7
current-page当前页数,支持 .sync 修饰符number1
layout组件布局,子组件名用逗号分隔Stringsizesprevpagernextjumper->totalslot'prev, pager, next, jumper, ->, total'
page-sizes每页显示个数选择器的选项设置number[][10, 20, 30, 40, 50, 100]
popper-class每页显示个数选择器的下拉框类名string
prev-text替代图标显示的上一页文字string
next-text替代图标显示的下一页文字string
disabled是否禁用booleanfalse
hide-on-single-page只有一页时是否隐藏boolean-

事件

事件名称说明回调参数
size-changepageSize 改变时会触发每页条数
current-changecurrentPage 改变时会触发当前页
prev-click用户点击上一页按钮改变当前页后触发当前页
next-click用户点击下一页按钮改变当前页后触发当前页

Slot

name说明
自定义内容,需要在 layout 中列出 slot

代码:

      <!-- 表格 -->
      <div class="datas">
        <el-table
          ref="multipleTable"
          :data="tableData"
          tooltip-effect="dark"
          style="width: 100%"
          @selection-change="handleSelectionChange"
        >
          <el-table-column type="selection" width="55"></el-table-column>
          <el-table-column type="index" :index="indexMethod" label="序号"></el-table-column>
          <el-table-column prop="sysPersonName" label="姓名"></el-table-column>
          <el-table-column prop="sysPersonSex" label="性别"></el-table-column>
          <el-table-column prop="sysPersonPhone" label="手机号"></el-table-column>
          <el-table-column prop="sysPersonId" label="编号"></el-table-column>
          <el-table-column prop="sysIfAttendance" label="是否考勤"></el-table-column>
          <el-table-column prop="organizationInfo.sysOrganizationName" label="所属组织"></el-table-column>
          <el-table-column prop="sysRemark" label="备注"></el-table-column>
          <el-table-column fixed="right" label="操作" width="100">
            <template slot-scope="scope">
              <el-button
                @click="handleClick(scope.row)"
                type="text"
                size="small"
                >消息</el-button
              >
              <el-button @click="godetails(scope.row)" type="text" size="small"
                >详情</el-button
              >
            </template>
          </el-table-column>
        </el-table>
      </div>
    </div>
    <!-- 分页 -->
    <div class="block">
       <el-pagination
        @size-change="handleSizeChange"
        @current-change="handleCurrentChange"
        :current-page="person.page" 
        :page-sizes="[10]"
        :page-size = 10
        layout="total, sizes, prev, pager, next, jumper"
        :total="totalCount"
      ></el-pagination>
    </div>
<script>
export default {
  data() {
    return {
      tableData: [],
      // 分页
      totalCount: 0, //总条数,总共有多少条数据
      radio: "1",
      // 人员列表数据
      person: {
        limit: 0,
        options: {
        },
        page: 0,
      },
      value: "",
      sendMessagePopups: false,
      form: {
        name: "",
        messageContent: "",
      },
      pages: 0,
      multipleSelection: [],
      messageFrom:{
        messageName: '',
        messageContent:'',
      },
      messageName: ''
    };
  },
  created() {
    this.personTableList();
  },
  methods: {
    // 人员列表
    personTableList() {
      this.person.limit = 10
      this.$http.put("/api/list/person", this.person).then((res) => {
        if (res.data.status === 200) {
          console.log(res.data.data)
          this.pages = res.data.data
          this.tableData = res.data.data.data;
          for (let i = 0; i < this.tableData.length; i++) {
            if (this.tableData[i].sysPersonSex == 1) {
              this.tableData[i].sysPersonSex = "男";
            } else {
              this.tableData[i].sysPersonSex = "女";
            }
            if (this.tableData[i].sysIfAttendance == 1) {
              this.tableData[i].sysIfAttendance = "是";
            } else {
              this.tableData[i].sysIfAttendance = "否";
            }
          }
          this.totalCount = res.data.data.count;
          console.log(this.tableData);
        } else {
          this.$message.error(res.data.message);
          return;
        }
      });
    },
    // 分页
    handleCurrentChange(newPage) {
      this.person.page = newPage
      this.personTableList()
    },
    handleSizeChange(val) {
      this.person.limit = val
      this.personTableList()
    },
    // 表格数据索引累加
    indexMethod(index){
      return(this.pages.page-1) * 10 + index + 1
    },
    

  },

  
};
</script>

重点:

删除的时候:当当前页面只有一条数据的时候改怎么办?

if (this.tableData.length == 1) {
  this.pageNum = this.pageNum - 1; //页数减1
}

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要修改Element UI分页组件的图标,你可以通过自定义样式来实现。首先,你需要在你的项目引入Element UI的样式文件。然后,你可以使用自定义样式来修改分页组件的图标。 以下是一个示例,演示如何修改Element UI分页组件的前一页和后一页图标: 1. 在你的项目引入Element UI的样式文件。在你的主样式文件(通常是`main.css`或`main.scss`)添加以下代码: ```css @import "~element-ui/packages/theme-chalk/src/index"; ``` 2. 在你的组件使用`el-pagination`组件,并添加自定义样式。例如: ```html <template> <el-pagination class="custom-pagination" :page-sizes="[10, 20, 30, 40]" :page-size="pageSize" :total="total" layout="prev, pager, next" @size-change="handleSizeChange" @current-change="handleCurrentChange" ></el-pagination> </template> <style scoped> .custom-pagination .el-icon-arrow-left { font-size: 12px; /* 添加你想要的前一页图标样式 */ } .custom-pagination .el-icon-arrow-right { font-size: 12px; /* 添加你想要的后一页图标样式 */ } </style> ``` 在上面的示例,我们给分页组件添加了一个自定义类名`.custom-pagination`,然后使用该类名来修改前一页和后一页图标的样式。你可以根据需要修改图标的大小、颜色等。 请注意,这只是一个示例,你可以根据你的具体需求进行修改。你可以通过修改`el-icon-arrow-left`和`el-icon-arrow-right`选择器来选择不同的图标,并通过修改样式来自定义它们的外观。 希望以上信息对你有帮助!如有任何疑问,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值