From 2291b7406cdc184abfa1b1986baeb55499771343 Mon Sep 17 00:00:00 2001
From: ZN <zhang_12370@163.com>
Date: 星期一, 16 三月 2026 17:07:15 +0800
Subject: [PATCH] fix(设备管理): 修正添加维护接口的URL路径

---
 src/components/PIMTable/Pagination.vue |   64 ++++++++++++++++++++++++++++++++
 1 files changed, 64 insertions(+), 0 deletions(-)

diff --git a/src/components/PIMTable/Pagination.vue b/src/components/PIMTable/Pagination.vue
new file mode 100644
index 0000000..ec6a410
--- /dev/null
+++ b/src/components/PIMTable/Pagination.vue
@@ -0,0 +1,64 @@
+<template>
+  <div class="pagination-container" v-show="total > 0">
+    <el-pagination
+      v-model:current-page="currentPage"
+      v-model:page-size="pageSize"
+      :total="total"
+      :layout="layout"
+      :page-sizes="pageSizes"
+      background
+      @size-change="handleSizeChange"
+      @current-change="handleCurrentChange"
+    />
+  </div>
+</template>
+
+<script setup>
+import { computed } from "vue";
+
+const props = defineProps({
+  total: { type: Number, default: 0 },
+  page: { type: Number, default: 1 },
+  limit: { type: Number, default: 10 },
+  pageSizes: {
+    type: Array,
+    default: () => [10, 20, 50, 100],
+  },
+  layout: {
+    type: String,
+    default: "total, sizes, prev, pager, next, jumper",
+  },
+});
+
+const emit = defineEmits(["pagination"]);
+
+const currentPage = computed({
+  get: () => props.page,
+  set: val => {
+    emit("pagination", { page: val, limit: props.limit });
+  },
+});
+
+const pageSize = computed({
+  get: () => props.limit,
+  set: val => {
+    emit("pagination", { page: 1, limit: val });
+  },
+});
+
+const handleSizeChange = val => {
+  emit("pagination", { page: 1, limit: val });
+};
+
+const handleCurrentChange = val => {
+  emit("pagination", { page: val, limit: props.limit });
+};
+</script>
+
+<style scoped>
+.pagination-container {
+  display: flex;
+  justify-content: flex-end;
+  padding-top: 12px;
+}
+</style>

--
Gitblit v1.9.3