码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • vue3封装分页组件


    1.新建Pagination文件以及该文件夹下新建index.vue

    2.在index.vue文件中编写一下代码

    1. <script setup>
    2. import { scrollTo } from '@/utils/scroll-to'
    3. const props = defineProps({
    4. total: {
    5. required: true,
    6. type: Number
    7. },
    8. page: {
    9. type: Number,
    10. default: 1
    11. },
    12. limit: {
    13. type: Number,
    14. default: 20
    15. },
    16. pageSizes: {
    17. type: Array,
    18. default() {
    19. return [30, 60, 100]
    20. }
    21. },
    22. // 移动端页码按钮的数量端默认值5
    23. pagerCount: {
    24. type: Number,
    25. default: document.body.clientWidth < 992 ? 5 : 7
    26. },
    27. layout: {
    28. type: String,
    29. default: 'total, sizes, prev, pager, next, jumper'
    30. },
    31. background: {
    32. type: Boolean,
    33. default: true
    34. },
    35. autoScroll: {
    36. type: Boolean,
    37. default: true
    38. },
    39. hidden: {
    40. type: Boolean,
    41. default: false
    42. }
    43. })
    44. const emit = defineEmits();
    45. const currentPage = computed({
    46. get() {
    47. return props.page
    48. },
    49. set(val) {
    50. emit('update:page', val)
    51. }
    52. })
    53. const pageSize = computed({
    54. get() {
    55. return props.limit
    56. },
    57. set(val){
    58. emit('update:limit', val)
    59. }
    60. })
    61. function handleSizeChange(val) {
    62. if (currentPage.value * val > props.total) {
    63. currentPage.value = 1
    64. }
    65. emit('pagination', { page: currentPage.value, limit: val })
    66. if (props.autoScroll) {
    67. scrollTo(0, 800)
    68. }
    69. }
    70. function handleCurrentChange(val) {
    71. emit('pagination', { page: val, limit: pageSize.value })
    72. if (props.autoScroll) {
    73. scrollTo(0, 800)
    74. }
    75. }
    76. script>
    77. <style scoped>
    78. .demo-pagination-block {
    79. position: fixed;
    80. bottom: 20px;
    81. right: 20px;
    82. width: 50vw;
    83. padding-bottom: 20px;
    84. background: #fff;
    85. z-index: 99;
    86. .pagination-container {
    87. margin-top: 0;
    88. }
    89. }
    90. .pagination-container {
    91. background: #fff;
    92. padding: 0 16px 20px;
    93. }
    94. .pagination-container.hidden {
    95. display: none;
    96. }
    97. style>

    3.使用封装的组件

    1. <div class="demo-pagination-block">
    2. <pagination :total="data.total" v-model:page="searchParams.pageNum" v-model:limit="searchParams.pageSize"
    3. @pagination="getList" />
    4. div>
    1. import { pageList } from '@/api/dataScheduling/portDataList'
    2. const searchParams = reactive({
    3. containerNo: '', // 集装箱号
    4. searchDate: '', // 筛选时间
    5. dataStatus: '', // 状态
    6. shipName: '', // 船名
    7. destinationPort: '', // 目的港
    8. pageNum: 1, // 页码
    9. pageSize: 30, // 条数
    10. });
    11. const data = reactive({
    12. total: 10, // 总条数
    13. tableData: [], // 数据列表
    14. });
    15. onMounted(() => {
    16. getList();
    17. });
    18. // 获取数据列表
    19. const getList = () => {
    20. let params = { ...searchParams }
    21. pageList(params).then(res => {
    22. console.log('获取列表', res);
    23. data.tableData = res.rows
    24. data.total = res.total
    25. })
    26. };

  • 相关阅读:
    我用Python采集了班花的空间数据集,除了美照竟然再一次发现了她另外的秘密!
    Android:安卓虚拟机(Dalvik && ART)学习
    python-opencv 培训课程作业
    Web安全漏洞——SSTI模版注入(初级)
    【大数据】flink 读取文件数据写入ElasticSearch
    servlet 教程 1:环境搭建和新建 servlet 项目
    CDH大数据平台 24Cloudera Manager Console之hbase、hive整合配置(markdown新版)
    mybatis判断用insert还是update
    Leetcode 349:两个数组的交集
    目标检测YOLO实战应用案例100讲-基于机器视觉的输电线路小目标检测和缺 陷识别(下)
  • 原文地址:https://blog.csdn.net/2202_75509848/article/details/133792704
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号