hookehuyr

refactor(分页): 调整分页构建逻辑,无分页控件时不启用分页

移除按固定大小分片的兜底逻辑,确保无分页控件时不显示分页组件
...@@ -18,3 +18,4 @@ ...@@ -18,3 +18,4 @@
18 - `onFailed` 时清除该标记,避免误判后续提交动作。 18 - `onFailed` 时清除该标记,避免误判后续提交动作。
19 - `index.vue` 在 `onSubmit` 顶部拦截“下一页意图”,短路真实提交,仅做翻页与状态重置。 19 - `index.vue` 在 `onSubmit` 顶部拦截“下一页意图”,短路真实提交,仅做翻页与状态重置。
20 - 保持分页最后一页提示与按钮颜色逻辑同步。 20 - 保持分页最后一页提示与按钮颜色逻辑同步。
21 + - 分页构建逻辑调整:当表单中不存在 `paginator` 控件时不启用分页,移除按固定大小(8个字段)分片的兜底逻辑,确保无分页控件时不显示分页组件。
......
...@@ -109,17 +109,18 @@ export function usePagination(formDataRef, options = {}) { ...@@ -109,17 +109,18 @@ export function usePagination(formDataRef, options = {}) {
109 navs.push(normalizePaginatorProps()) 109 navs.push(normalizePaginatorProps())
110 } 110 }
111 111
112 - // 若未显式分页,仅按固定大小分片,并为每一页设置默认导航 112 + // 无显式分页符时,不启用分页(单页展现,不再进行固定大小分片)
113 - if (pages.length <= 1) { 113 + // 这样可确保没有 paginator 控件时,分页组件不会显示
114 - const size = 8 114 + const has_paginator = formDataRef.value.some(i => i.component_props?.tag === 'paginator')
115 - const keys = formDataRef.value.filter(i => i.component_props?.tag !== 'paginator').map(i => i.key) 115 + if (!has_paginator) {
116 - const chunked = [] 116 + const keys = formDataRef.value
117 - for (let i = 0; i < keys.length; i += size) { 117 + .filter(i => i.component_props?.tag !== 'paginator')
118 - chunked.push(keys.slice(i, i + size)) 118 + .map(i => i.key)
119 - } 119 + pages_raw.value = [keys]
120 - pages_raw.value = chunked.length ? chunked : [keys] 120 + // 单页仍提供默认导航配置,供最后页按钮样式读取,但不会显示分页组件
121 - page_nav_props_by_index.value = (chunked.length ? chunked : [keys]).map(() => normalizePaginatorProps()) 121 + page_nav_props_by_index.value = [normalizePaginatorProps()]
122 } else { 122 } else {
123 + // 有分页符时按分组结果设置
123 pages_raw.value = pages 124 pages_raw.value = pages
124 page_nav_props_by_index.value = navs 125 page_nav_props_by_index.value = navs
125 } 126 }
......