From 94f96181f3ccd439b4d4cad681d2c4d1739e6117 Mon Sep 17 00:00:00 2001
From: LiuHao <liuhaoai545@gmail>
Date: 星期六, 22 四月 2023 01:05:11 +0800
Subject: [PATCH] add DarkMode

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

diff --git a/src/components/Pagination/index.vue b/src/components/Pagination/index.vue
index 38de953..c3eb9b2 100644
--- a/src/components/Pagination/index.vue
+++ b/src/components/Pagination/index.vue
@@ -14,92 +14,104 @@
   </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 { PropType } from "vue";
+
+const props = defineProps({
+    total: {
+        required: true,
+        type: Number
+    },
+    page: {
+        type: Number,
+        default: 1
+    },
+    limit: {
+        type: Number,
+        default: 20
+    },
+    pageSizes: {
+        type: Array as PropType<number[]>,
+        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
+    },
+    float: {
+        type: String,
+        default: '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