+ {props.showTotal && (
+
+ {slots.total?.({ total: props.total }) ?? t('msPagination.total', { total: props.total })}
+
+ )}
+ {props.showPageSize && (
+
handlePageSizeChange(v)}
+ selectProps={props.pageSizeProps}
+ />
+ )}
+ {renderPager()}
+ {!props.simple && props.showJumper && (
+
+ )}
+
+ );
+ };
+ },
+});
diff --git a/frontend/src/components/pure/ms-pagination/types.ts b/frontend/src/components/pure/ms-pagination/types.ts
new file mode 100644
index 0000000000..0b2605af1a
--- /dev/null
+++ b/frontend/src/components/pure/ms-pagination/types.ts
@@ -0,0 +1,20 @@
+import { Slots } from 'vue';
+import { ArcoLang } from '@arco-design/web-vue/es/locale/interface';
+
+export interface ArcoOptions {
+ classPrefix?: string;
+ componentPrefix?: string;
+}
+export const SIZES = ['mini', 'small', 'medium', 'large'] as const;
+
+export type Size = (typeof SIZES)[number];
+
+export interface ConfigProvider {
+ slots: Slots;
+ prefixCls?: string;
+ locale?: ArcoLang;
+ size?: Size;
+ updateAtScroll?: boolean;
+ scrollToClose?: boolean;
+ exchangeTime?: boolean;
+}
diff --git a/frontend/src/components/pure/ms-pagination/useSize.ts b/frontend/src/components/pure/ms-pagination/useSize.ts
new file mode 100644
index 0000000000..7cd68fa31b
--- /dev/null
+++ b/frontend/src/components/pure/ms-pagination/useSize.ts
@@ -0,0 +1,15 @@
+import { computed, inject, Ref } from 'vue';
+import { Size } from './types';
+import { configProviderInjectionKey } from './utils';
+
+const useSize = (size?: Ref