R40-R41: 弹窗 tab 切换闪烁根治(就地局部刷新)+ 开始诊断文案 + tab 间 | 分隔;右侧诊断/分镜面板可收起
R40 弹窗闪烁根因:所有状态切换 mask.remove()+renderModal() 整窗销毁重建,重建前 await review-full 网络 → 空窗闪一下 - 重构 openScriptModal:mask 生命周期内不再移除,tab/分镜翻版=patchSide 就地刷右侧列、版本翻版=patchAll 刷 AI+右侧列、源折叠=纯 CSS - sideContent 抽离(stab=diag 才请求复盘接口);空态按钮开始复盘→开始诊断 - sideToken 防连点竞态 + mask.isConnected 防关闭后写入;bindAll/bindSide/bindScrollSync 分层绑定 - 脚本诊断 | 分镜提示词 两 tab 间加 .rw-side-sep 分隔 R41 右侧面板收起:data-side-toggle 收起钮放 AI 列 head 最右(右列收起头部不可见,入口常驻) - showSide 状态 + rw-sec-hidden 复用;收起后 AI 列占满 stack 100%;chevrons-right/left 图标 - 版本 style.css aa→ac / data-pages.js ab→ad / app.js ICON_PATHS +2 - CDP 冒烟:R40 16/16 + R41 17/17 全绿(mask 同一节点=不闪验证)+ R40 回归复跑 16/16
This commit is contained in:
1 parent
03de8bed5b
commit
dfef295196
5 files changed
+167
-79
No files matched your search
@@ -392,3 +392,31 @@
|
||||
- **SIGTERM 间歇**:单脚本含 Page.reload+Page.navigate+hash 多次切换时偶发被沙箱 SIGTERM 杀死 node 进程——规避=**拆段独立连接**,单脚本只做一件事;首页跳转 hash 用 location.hash=赋值(Runtime.evaluate)而非 Page.navigate
|
||||
- **视觉目检** `tmp/shot-r39-brand.png`:顶部 brand `MCN创意雷达` ✓;首页榜单 tab 组(账号周榜/视频热榜/点赞榜)+ globe 按钮 + 筛选箭头完全水平对齐,globe 图标浅灰 ✓
|
||||
- **R39 待推送**:本地 HEAD=28eba2a(R37-R38 已提交),working tree R39 6 文件改动 + 记忆日志 R39 节未提交;累计本地领先 origin/main **4 commit**(449d784 R35 / 1f147e8 R36 / 28eba2a R37-38 / R39 待提交)
|
||||
|
||||
## R40 弹窗 tab 切换闪烁根治 + 开始诊断文案 + tab 间 | 分隔(09-03 18:10)
|
||||
- **用户反馈**:「为什么点击 脚本诊断 和 分镜提示词 整个弹窗页面都会闪一下。开始复盘 改为 开始诊断。脚本诊断 和 分镜提示词 切换按钮 之间加个 |」
|
||||
- **闪烁根因**:R34 弹窗所有状态切换(tab/版本/源折叠/分镜上下版)都是 `mask.remove(); renderModal();` **整窗销毁重建**;而 renderModal async 在重建前必须 `await diagOf()`(网络请求 `/api/dsh/review-full`)→ 弹窗被删后要等接口返回才重新 append → 空窗几百 ms = 用户看到的「闪一下」
|
||||
- **修复(架构级,openScriptModal 内重构)**:弹窗 DOM(mask)生命周期内**不再移除**,仅就地替换受影响列:
|
||||
- `curOf()` / `verCtrl()` / `sideHeadHtml()` / `srcToggleHtml()` / `srcSecHtml()` / `aiSecHtml()` 抽成独立 HTML 工厂
|
||||
- `sideContent(cur)`:右侧列内容计算(**stab=diag 才请求 review-full**——原实现无论什么 tab 都查,浪费);空态按钮文案「开始复盘」→「**开始诊断**」
|
||||
- `patchSide(mask)`:就地刷新右侧列(tab 切换/分镜上下版)——active 即时切换 + body「加载中…」→ await sideContent → 填充;`sideToken` 递增防连点竞态、`mask.isConnected` 防已关闭后写入
|
||||
- `patchAll(mask)`:就地刷新 AI 列+右侧列(版本上/下一版)
|
||||
- `bindAll/bindSide/bindScrollSync`:动态节点绑定分层——mask 外壳 data-x/背景关闭只绑一次;stack 内节点每次重建后重绑(旧节点随 innerHTML 替换销毁,无重复监听)
|
||||
- 源折叠 `[data-src-toggle]` 改**纯 CSS class toggle**(不再重建)
|
||||
- **tab 间 `|` 分隔**:sideHeadHtml 两按钮间插 `<span class="rw-side-sep">|</span>`;CSS `.rw-side-sep { color: var(--border); font-size: 14px; user-select:none }`
|
||||
- **版本**:data-pages.js ab→ac、style.css aa→ab(app.js 不动)
|
||||
- **CDP 冒烟** `tmp/cdp-r40-modal.mjs` **16/16 PASS**:| 分隔在两 tab 之间 ✓ / 默认 tab=diag ✓ / 按钮「开始诊断」且零「开始复盘」残留(源码级)✓ / **切分镜、切回诊断、版本下一版全程 mask 同一节点未重建(不闪)** ✓ / 分镜内容已填充 ✓
|
||||
- **弹窗行为定版**:tab 切换/分镜翻版/版本翻版/源折叠全部就地刷新 → 无空窗闪烁;仅初次打开 await 数据齐后一次 append
|
||||
|
||||
## R41 弹窗右侧面板可收起(只展示 AI 脚本)(09-03 18:25)
|
||||
- **用户反馈**:「添加功能 可以收起 脚本复盘 | 分镜提示词 内容板块,只展示AI脚本」
|
||||
- **设计**:右侧「脚本诊断|分镜提示词」列可整体收起 → display:none → AI 列 flex:1 自动占满内容区(源列默认收起时即「只展示 AI 脚本」)
|
||||
- 状态 `showSide`(默认 true);右侧列 rw-sec 挂 `data-side-sec` + 按需 `rw-sec-hidden`(复用 R34 源列收起类)
|
||||
- **收起钮位置关键决策**:放 **AI 列 head 最右**(`margin-left:auto`)而非右列自身 head——右列收起后自身头部不可见,展开入口必须常驻 AI 列;`.rw-side-toggle`(chevrons-right=收起/chevrons-left=展开,收起态 `side-off` 高亮提示可点开)
|
||||
- app.js ICON_PATHS 新增 `chevrons-right`/`chevrons-left`(Lucide 双箭头);改 app.js 后版本也要 bump
|
||||
- **代码**:data-pages.js(showSide 状态、sideToggleHtml、bindAll 内 data-side-toggle 绑定、renderModal 初渲染按 showSide 加 class);style.css `.rw-side-toggle`(margin-left:auto + hover 蓝 + side-off 高亮)
|
||||
- **版本**:style.css ab→ac、data-pages.js ac→ad
|
||||
- **CDP 冒烟** `tmp/cdp-r41-side.mjs` **17/17 PASS**(两轮):收起后右列 display:none、仅 AI 列可见、**AI 宽=stack 宽 100%**、收起钮切展开态高亮 ✓ / 展开恢复 ✓ / 收起过程与展开过程 mask 未重建 ✓ / **收起态下切分镜 tab 正常**、展开后停在分镜 ✓
|
||||
- **冒烟断言口径坑(3 FAIL 全为此)**:**源列默认收起 → 打开弹窗初始可见列=2(AI+右侧)不是 3**;AI 宽度占比基准应取 `.rw-stack` 内容宽而非 `.rw-modal` 宽(modal 有 padding 26px×2,占 modal 宽 95% 即已满)
|
||||
- **回归**:R40 冒烟版本断言更新(ab/ac→ac/ad)后复跑 16/16 全绿——R41 未破坏 R40 就地刷新架构
|
||||
- **R40-R41 待提交**:data-pages.js/style.css/app.js/index.html + 记忆日志本节;本地 HEAD=03de8be(R39 已 push origin/main)
|
||||
Reference in new issue
Block a user