From f801f4fb11ff8ca08417a9ddf0231fb570fa26e3 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期一, 24 七月 2023 16:47:51 +0800
Subject: [PATCH] fix 修复 固定页面header穿模问题

---
 src/components/Pagination/index.vue |  143 +++++++++++++++++++++--------------------------
 1 files changed, 63 insertions(+), 80 deletions(-)

diff --git a/src/components/Pagination/index.vue b/src/components/Pagination/index.vue
index 38de953..df73ceb 100644
--- a/src/components/Pagination/index.vue
+++ b/src/components/Pagination/index.vue
@@ -14,92 +14,75 @@
   </div>
 </template>
 
-<script setup>
-import { scrollTo } from '@/utils/scroll-to'
-
-const props = defineProps({
-  total: {
-    required: true,
-    type: Number
-  },
-  page: {
-    type: Number,
-    default: 1
-  },
-  limit: {
-    type: Number,
-    default: 20
-  },
-  pageSizes: {
-    type: Array,
-    default() {
-      return [10, 20, 30, 50]
-    }
-  },
-  // 绉诲姩绔〉鐮佹寜閽殑鏁伴噺绔粯璁ゅ��5
-  pagerCount: {
-    type: Number,
-    default: document.body.clientWidth < 992 ? 5 : 7
-  },
-  layout: {
-    type: String,
-    default: 'total, sizes, prev, pager, next, jumper'
-  },
-  background: {
-    type: Boolean,
-    default: true
-  },
-  autoScroll: {
-    type: Boolean,
-    default: true
-  },
-  hidden: {
-    type: Boolean,
-    default: false
-  }
-})
-
-const emit = defineEmits();
-const currentPage = computed({
-  get() {
-    return props.page
-  },
-  set(val) {
-    emit('update:page', val)
-  }
-})
-const pageSize = computed({
-  get() {
-    return props.limit
-  },
-  set(val){
-    emit('update:limit', val)
-  }
-})
-function handleSizeChange(val) {
-  if (currentPage.value * val > props.total) {
-    currentPage.value = 1
-  }
-  emit('pagination', { page: currentPage.value, limit: val })
-  if (props.autoScroll) {
-    scrollTo(0, 800)
-  }
+<script lang="ts">
+export default {
+    name: 'Pagination'
 }
-function handleCurrentChange(val) {
-  emit('pagination', { page: val, limit: pageSize.value })
-  if (props.autoScroll) {
-    scrollTo(0, 800)
-  }
-}
-
 </script>
 
-<style scoped>
+<script setup lang="ts">
+import { scrollTo } from '@/utils/scroll-to'
+import { propTypes } from "@/utils/propTypes";
+
+const props = defineProps({
+    total: propTypes.number,
+    page: propTypes.number.def(1),
+    limit: propTypes.number.def(20),
+    pageSizes: {
+      type: Array as PropType<number[]>,
+      default: () => [10, 20, 30, 50]
+    },
+    // 绉诲姩绔〉鐮佹寜閽殑鏁伴噺绔粯璁ゅ��5
+    pagerCount: propTypes.number.def(document.body.clientWidth < 992 ? 5 : 7),
+    layout: propTypes.string.def('total, sizes, prev, pager, next, jumper'),
+    background: propTypes.bool.def(true),
+    autoScroll: propTypes.bool.def(true),
+    hidden: propTypes.bool.def(false),
+    float: propTypes.string.def('right')
+})
+
+const emit = defineEmits(['update:page', 'update:limit', 'pagination']);
+const currentPage = computed({
+    get() {
+        return props.page
+    },
+    set(val) {
+        emit('update:page', val)
+    }
+})
+const pageSize = computed({
+    get() {
+        return props.limit
+    },
+    set(val){
+        emit('update:limit', val)
+    }
+})
+function handleSizeChange(val: number) {
+    if (currentPage.value * val > props.total) {
+        currentPage.value = 1
+    }
+    emit('pagination', { page: currentPage.value, limit: val })
+    if (props.autoScroll) {
+        scrollTo(0, 800)
+    }
+}
+function handleCurrentChange(val: number) {
+    emit('pagination', { page: val, limit: pageSize.value })
+    if (props.autoScroll) {
+        scrollTo(0, 800)
+    }
+}
+</script>
+
+<style lang="scss" scoped>
 .pagination-container {
-  background: #fff;
   padding: 32px 16px;
+  .el-pagination{
+    float: v-bind(float);
+  }
 }
 .pagination-container.hidden {
   display: none;
 }
-</style>
\ No newline at end of file
+</style>

--
Gitblit v1.9.3