diff --git a/apps/jingrow/frontend/src/core/registry/pagetypeOverride.ts b/apps/jingrow/frontend/src/core/registry/pagetypeOverride.ts index 161c187..9c017bf 100644 --- a/apps/jingrow/frontend/src/core/registry/pagetypeOverride.ts +++ b/apps/jingrow/frontend/src/core/registry/pagetypeOverride.ts @@ -26,8 +26,6 @@ type SourceEntry = { const allPagetypeViews: Record = {} -// 保留占位,若后续需要扩展路径解析可重新启用 - function extractAppName(absPath: string): string { // 形如 @apps//frontend/src/... const parts = absPath.split('/') @@ -88,35 +86,41 @@ function ensureIndexed(entity: string): Indexed { for (const file of Object.keys(allPagetypeViews)) { const segs = file.split('/').filter(Boolean) const len = segs.length - if (len < 5) continue + if (!file.includes('/pagetype/')) continue + const pagetypeIdx = segs.indexOf('pagetype') + if (pagetypeIdx < 0 || pagetypeIdx + 2 >= len) continue + const fileName = segs[len - 1] - const folderName = segs[len - 2] + const folderName = segs[pagetypeIdx + 1] const baseName = fileName.replace(/\.vue$/i, '') - const entity = folderName + // 统一转为小写进行索引和匹配 + const folderNameLower = folderName.toLowerCase() + const baseNameLower = baseName.toLowerCase() + const entity = folderNameLower const bucket = ensureIndexed(entity) // 详情页覆盖:.vue - if (baseName === folderName) { + if (baseNameLower === folderNameLower) { bucket.detail.push(file) } // 详情页工具栏覆盖:_toolbar.vue - else if (baseName === `${folderName}_toolbar`) { + else if (baseNameLower === `${folderNameLower}_toolbar`) { bucket.toolbar.push(file) } // 列表页覆盖:_list.vue - else if (baseName === `${folderName}_list`) { + else if (baseNameLower === `${folderNameLower}_list`) { bucket.list.push(file) } // 列表页工具栏覆盖:_list_toolbar.vue - else if (baseName === `${folderName}_list_toolbar`) { + else if (baseNameLower === `${folderNameLower}_list_toolbar`) { bucket.listToolbar.push(file) } // 列表页过滤栏覆盖:_list_filterbar.vue - else if (baseName === `${folderName}_list_filterbar`) { + else if (baseNameLower === `${folderNameLower}_list_filterbar`) { bucket.filterbar.push(file) } // 列表页操作列覆盖:_list_actions.vue - else if (baseName === `${folderName}_list_actions`) { + else if (baseNameLower === `${folderNameLower}_list_actions`) { bucket.actions.push(file) } }