diff --git a/frontend/src/components/backup/index.vue b/frontend/src/components/backup/index.vue index 787a01b5b..846aa8d35 100644 --- a/frontend/src/components/backup/index.vue +++ b/frontend/src/components/backup/index.vue @@ -63,6 +63,7 @@ const loading = ref(); const data = ref(); const paginationConfig = reactive({ + cacheSizeKey: 'backup-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/components/complex-table/index.vue b/frontend/src/components/complex-table/index.vue index 83687a816..1d2a20f5c 100644 --- a/frontend/src/components/complex-table/index.vue +++ b/frontend/src/components/complex-table/index.vue @@ -32,7 +32,7 @@ </div> </template> <script setup lang="ts"> -import { ref, computed } from 'vue'; +import { ref, computed, onMounted } from 'vue'; import { GlobalStore } from '@/store'; defineOptions({ name: 'ComplexTable' }); @@ -60,6 +60,7 @@ function currentChange() { function sizeChange() { props.paginationConfig.currentPage = 1; + localStorage.setItem(props.paginationConfig.cacheSizeKey, props.paginationConfig.pageSize); emit('search'); } @@ -78,6 +79,13 @@ defineExpose({ clearSelects, sort, }); + +onMounted(() => { + let itemSize = Number(localStorage.getItem(props.paginationConfig.cacheSizeKey)); + if (itemSize) { + props.paginationConfig.pageSize = itemSize; + } +}); </script> <style lang="scss"> diff --git a/frontend/src/components/upload/index.vue b/frontend/src/components/upload/index.vue index eb46f66f3..8913f594c 100644 --- a/frontend/src/components/upload/index.vue +++ b/frontend/src/components/upload/index.vue @@ -100,6 +100,7 @@ const baseDir = ref(); const data = ref(); const title = ref(); const paginationConfig = reactive({ + cacheSizeKey: 'upload-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/app-store/apps/index.vue b/frontend/src/views/app-store/apps/index.vue index 45a8fe324..18a9513ff 100644 --- a/frontend/src/views/app-store/apps/index.vue +++ b/frontend/src/views/app-store/apps/index.vue @@ -155,6 +155,7 @@ const mobile = computed(() => { const language = useI18n().locale.value; const paginationConfig = reactive({ + cacheSizeKey: 'app-page-size', currentPage: 1, pageSize: 60, total: 0, diff --git a/frontend/src/views/app-store/installed/index.vue b/frontend/src/views/app-store/installed/index.vue index f9e39a980..2d8144717 100644 --- a/frontend/src/views/app-store/installed/index.vue +++ b/frontend/src/views/app-store/installed/index.vue @@ -295,6 +295,7 @@ const loading = ref(false); const syncLoading = ref(false); let timer: NodeJS.Timer | null = null; const paginationConfig = reactive({ + cacheSizeKey: 'app-installed-page-size', currentPage: 1, pageSize: 20, total: 0, diff --git a/frontend/src/views/container/compose/detail/index.vue b/frontend/src/views/container/compose/detail/index.vue index 8a8a70f4d..c0aad5217 100644 --- a/frontend/src/views/container/compose/detail/index.vue +++ b/frontend/src/views/container/compose/detail/index.vue @@ -154,6 +154,7 @@ const acceptParams = (props: DialogProps): void => { const data = ref(); const selects = ref<any>([]); const paginationConfig = reactive({ + cacheSizeKey: 'container-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/container/compose/index.vue b/frontend/src/views/container/compose/index.vue index 46b119ba6..d499517d1 100644 --- a/frontend/src/views/container/compose/index.vue +++ b/frontend/src/views/container/compose/index.vue @@ -112,6 +112,7 @@ const isOnDetail = ref(false); const baseDir = ref(); const paginationConfig = reactive({ + cacheSizeKey: 'container-compose-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/container/container/index.vue b/frontend/src/views/container/container/index.vue index 19465bca0..216f0bbc1 100644 --- a/frontend/src/views/container/container/index.vue +++ b/frontend/src/views/container/container/index.vue @@ -220,6 +220,7 @@ const loading = ref(); const data = ref(); const selects = ref<any>([]); const paginationConfig = reactive({ + cacheSizeKey: 'container-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/container/image/index.vue b/frontend/src/views/container/image/index.vue index fb0c9c0b3..01820dde8 100644 --- a/frontend/src/views/container/image/index.vue +++ b/frontend/src/views/container/image/index.vue @@ -121,6 +121,7 @@ const loading = ref(false); const data = ref(); const repos = ref(); const paginationConfig = reactive({ + cacheSizeKey: 'container-image-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/container/network/index.vue b/frontend/src/views/container/network/index.vue index 873f343b2..a9beaeb44 100644 --- a/frontend/src/views/container/network/index.vue +++ b/frontend/src/views/container/network/index.vue @@ -118,6 +118,7 @@ const codemirror = ref(); const data = ref(); const selects = ref<any>([]); const paginationConfig = reactive({ + cacheSizeKey: 'container-network-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/container/repo/index.vue b/frontend/src/views/container/repo/index.vue index 830ab01fd..d15b1cbe3 100644 --- a/frontend/src/views/container/repo/index.vue +++ b/frontend/src/views/container/repo/index.vue @@ -89,6 +89,7 @@ const loading = ref(); const data = ref(); const selects = ref<any>([]); const paginationConfig = reactive({ + cacheSizeKey: 'image-repo-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/container/template/index.vue b/frontend/src/views/container/template/index.vue index a5ce13603..7619b1921 100644 --- a/frontend/src/views/container/template/index.vue +++ b/frontend/src/views/container/template/index.vue @@ -80,6 +80,7 @@ const data = ref(); const selects = ref<any>([]); const paginationConfig = reactive({ + cacheSizeKey: 'compose-template-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/container/volume/index.vue b/frontend/src/views/container/volume/index.vue index 0b32e237e..e89582ee4 100644 --- a/frontend/src/views/container/volume/index.vue +++ b/frontend/src/views/container/volume/index.vue @@ -120,6 +120,7 @@ const codemirror = ref(); const data = ref(); const selects = ref<any>([]); const paginationConfig = reactive({ + cacheSizeKey: 'container-volume-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/cronjob/index.vue b/frontend/src/views/cronjob/index.vue index c4485ebac..bc72024b3 100644 --- a/frontend/src/views/cronjob/index.vue +++ b/frontend/src/views/cronjob/index.vue @@ -183,6 +183,7 @@ const isRecordShow = ref(); const data = ref(); const paginationConfig = reactive({ + cacheSizeKey: 'cronjob-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/cronjob/record/index.vue b/frontend/src/views/cronjob/record/index.vue index 130000d8d..404b1e1b6 100644 --- a/frontend/src/views/cronjob/record/index.vue +++ b/frontend/src/views/cronjob/record/index.vue @@ -412,6 +412,11 @@ const delLoading = ref(); const cleanData = ref(); const acceptParams = async (params: DialogProps): Promise<void> => { + let itemSize = Number(localStorage.getItem(searchInfo.cacheSizeKey)); + if (itemSize) { + searchInfo.pageSize = itemSize; + } + recordShow.value = true; dialogData.value = params; if (dialogData.value.rowData.type === 'database') { @@ -442,6 +447,7 @@ const acceptParams = async (params: DialogProps): Promise<void> => { const handleSizeChange = (val: number) => { searchInfo.pageSize = val; + localStorage.setItem(searchInfo.cacheSizeKey, val + ''); search(); }; const handleCurrentChange = (val: number) => { @@ -509,6 +515,7 @@ const timeRangeLoad = ref<[Date, Date]>([ new Date(new Date().setHours(23, 59, 59, 999)), ]); const searchInfo = reactive({ + cacheSizeKey: 'cronjob-record-page-size', page: 1, pageSize: 8, recordTotal: 0, diff --git a/frontend/src/views/database/mysql/index.vue b/frontend/src/views/database/mysql/index.vue index 7ce9e8964..a925d7bed 100644 --- a/frontend/src/views/database/mysql/index.vue +++ b/frontend/src/views/database/mysql/index.vue @@ -267,6 +267,7 @@ const dialogPortJumpRef = ref(); const data = ref(); const paginationConfig = reactive({ + cacheSizeKey: 'mysql-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/database/mysql/remote/index.vue b/frontend/src/views/database/mysql/remote/index.vue index 92fbe029a..35a36c071 100644 --- a/frontend/src/views/database/mysql/remote/index.vue +++ b/frontend/src/views/database/mysql/remote/index.vue @@ -106,6 +106,7 @@ const dialogRef = ref(); const data = ref(); const paginationConfig = reactive({ + cacheSizeKey: 'mysql-remote-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/database/redis/setting/persistence/index.vue b/frontend/src/views/database/redis/setting/persistence/index.vue index 8b6802646..636049c63 100644 --- a/frontend/src/views/database/redis/setting/persistence/index.vue +++ b/frontend/src/views/database/redis/setting/persistence/index.vue @@ -158,6 +158,7 @@ const selects = ref<any>([]); const currentRow = ref(); const confirmDialogRef = ref(); const paginationConfig = reactive({ + cacheSizeKey: 'redis-backup-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/host/file-management/index.vue b/frontend/src/views/host/file-management/index.vue index 58f8ee955..04dd6dd16 100644 --- a/frontend/src/views/host/file-management/index.vue +++ b/frontend/src/views/host/file-management/index.vue @@ -276,6 +276,7 @@ const deleteRef = ref(); const { searchableStatus, searchablePath, searchableInputRef, searchableInputBlur } = useSearchable(paths); const paginationConfig = reactive({ + cacheSizeKey: 'file-page-size', currentPage: 1, pageSize: 100, total: 0, diff --git a/frontend/src/views/host/firewall/ip/index.vue b/frontend/src/views/host/firewall/ip/index.vue index 64320a9e6..930e17d5b 100644 --- a/frontend/src/views/host/firewall/ip/index.vue +++ b/frontend/src/views/host/firewall/ip/index.vue @@ -155,6 +155,7 @@ const fireStatuRef = ref(); const data = ref(); const paginationConfig = reactive({ + cacheSizeKey: 'firewall-ip-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/host/firewall/port/index.vue b/frontend/src/views/host/firewall/port/index.vue index 106d98e0a..f142e4913 100644 --- a/frontend/src/views/host/firewall/port/index.vue +++ b/frontend/src/views/host/firewall/port/index.vue @@ -194,6 +194,7 @@ const fireStatuRef = ref(); const data = ref(); const paginationConfig = reactive({ + cacheSizeKey: 'firewall-port-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/host/ssh/log/log.vue b/frontend/src/views/host/ssh/log/log.vue index 649382305..c80345d05 100644 --- a/frontend/src/views/host/ssh/log/log.vue +++ b/frontend/src/views/host/ssh/log/log.vue @@ -93,6 +93,7 @@ import i18n from '@/lang'; const loading = ref(); const data = ref(); const paginationConfig = reactive({ + cacheSizeKey: 'ssh-log-page-size', currentPage: 1, pageSize: 10, total: 0, @@ -118,7 +119,7 @@ function select2address(): string { const onDeny = async () => { let address = select2address(); if (!address) return; - await operateIPRule({ operation: 'add', address: address, strategy: 'drop' }).then(() => { + await operateIPRule({ operation: 'add', address: address, strategy: 'drop', description: '' }).then(() => { MsgSuccess(i18n.global.t('commons.msg.operationSuccess')); search(); }); diff --git a/frontend/src/views/host/terminal/command/index.vue b/frontend/src/views/host/terminal/command/index.vue index 60eae23d9..3458f4aed 100644 --- a/frontend/src/views/host/terminal/command/index.vue +++ b/frontend/src/views/host/terminal/command/index.vue @@ -90,6 +90,7 @@ const loading = ref(); const data = ref(); const selects = ref<any>([]); const paginationConfig = reactive({ + cacheSizeKey: 'terminal-command-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/host/terminal/host/index.vue b/frontend/src/views/host/terminal/host/index.vue index 3563605a5..6f2f9a843 100644 --- a/frontend/src/views/host/terminal/host/index.vue +++ b/frontend/src/views/host/terminal/host/index.vue @@ -93,6 +93,7 @@ const data = ref(); const groupList = ref(); const selects = ref<any>([]); const paginationConfig = reactive({ + cacheSizeKey: 'terminal-host-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/log/login/index.vue b/frontend/src/views/log/login/index.vue index 007c3a8aa..d2b786b48 100644 --- a/frontend/src/views/log/login/index.vue +++ b/frontend/src/views/log/login/index.vue @@ -92,6 +92,7 @@ const loading = ref(); const data = ref(); const confirmDialogRef = ref(); const paginationConfig = reactive({ + cacheSizeKey: 'login-log-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/log/operation/index.vue b/frontend/src/views/log/operation/index.vue index 691bf6165..640c7bb77 100644 --- a/frontend/src/views/log/operation/index.vue +++ b/frontend/src/views/log/operation/index.vue @@ -122,6 +122,7 @@ const loading = ref(); const data = ref(); const confirmDialogRef = ref(); const paginationConfig = reactive({ + cacheSizeKey: 'operation-log-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/setting/snapshot/index.vue b/frontend/src/views/setting/snapshot/index.vue index 655131785..c40e7a701 100644 --- a/frontend/src/views/setting/snapshot/index.vue +++ b/frontend/src/views/setting/snapshot/index.vue @@ -164,6 +164,7 @@ const loading = ref(false); const data = ref(); const selects = ref<any>([]); const paginationConfig = reactive({ + cacheSizeKey: 'snapshot-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/website/runtime/index.vue b/frontend/src/views/website/runtime/index.vue index d6926ecbc..980b4cdeb 100644 --- a/frontend/src/views/website/runtime/index.vue +++ b/frontend/src/views/website/runtime/index.vue @@ -80,6 +80,7 @@ import i18n from '@/lang'; import { useDeleteData } from '@/hooks/use-delete-data'; const paginationConfig = reactive({ + cacheSizeKey: 'runtime-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/website/ssl/acme-account/index.vue b/frontend/src/views/website/ssl/acme-account/index.vue index 687daebeb..b4fcfb076 100644 --- a/frontend/src/views/website/ssl/acme-account/index.vue +++ b/frontend/src/views/website/ssl/acme-account/index.vue @@ -35,6 +35,7 @@ let loading = ref(false); let data = ref(); let createRef = ref(); const paginationConfig = reactive({ + cacheSizeKey: 'acme-account-page-size', currentPage: 1, pageSize: 20, total: 0, diff --git a/frontend/src/views/website/ssl/dns-account/index.vue b/frontend/src/views/website/ssl/dns-account/index.vue index a5ccff875..b47ab6785 100644 --- a/frontend/src/views/website/ssl/dns-account/index.vue +++ b/frontend/src/views/website/ssl/dns-account/index.vue @@ -38,6 +38,7 @@ import i18n from '@/lang'; import { useDeleteData } from '@/hooks/use-delete-data'; const paginationConfig = reactive({ + cacheSizeKey: 'dns-account-page-size', currentPage: 1, pageSize: 20, total: 0, diff --git a/frontend/src/views/website/ssl/index.vue b/frontend/src/views/website/ssl/index.vue index 9a816234d..4acf9bb90 100644 --- a/frontend/src/views/website/ssl/index.vue +++ b/frontend/src/views/website/ssl/index.vue @@ -100,6 +100,7 @@ import { GlobalStore } from '@/store'; const globalStore = GlobalStore(); const paginationConfig = reactive({ + cacheSizeKey: 'ssl-page-size', currentPage: 1, pageSize: 10, total: 0, diff --git a/frontend/src/views/website/website/index.vue b/frontend/src/views/website/website/index.vue index c47032610..ecb329b22 100644 --- a/frontend/src/views/website/website/index.vue +++ b/frontend/src/views/website/website/index.vue @@ -246,6 +246,7 @@ let dateRefs: Map<number, any> = new Map(); let groups = ref<Group.GroupInfo[]>([]); const paginationConfig = reactive({ + cacheSizeKey: 'website-page-size', currentPage: 1, pageSize: 10, total: 0,