• 分页
    • 普通用法
    • 自定义分页

    分页

    TIP

    1.0.0+

    普通用法

    分页 - 图1

    首次加载调用on-load方法加载数据,返回page分页对象信息,赋值pagetotal总条数即可

    1. <avue-crud
    2. :data="data"
    3. :option="option"
    4. :page="page"
    5. @on-load="onLoad"
    6. ></avue-crud>
    7. <script>
    8. export default {
    9. data() {
    10. return {
    11. page: {
    12. pageSize: 20
    13. },
    14. data: [],
    15. option: {
    16. align: 'center',
    17. menuAlign: 'center',
    18. column: [
    19. {
    20. label: '姓名',
    21. prop: 'name'
    22. },
    23. {
    24. label: '性别',
    25. prop: 'sex'
    26. }
    27. ]
    28. }
    29. }
    30. },
    31. methods: {
    32. onLoad(page) {
    33. this.$message.success('分页信息:' + JSON.stringify(page))
    34. this.page.total = 40
    35. //模拟分页
    36. if (page.currentPage === 1) {
    37. this.data = [
    38. {
    39. name: '张三',
    40. sex: '男'
    41. }
    42. ]
    43. } else if (page.currentPage == 2) {
    44. this.data = [
    45. {
    46. name: '李四',
    47. sex: '女'
    48. }
    49. ]
    50. }
    51. }
    52. }
    53. }
    54. </script>

    自定义分页

    分页 - 图2

    实际的用法要后台配置,将后台返回值赋值给 page 中的属性, page就是分页对象注入,page 对象中的total为总页数,pageSizes为分页信息,currentPage为当前第几页,pageSize每一页加载多少条数据,点击页码会调用current-change方法回调当前页数,返回当前第几页,点击每页多少条会调size-change方法回调

    1. <avue-crud
    2. :data="data"
    3. :option="option"
    4. :page="page"
    5. @size-change="sizeChange"
    6. @current-change="currentChange"
    7. ></avue-crud>
    8. <script>
    9. export default {
    10. data() {
    11. return {
    12. page: {
    13. //pageSizes: [10, 20, 30, 40],默认
    14. currentPage: 1,
    15. total: 0,
    16. pageSize: 10
    17. },
    18. data: [
    19. {
    20. name: '张三',
    21. sex: '男'
    22. },
    23. {
    24. name: '李四',
    25. sex: '女'
    26. }
    27. ],
    28. option: {
    29. align: 'center',
    30. menuAlign: 'center',
    31. column: [
    32. {
    33. label: '姓名',
    34. prop: 'name'
    35. },
    36. {
    37. label: '性别',
    38. prop: 'sex'
    39. }
    40. ]
    41. }
    42. }
    43. },
    44. created() {
    45. this.getList()
    46. },
    47. methods: {
    48. getList() {
    49. this.page.total = 20
    50. if (this.page.currentPage === 1) {
    51. this.data = [
    52. {
    53. name: '张三',
    54. sex: '男'
    55. }
    56. ]
    57. } else if (this.page.currentPage == 2) {
    58. this.data = [
    59. {
    60. name: '李四',
    61. sex: '女'
    62. }
    63. ]
    64. }
    65. },
    66. sizeChange(val) {
    67. this.page.currentPage = 1
    68. this.page.pageSize = val
    69. this.getList()
    70. this.$message.success('行数' + val)
    71. },
    72. currentChange(val) {
    73. this.page.currentPage = val
    74. this.getList()
    75. this.$message.success('页码' + val)
    76. }
    77. }
    78. }
    79. </script>