修复后台表查询筛选与分页

使用单次哨兵查询统一计算扫描范围、匹配总数和截断状态
增加完整候选集服务端排序与越界页码钳制
增加固定分页栏、扫描上限提示和后端排序交互
补充大表响应边界文档与前后端回归测试
This commit is contained in:
2026-07-13 13:09:53 +08:00
parent 7becd38117
commit 06aa99e3eb
9 changed files with 866 additions and 221 deletions
+75
View File
@@ -1220,6 +1220,30 @@ button:disabled {
max-width: 112px;
}
.admin-database-tables-page {
padding-bottom: calc(var(--admin-database-pagination-height, 68px) + 16px);
}
.admin-database-pagination {
position: fixed;
right: 0;
bottom: 0;
left: 232px;
z-index: 18;
justify-content: space-between;
border-top: 1px solid #eaded2;
background: rgba(255, 255, 255, 0.96);
box-shadow: 0 -8px 24px rgba(112, 57, 30, 0.08);
padding: 12px 24px calc(12px + env(safe-area-inset-bottom));
backdrop-filter: blur(10px);
}
.admin-database-pagination-info {
color: #755a49;
font-size: 13px;
font-weight: 700;
}
.admin-table-sort-button {
display: inline-flex;
align-items: center;
@@ -1588,6 +1612,20 @@ button:disabled {
backdrop-filter: blur(10px);
}
.admin-database-pagination {
right: 0;
bottom: var(--admin-bottom-nav-height, 64px);
left: 0;
padding: 10px 14px;
}
.admin-database-tables-page {
padding-bottom: calc(
var(--admin-bottom-nav-height, 64px) +
var(--admin-database-pagination-height, 58px) + 16px
);
}
.admin-bottom-nav-button {
display: grid;
gap: 4px;
@@ -1604,6 +1642,18 @@ button:disabled {
}
}
@media (max-width: 360px) {
.admin-database-pagination .admin-secondary-button {
width: 38px;
min-width: 38px;
padding: 0;
}
.admin-database-pagination .admin-secondary-button span {
display: none;
}
}
@media (max-width: 560px) {
.admin-login-panel,
.admin-panel {
@@ -1660,4 +1710,29 @@ button:disabled {
.admin-icon-button span {
display: none;
}
.admin-database-pagination,
.admin-database-pagination .admin-action-row {
flex-wrap: nowrap;
}
.admin-database-pagination {
gap: 8px;
padding: 10px;
}
.admin-database-pagination .admin-action-row {
gap: 6px;
}
.admin-database-pagination .admin-secondary-button {
gap: 4px;
min-height: 38px;
padding: 0 8px;
}
.admin-database-pagination-info {
font-size: 12px;
white-space: nowrap;
}
}