# 缺陷与需求梳理 / 解决顺序排期 > 来源:产品与用户反馈整理(持续更新) > 说明:**BUG** 为缺陷或错误行为;**需求** 为功能增强或非缺陷类诉求。排期优先:**安全 → 阻断使用类缺陷 → 性能 → 大型能力**。 --- ## 一、BUG(缺陷 / 错误行为) | 编号 | 简述 | 说明 | 状态 | | ------ | ---------------------------------------- | ----------------------------- | -- | | **1** | 角色授权:动子权限后丢父菜单,入口消失;分配后左侧能显示,点进页面后左侧导航没了 | 保存时补全祖先菜单 id;授权树节点用 `value ?? id` 建父链(`PermissonDrawer`) | **已验证解决** | | **2** | 多级菜单 1-2-3 / 1-4,选 4 时 2、1 也被选中 | (1)左侧布局根:`menuParentBasePath` 替代 `resolveFullPath(route.path)`;(2)**子级递归**:子 `MenuItem` 的 `base-path` 须为**当前父节点**的完整路径 `resolvePath(item.path)`,不能用 `resolvePath(child.path)`(会跳过中间段,index 与 `route.path` 错位) | **待验证** | | **7** | 混合布局下点「AI 智能助手」会跳到应用管理 | 顶栏当前模块与路由前缀误匹配(如 `/app` 与 `/application`);已用最长前缀匹配修复 | **已验证解决** | | **8** | 历史对话内容不全(仅首条)、带附件对话异常 | AI 对话/附件链路 BUG | — | | **14** | 建普通用户分配权限:未全选二级时一级消失,二级变一级 | 与 **#1** 同类;随 **#1** 一并修复与验证 | **已验证解决** | | **15** | 先查库再分页,应改为数据库分页 | 性能 + 大数据量正确性风险 | — | | **21** | 代码生成不识别表主键,强制 `id` | 代码生成 BUG | — | | **24** | 登录慢,因查 IP 等,希望优化 | 性能类缺陷(体验上等同 BUG) | — | | **27** | 新增用户密码明文传输 | **安全漏洞**,需 HTTPS + 传输层防护或密码策略 | — | | **28** | PG 下 date 类型新增报错 | 反馈已解决,保留作回归验证 | — | --- ## 二、需求(功能 / 增强 / 非缺陷) | 编号 | 简述 | | ------- | ------------------------------------ | | **3** | 企业微信、飞书等移动端快捷登录 | | **4** | 同步企业微信、蓝凌等 OA 组织架构(部门、人员) | | **5** | 按岗位授权(非角色),与 OA/企微组织同步 | | **6** | 菜单很多时载入/修改很慢 | | **9** | 数据权限按菜单/模块细分(如公告全量、用户本部门及以下) | | **10** | 前端中英文大量未翻译 | | **11** | 上传封装 OSS、S3、FTP/FTPS 等 | | **12** | 适配 Python 3.13;升级 asyncmy、pandas 等版本 | | **13** | 多租户 | | **16** | AI:知识库 + Skills 管理 | | **17** | 钉钉登录与消息推送 | | **18** | 工作流编排 + 应用上传,类似 Dify | | **19** | BPM 在线表单、树表、主子表 | | **20** | 菜单升级:导出个人菜单、清空、升级系统菜单再导入 | | **22** | WebSocket + 类 MQTT,通知/工作项与前端处理接口 | | **23** | 简单博客 Demo(前端免鉴权读数据 + 规范示例) | | **25** | 免登录能力加总开关 | | **26a** | 有 `order` 字段时统一按 `order` 排序 | | **26b** | 布局:分系统式,点目录弹出子系统菜单 | > 原反馈中有两条均标为「26」,此处拆为 **26a(排序)**、**26b(布局)**。 --- ## 三、合并与依赖说明 - **#1 + #14**:同一类「权限勾选 ↔ 菜单树」问题;**已验证解决**(前端树 `value`/父链与保存补祖先),后续大改菜单数据结构时可做回归。 - **#7**:与布局/路由强相关;**已验证解决**(混合顶栏最长前缀匹配),可与 **#2** 同属前端「菜单与路由」专项做回归。 - **#15**:涉及多处列表接口,适合单独「分页改造」批次,避免和业务大改混在一起。 - **#9、#5、#4**:组织/岗位/数据权限有产品依赖,宜在方案定稿后再开发。 --- ## 四、建议解决顺序(排期) ### 第一阶段(优先:安全 + 阻断使用 + 明确 BUG) 1. **#27 密码明文传输** — 安全最高优先级(HTTPS、前端摘要/后端策略、接口审计)。 2. ~~**#1 + #14 权限与菜单树**~~ — **已验证解决**(回显、保存补祖先、`menuTreeNodeId`)。 3. ~~**#7 混合布局 + AI 助手跳转错误**~~ — **已验证解决**(`MixTopMenu` 最长前缀匹配顶栏路径)。 4. **#21 代码生成主键** — 影响生成代码正确性,改动面相对可控。 5. **#28 PG date** — 已解决则做回归用例即可。 ### 第二阶段(体验与性能) 1. **#24 登录慢(IP 等)** — 异步、缓存、可配置关闭等。 2. **#15 数据库分页** — 按模块/接口分批改,优先高频列表。 3. **#6 菜单多卡顿** — 前端虚拟列表/懒加载 + 接口按需加载 + 后端必要索引。 4. **#2 菜单多选高亮(左侧导航)** — 未闭环;与 **#7** 顶栏分开排查。 5. **#8 AI 历史与附件** — 独立排 AI 子迭代。 ### 第三阶段(规范与国际化) 1. **#26a 统一 order 排序** — 约定 + 扫描替换高风险点。 2. **#10 中英文** — 可持续迭代,可先列文案清单再分批补全。 ### 第四阶段(架构与集成类,需立项/分期) 1. **#11 存储抽象(OSS/S3/FTP…)** 2. **#12 Python 3.13 + 依赖升级** — 全量测试后再上生产。 3. **#22 WebSocket 通知机制** 4. **#25 免登录开关** 5. **#3、#4、#17** 企微/飞书/钉钉/OA 同步(常分多期:登录 → 组织 → 消息) ### 第五阶段(大功能,单独路线图) 1. **#13 多租户** 2. **#9 菜单级数据权限**(与 #5、#4 联动) 3. **#16 AI 知识库/Skills** 4. **#18 工作流 + 应用编排** 5. **#19 BPM 表单** 6. **#20 菜单导入导出升级** 7. **#23 博客 Demo** 8. **#26b 分系统布局模式** --- ## 五、执行建议 - 建议建立 **Issue / 里程碑**:P0(约 1~2 周)→ P1 → P2…,每条拆 **验收标准**。 - **#2**(及 **#1/#14/#7** 菜单相关回归)建议同一人或同一小组连续跟进,避免菜单逻辑反复。 - **#15** 建议先列出 **接口清单**(哪些仍是内存分页),按访问量排序改造。 --- ## 变更记录 | 日期 | 说明 | | ---------- | ------------- | | 2026-03-29 | 初版:缺陷与需求梳理及排期 | | 2026-03-29 | **#21** 代码生成:`pk_column_name` 贯通 Vue/TS/Schema/Service/CRUD 模板;**#1/#14** 角色权限保存补全祖先菜单;**#7** 混合顶栏最长前缀匹配;**#24** 登录 IP 归属地可配置关闭(`LOGIN_RESOLVE_IP_LOCATION`) | | 2026-03-29 | **#2** 曾尝试改 `MenuItem` 子项 `base-path`,与现有「父级 basePath 已含本段」的拼接规则冲突,导致同级全高亮;已回退为 `resolvePath(child.path)`,原「兄弟误高亮」问题仍待用 `isActiveChild` 路径边界等方式单独修 | | 2026-03-29 | **#1/#14** 角色菜单授权:`formatTree` 后节点仅有 `value` 无 `id`,`expandMenuIdsWithAncestors` 误用 `n.id` 导致父链未补齐;改为 `menuTreeNodeId`(`value ?? id`)并修正「父子联动」检测逻辑 | | 2026-03-29 | **#7** 混合布局下「AI 智能助手」误跳应用管理:**已验证解决**,BUG 表与排期已标注 | | 2026-03-29 | **#1 / #14** 角色授权(回显、保存、菜单树):**已验证解决**,BUG 表与排期已标注 | | 2026-03-29 | 混合布局顶栏:点击目录重定向后菜单项 `:focus` 残留似悬浮背景 — `MixTopMenu` 在选中与 `router.push` 后 `blur`;**已验证解决** | | 2026-03-29 | **#2** 左侧导航:`BasicMenu`/`MenuItem` 路径拼接实验(含 `normalizedLayoutBase` 等)引发回归,**已回退**至仓库原有 `resolveFullPath` + `resolvePath(child.path)` 实现 | | 2026-03-29 | **#2** 再修:确认根因为「根项 basePath 重复拼段」;仅传布局基准 `normalizedLayoutBase`(空→`/`)+ 子级 `:base-path="resolvePath(item.path)"`,`resolvePath` 规范化并与 `activeMenuPath` 对齐 |