当前位置: 首页 > news >正文

AI多Agent协作系统实战(二十八):顶栏统一战争——从1个页面异常到31个页面全量对齐

系列第28篇 | 一个顶栏,修了5轮,过了3轮体验,最终7/31完全对齐

第0轮:一个页面异常

用户说:“asset-health.html的菜单栏样式不对,参考客户管理页调整。”

最初只是asset-health一个页面的菜单有问题。派发修复后,我顺手让小白去"顺便看看其他页面"。

小白回来后说了一句话让我头皮发麻:

“21个页面中,只有asset.html是完全正常的。”

剩下的20个页面,问题五花八门——有的子菜单不展开,有的菜单组混入了其他组的菜单项,有的DOM结构把sidebar嵌套在topbar里。

这是菜单栏(侧边栏)的问题,写成了第26篇文章。

第1轮:头像不显示

菜单栏修完后,用户问:“右上角的头像怎么不显示?”

排查发现avatar img标签存在,但显示的是"系"字。开始以为是后端API的问题,去掉了JWT认证。但还是不行。

最后发现是JS脚本最后执行了一行代码

avatarEl.textContent=name.charAt(0);

这行代码在页面加载后找到avatar元素,把它的innerHTML替换成了用户名的第一个字。所以不管img标签怎么设,JS加载完成后都会被覆盖成文字。

修复加了判断:如果avatar已经有img标签,就不覆盖。涉及11个页面。

第2轮:loading不显示

头像修好了,但顶栏右上角一直显示一个空白的黑色区域。

我说"那是’加载中…',只是文字颜色是透明的"。用户说"你怎么知道那是加载中"。

检查DEV-002的修复——小虾给topbarUserName加了loading-shimmer样式:

.loading-shimmer{color:transparent!important;/* 文字看不见 */}

color: transparent让文字透明了。改成半透明白色后,用户终于看到了"加载中…"——然后动画一直从左到右闪个不停。

因为JS填充"管理员"后没有移除loading-shimmer类。加了classList.remove后动画停了。

第3轮:页面显示JS代码

修完loading后,用户打开system.html,看到的不是页面而是一段JS函数源码。

检查发现多了一个</script>标签(8开9闭),导致一个JS函数跑到了<script>标签外面,被浏览器当成了HTML文本渲染。

更严重的是——用脚本扫描所有HTML文件后发现,半数以上页面都有script标签不匹配的问题。这是DEV-002/004/005三批批量修复中累积的bug——小虾复制粘贴时搞乱了标签结构,而review.py从不检查script标签完整性

第4轮:角色全部不加载

script标签修好了,但所有页面的右上角都显示"加载中…“——31个页面,没有一个变成"管理员”。

排查JS代码:

vartoken=localStorage.getItem('token');if(!token)return;// 没token就不请求

原来小白测试时没有先登录。没有token,JS直接return了。

我让小白重新登录后再测试,角色名称就正常了。但在用户看来,这个问题就是"一直加载不出来"。

第5轮:状态不更新

小白反馈完成后,任务状态一直是pending。

追踪check_and_retry发现:done文件名中的task_id解析出错。

文件名:task_xbai_EXP-20260730-003_20260730_161730.json.done
解析后:EXP_20260730_003(实际应为EXP-20260730-003

代码用下划线split后join,把短横线也替换成了下划线。拿着错误的task_id去查DB,当然找不到记录。

全量体检

5轮修复后,让小白登录后逐页检查所有31个页面。

结果:

状态数量说明
✅ 完全一致7个dashboard, asset, project, report, system, alert-center, department-board, menu-manage
🔴 无顶栏4个analytics, permission, role, user(管理系统页面,不需要顶栏)
🟡 标题不一致14个显示硬编码标题而非JS动态设置
🟡 shimmer颜色15个仍是transparent(DEV-002/004/005漏修了)
🔴 页面错乱3个alert-center, billing, cost(script标签问题)

7/31完全对齐,4个管理系统页面本身不需要顶栏,14个标题不一致和15个shimmer问题需要第6轮修复。

教训

  1. 发现1个问题,查全部:asset-health一个顶栏异常,排查后发现31个页面中24个有问题
  2. JS后执行会覆盖HTML:不管HTML怎么写,JS最后执行的一行代码决定了最终结果
  3. 批量修复要校验完整性:script标签不匹配是批量复制粘贴中最容易犯的错误
  4. 测试要先登录:角色加载依赖token,不登录就看不到效果
  5. 文件名解析用分隔符要小心:task_id本身可能包含用于分隔的字符

6轮修复、3轮体验、31个页面、7个完全对齐——一个顶栏的统一之路。

http://www.jsqmd.com/news/1304363/

相关文章:

  • GHelper完整使用指南:告别臃肿,华硕笔记本轻量控制方案
  • 2026 年至今,吴桥评价高的钽块上门回收门店哪个好,卖闲置金属还能赚外快?我叫的这上门收料的,连钽块都给当场结钱了 - 鉴选官
  • 2026推荐:遵义行政套房酒店——元本酒店(汇川区古城店)深度体验指南 - 装修教育财税推荐2026
  • AI助手APP竞争新局:从技术秀场到场景渗透,如何构建核心竞争力
  • Windows下Python实现PDF转PPTX:poppler配置与自动化报告生成
  • SpringBoot医院血液管理系统开发实践
  • STM32H743入门实战:从环境搭建到LED与按键控制
  • LaTeX多色修订系统:用xcolor与soul包实现高效协同写作
  • H3BERTa抗体语言模型:从伪困惑度筛选到AI驱动的抗体设计
  • AI生成科技感背景:为什么你的输出总像“PPT特效”?揭秘底层纹理频率分布与人类视觉感知阈值匹配公式
  • 语音交互与LLM:重塑户外高效工作流,从创意捕获到代码生成
  • 栈数据结构实战:从PTA彩虹瓶题看后进先出原理与应用
  • 《孢子》圆球体角色通关:游戏机制突破与模组开发实战
  • Unity跨平台PDF生成实战:基于HTML/jsPDF的数据导出方案
  • 基于CH32H417WEU6的8通道100MHz开源逻辑分析仪设计与实现
  • 基于PLC功能块与触摸屏实现用户可编程工业控制系统
  • 2026 年牙克石诚信的电厂流渣管铸件厂家厂家怎么联系,你一直错选的电厂部件,真正靠谱的供应源头居然藏在这 - 品质体验官
  • 2026年西安保洁服务公司推荐榜:商场/酒店/4S店/机场等高端场所专业清洁团队优选 - 优企名品
  • 千笔AI:专科生论文写作全流程智能解决方案
  • MyBatis拦截器实现数据库字段透明加解密:注解驱动与AES-GCM实践
  • Obsidian插件汉化指南:3分钟实现英文插件中文界面本地化
  • 【AI工具网站开发实战指南】:20年专家亲授从0到1搭建高转化在线工具站的7大核心模块
  • MyBatis-Plus核心功能与生产实践详解
  • Python面向对象编程:类与实例全解
  • GPT-5.5 API深度解析:从代码生成到企业级应用实战指南
  • 自动控制原理:从物理系统到数学模型的建立方法与核心思维
  • 嵌入式存储开发指南:从NAND Flash时序图到可靠驱动设计
  • 只记得内容却忘了文件名?Papra文档库部署与搜索教程
  • Google Earth接入Nano Banana 2:当AI图像生成遇上真实地图,边界在哪里?
  • 2026年 深圳家具检测机构推荐榜:成品/原辅材料/家居建材/空气质量深度测评与优选指南 - 优企名品