feat: 优化代码生成器功能并修复多个问题

- 前端表格列添加溢出提示工具
- 后端登录IP归属地查询与设置统一处理
- 分页服务明确仅用于非SQL数据源场景
- 代码生成器添加字段筛选和帮助面板
- 修复菜单高亮和布局切换问题
- 更新文档中的BUG状态和解决方案
- 优化AI聊天界面样式和交互
- 添加数据库分页支持到多个模块
- 代码生成器表单校验和流程优化
- 修复PostgreSQL日期类型问题
This commit is contained in:
zhangtao
2026-03-30 00:37:16 +08:00
parent c5ec09f06f
commit 837d8a5aa7
56 changed files with 1931 additions and 663 deletions
+15 -10
View File
@@ -13,13 +13,13 @@
| **1** | 角色授权:动子权限后丢父菜单,入口消失;分配后左侧能显示,点进页面后左侧导航没了 | 保存时补全祖先菜单 id;授权树节点用 `value ?? id` 建父链(`PermissonDrawer`) | **已验证解决** |
| **2** | 左侧 / 顶部 / 混合三种布局下:兄弟目录同时高亮、或父级不亮、混合布局展开被收起等 | **`MenuItem.menuItemIndex`**:目录(有可见子节点)的 `el-menu` **index** 仅用菜单树 `path.resolve` 结果,禁止对目录用 `router.resolve(name)`(易解析成父级短路径如 `/task`,触发兄弟分支误亮);**叶子** `index` 用 `router.resolve(name).path`,与 `route.path`、`default-active` 同源。**`BasicMenu`**:`default-active` = `meta.activeMenu` 或规范化 `route.path`;去掉 `el-menu` 按 `route.path` 的 **`:key`**(避免每次跳转整表重建);`watch` 仅在 **`nextTick` 内一次** `updateActiveIndex`。**`MixLayout`**:`BasicMenu` 使用 **`:key="mixSideMenuKey"`**,仅切换顶级模块时重建侧栏。父级标题高亮依赖 **Element Plus** `el-sub-menu.is-active`。另:目录 **redirect** 必填见前后端校验(数据规范)。 | **已验证解决** |
| **7** | 混合布局下点「AI 智能助手」会跳到应用管理 | 顶栏当前模块与路由前缀误匹配(如 `/app` 与 `/application`);已用最长前缀匹配修复 | **已验证解决** |
| **8** | 历史对话内容不全(仅首条)、带附件对话异常 | AI 对话/附件链路 BUG | — |
| **8** | 历史对话内容不全(仅首条)等 | **附件**:**非缺陷**,系当前**模型/后端能力不支持附件**,非前端逻辑错误;对话输入已关闭实际上传并提示「附件功能开发中」。若后续接入支持多模态/文件的模型,再按**需求**迭代。历史会话展示不全等问题另计 | — |
| **14** | 建普通用户分配权限:未全选二级时一级消失,二级变一级 | 与 **#1** 同类;随 **#1** 一并修复与验证 | **已验证解决** |
| **15** | 先查库再分页,应改为数据库分页 | 性能 + 大数据量正确性风险 | — |
| **15** | 先查库再分页,应改为数据库分页 | 列表接口已改为 `CRUDBase.page`(OFFSET/LIMIT + COUNT);**仍用内存分页**:在线用户(Redis)、资源目录(本地文件)、代码生成「数据库表」列表(Inspector 全量)、AI 会话(Agno) | **已验证解决** |
| **21** | 代码生成不识别表主键,强制 `id` | 代码生成 BUG | — |
| **24** | 登录慢,因查 IP 等,希望优化 | 性能类缺陷(体验上等同 BUG) | — |
| **24** | 登录慢,因查 IP 等,希望优化 | ``LOGIN_RESOLVE_IP_LOCATION`` 关闭时,操作日志路由曾仍调外网解析 IP;已改为 ``IpLocalUtil.resolve_location_for_log`` 与发 token 逻辑一致 | **已验证解决** |
| **27** | 新增用户密码明文传输 | **安全漏洞**,需 HTTPS + 传输层防护或密码策略 | — |
| **28** | PG 下 date 类型新增报错 | 反馈已解决,保留作回归验证 | — |
| **28** | PG 下 date 类型新增报错 | PostgreSQL `DATE` 与 ORM/校验对齐后新增正常;**已验证解决**(仍建议 PG 环境做回归) | **已验证解决** |
---
@@ -58,8 +58,9 @@
- **#1 + #14**:同一类「权限勾选 ↔ 菜单树」问题;**已验证解决**(前端树 `value`/父链与保存补祖先),后续大改菜单数据结构时可做回归。
- **#7**:与布局/路由强相关;**已验证解决**(混合顶栏最长前缀匹配)。**#2** 已验证解决,三种布局菜单可一起做回归。
- **#15**:涉及多处列表接口,适合单独「分页改造」批次,避免和业务大改混在一起。
- **#15**:列表接口已切数据库分页;无法在 SQL 层分页的数据源仍用 `PaginationService`(见 BUG 表说明)。
- **#9、#5、#4**:组织/岗位/数据权限有产品依赖,宜在方案定稿后再开发。
- **#8 附件**:不作为缺陷跟进;与模型能力对齐后再立项。
---
@@ -71,15 +72,15 @@
2. ~~**#1 + #14 权限与菜单树**~~ — **已验证解决**(回显、保存补祖先、`menuTreeNodeId`)。
3. ~~**#7 混合布局 + AI 助手跳转错误**~~ — **已验证解决**(`MixTopMenu` 最长前缀匹配顶栏路径)。
4. **#21 代码生成主键** — 影响生成代码正确性,改动面相对可控。
5. **#28 PG date** — 已解决则做回归用例即可。
5. ~~**#28 PG date**~~ — **已验证解决**(PG 环境可做回归用例)。
### 第二阶段(体验与性能)
1. **#24 登录慢(IP 等)** — 异步、缓存、可配置关闭等。
2. **#15 数据库分页** — 按模块/接口分批改,优先高频列表。
1. ~~**#24 登录慢(IP 等)**~~ — **已验证解决**(操作日志与登录共用可配置 IP 归属地;默认不查外网)。
2. ~~**#15 数据库分页**~~ — **已验证解决**(见 BUG 表;例外场景保留内存分页)。
3. **#6 菜单多卡顿** — 前端虚拟列表/懒加载 + 接口按需加载 + 后端必要索引。
4. ~~**#2 三种布局下菜单高亮与混合侧栏展开**~~ — **已验证解决**(见 BUG 表 **#2** 说明)。
5. **#8 AI 历史与附件** — 独立排 AI 子迭代。
5. **#8 AI 历史会话** — 附件已澄清为非缺陷(模型不支持);仅「历史不全」等若仍存在则独立排 AI 子迭代。
### 第三阶段(规范与国际化)
@@ -111,7 +112,7 @@
- 建议建立 **Issue / 里程碑**:P0(约 1~2 周)→ P1 → P2…,每条拆 **验收标准**。
- **#2** 已闭环;**#1/#14/#7** 菜单相关变更仍可打包回归,避免菜单逻辑反复。
- **#15** 建议先列出 **接口清单**(哪些仍是内存分页),按访问量排序改造。
- **#15** 已完成;若新增列表接口,优先 `CRUDBase.page`,非 SQL 数据源再考虑 `PaginationService`。
---
@@ -130,5 +131,9 @@
| 2026-03-29 | **#2** 左侧导航:`BasicMenu`/`MenuItem` 路径拼接实验(含 `normalizedLayoutBase` 等)引发回归,**已回退**至仓库原有 `resolveFullPath` + `resolvePath(child.path)` 实现 |
| 2026-03-29 | **#2** 再修:确认根因为「根项 basePath 重复拼段」;仅传布局基准 `normalizedLayoutBase`(空→`/`)+ 子级 `:base-path="resolvePath(item.path)"`,`resolvePath` 规范化并与 `activeMenuPath` 对齐 |
| 2026-03-29 | **#2** 三种布局菜单:**已验证解决**。最终方案:`MenuItem` 目录/叶子分流 index;`BasicMenu` 去 `route.path` 的 `el-menu` key、同步激活仅 `nextTick` 一次;`MixLayout` 侧栏 `mixSideMenuKey`;移除独立 `menu-path.ts`。目录 **redirect** 前后端必填保留。BUG 表、排期第二阶段与合并说明已同步 |
| 2026-03-29 | **#8 AI 附件**:**非缺陷**(当前模型不支持附件);前端 `ChatInput` 关闭上传并提示「附件功能开发中」。BUG 表 **#8**、排期第二阶段与合并说明已同步 |
| 2026-03-29 | **#15 数据库分页**:系统模块、应用、代码生成业务表、工作流/节点/调度日志等列表改为 `CRUDBase.page`;`PaginationService` 仅保留于 Redis/文件/Inspector/Agno 等无法 SQL 分页场景;`request.PaginationService` 文档已注明适用范围 |
| 2026-03-29 | **#28 PG date 类型新增**:**已验证解决**;BUG 表与第一阶段排期已同步 |
| 2026-03-29 | **#24 登录慢(IP)**:``OperationLogRoute`` 写日志时尊重 ``LOGIN_RESOLVE_IP_LOCATION``,新增 ``IpLocalUtil.resolve_location_for_log`` 与 ``create_token`` 共用;BUG 表与第二阶段排期已同步 |