R55-R58: AI脚本弹窗版本条(新在右旧在左)+教程完整链维度不适用即隐藏+热点账号日榜+脚本删除按钮(级联诊断分镜, 含help-guide.js补纳入)
This commit is contained in:
1 parent
3343323226
commit
32565a7881
8 files changed
+747
-107
No files matched your search
@@ -25,3 +25,46 @@
|
||||
- **改动 6 文件 8 处全量替换**(grep 零残留验证):`index.html` `<title>`、`app.js` 面包屑 crumb-home ×2 + 头注释、`data-pages.js`/`style.css`/`dsh-data.js` 头注释、`server.js` 头注释 + 启动日志;首页无独立大字标题,品牌名只在此两处 UI 呈现
|
||||
- **缓存版本统一 bump** `?v=20260904a`(style/app/data-pages 三文件引用);brand 区曾误加 brand-name 文字会与 crumb-home 重复显示→已撤销
|
||||
- **服务重启生效**:杀 8900 旧进程(34076)→ 重启(24836),curl 验证 `<title>短视频工作台</title>` + crumb-home 文本正确
|
||||
|
||||
## AI脚本弹窗版本条重构:新在右 旧在左(R55)
|
||||
- 用户反馈:「AI脚本 弹窗内容下面的版本切换 不好理解,默认选中的是 最新版 还是 最老的版本」→ 答复=默认最新(rewrite_log ORDER BY id DESC,索引0=最新,verIdx=0);AskUserQuestion 确认「方向词+最新标记」;追加要求「新的放在右边 旧的放在左边」
|
||||
- **实施(data-pages.js openScriptModal)**:①`rewrites = rewrites.slice().reverse()` 展示层 旧→新(副本翻转,最左=最初版、最右=最新版);②verIdx 默认=length-1(最新/最右),指定 rewriteId 时 findIndex 定位(找不到回最新);③storyboards 同法 reverse(末位=最新分镜);④sbIdx 语义改 -1=未选 → sideContent 自动钳制到该 AI 版本最新分镜(length-1),切版本按钮里 sbIdx=0 改 -1(vprev/vnext 绑定代码本身零改动——数组翻转后方向自动正确);⑤verCtrl 模板:`{label} {idx+1}/{len} · {fmtTime(created_time)} [最新徽标]` + 按钮方向词「← 较旧 / 较新 →」(idx+1=旧到新第几版,末位标最新)
|
||||
- **样式**:style.css 新增 `.rw-ver-new`(primary 实底圆角徽标),count 区时间用 .dim
|
||||
- **版本号**:style.css/data-pages.js bump `?v=20260904b→c`;服务重启(后台 task);node --check 语法通过
|
||||
- **待实测**:浏览器授权后验证——默认打开=最新在最右带徽标、←较旧左移、较旧侧 disabled 边界、分镜列同样式同方向
|
||||
|
||||
## R55 版本条重构浏览器实测通过(11:40,9223 实例)
|
||||
- **环境修复**(铺垫):用户 Chrome 默认 profile 9222 调试端点不响应(DevToolsActivePort 残留但 socket 无监听 + 启动独立 daemon 失败)→ 改用项目既有惯例:启动 9223 专用调试 Chrome `chrome.exe --remote-debugging-port=9223 --user-data-dir=C:/Users/maidou/.workbuddy/tmp/bh-chrome-9223`(固定 profile 已 09-02 授权过,直接返回 Browser JSON 零弹窗),`BU_CDP_URL=http://127.0.0.1:9223` 定向连接 → harness 不再反复弹授权(弹窗根因=连无授权实例,现连已授权 profile)
|
||||
- **AI 脚本版(video 190 = 3 版)实测**:初始 3/3 · 08-24 17:45 最新 + 较新→disabled;← 较旧→2/3 (17:29) 双向可用;再← →1/3 (08-22 16:44) ← disabled;较新→ 回到 2/3 ✓
|
||||
- **分镜版(video 189 = 1 AI + 2 分镜)实测**:初始 分镜 2/2 · 08-22 14:39 最新 + 较新→disabled;← 较旧→分镜 1/2 (08-21 23:06) ← disabled ✓ — 切回 2/2 正常
|
||||
- **最新徽标 CSS**:bg=primary rgb(47,111,237) 蓝实底,color=#fff,fontWeight=600,fontSize=12px,borderRadius=9px,pad 0 7px,marginLeft 6px
|
||||
- **方向词+时间+徽标+边界 disabled+切版本分镜自动定位最新** 全部通过
|
||||
- **遗留**:9223 调试 Chrome 实例已启动常驻(按项目红线「不主动关闭」保留,后续 task 可复用)
|
||||
|
||||
## R56 教程完整链维度「不适用即隐藏」(11:50,实测通过)
|
||||
- 用户诉求:脚本诊断报告中,当前脚本不需要「教程完整链」分析时就不展示该维度(剧情类脚本不评教程维度,现显示灰色 — 占位行)
|
||||
- **数据事实**:script_review.dims_json 中模型对不适用脚本把「教程完整链」置 **null**(12 条复盘全部 null;其余维度有值)
|
||||
- **落码(data-pages.js)**:新增 `diagDimHas(dims,k)`(值是否为有限数字)+ `diagVisibleDims(dims)` = 教程完整链有值→完整 11 维列表 / null 或缺失→过滤掉该维度;其余维度无值仍显示 — 灰条(不超范围改动)
|
||||
- **3 处渲染统一替换**:①弹窗右侧诊断面板 diagHtml scoreBar;②完整报告弹窗 reportFullReview scoreBar(compare 双列 aiD/srcD 各自独立判断);③脚本诊断页 openReviewDetail scoreBar(删本地 DIMS_ALL 副本改引用顶层 helper)
|
||||
- **实测(9223)**:video 190(剧情类复盘)弹窗诊断面板与「查看完整复盘报告」均为 10 行维度(创意看点…其他),无教程完整链;反例(教程类有值 88)逻辑显式返回 11 项
|
||||
- **版本号**:data-pages.js bump ?v=20260904c→d
|
||||
|
||||
## R57 热点数据页新增「账号日榜」(12:10,实测通过)
|
||||
- 用户诉求:热点数据榜单加「账号日榜」,放「账号周榜」右边;获取用**不传赛道**方式(全品类 1 次调用),只显示需要的赛道数据
|
||||
- **事实**:douyin-top-account fetch_rank.py --period day 不传 category → API type=全部 全品类 TOP50 单次调用(to_normalized_json 条目带真实赛道 category + comprehensiveScore 等与周榜同构)
|
||||
- **落码**:
|
||||
- 后端 dsh-data.js:RANK_SUB/RANK_FILE_RE 加 `day: '账号日榜' / ^抖音账号日榜_(\d{4}-\d{2}-\d{2})\.json$`;DEF_KEY week||day → comprehensiveScore(账号榜维度,防 day 误落作品榜 key);白名单过滤分支 board!=='week' 自动覆盖 day(RANK_KEEP 5 赛道+生活记录并集)
|
||||
- ranking 页 data-pages.js:RANK_TABS 插 ['day','账号日榜','每日更新,回溯 7 天'](周榜右);st.day;COLS 抽 acctCol(empty) 工厂 week/day 共用(day empty 提示含「更新榜单可抓取,不传赛道全品类」);表格 rank-video 分支加 day(账号榜非窄列);更新按钮/确认弹窗文案四榜 8 次 API;SKILL_HINT_RANKING 加日榜抓取指令(账号日榜/抖音账号日榜_{日期}.json)
|
||||
- 首页预览 app.js:tab 行加 day(title 每日更新回溯7天)、_PREVIEW_COLS 抽 prevAcctCol week/day 共用、空态榜名映射加 day、热点数据卡 desc 改「账号日榜/周榜 · 视频热榜 · 点赞榜」
|
||||
- **实测(9223 + fake 文件验证后删除)**:后端 board=day → dates/categories(5 赛道 RANK_KEEP 序)/10 条过滤非白名单剩 8;ranking 页 tab 顺序=周榜|日榜|热榜|点赞榜、10 列表头同 week、赛道下拉 5 项、筛小剧场 2 行;首页预览 day 正常。fake 文件已删(真实抓取等「更新榜单」任务,1 次全品类 API)
|
||||
- **版本号**:app.js/data-pages.js bump ?v=20260904e;服务重启(dsh-data.js 模块变更)
|
||||
|
||||
## R58 AI脚本弹窗删除按钮(15:20,全路径实测通过)
|
||||
- 用户诉求:AI脚本弹窗 AI脚本内容区域左下角增加浅红删除按钮,确认后删除当前脚本(含相关诊断和分镜提示词数据)
|
||||
- **后端(dsh-data.js)**:`deleteScript(rewriteId)` 级联清理——rewrite_log 删除 → script_review(rewrite_id)+ storyboard_log(rewrite_id);该视频无剩余脚本 → 再清 source 复盘与游离分镜;独立 DatabaseSync 写连接(与只读 getDb 隔离),finally w.close();**必须加 module.exports 导出**(漏=server.js 报 dsh.deleteScript is not a function,R58 踩过一次)
|
||||
- **server.js**:`/api/dsh/script-delete` POST({id})路由
|
||||
- **前端(data-pages.js)**:`.btn-del` 浅红按钮(style.css:#fdf0ef/#f0c9c6/#d9534f + hover 深红)+ `fireDel` 确认弹窗(级联提示文案);多版本 → splice + renderModal() 就地重建(剩余版本、定位相邻版);单版本 isLast → router() 整页重建;verCtrlInner 拆分复用 aiSecHtml 单版本 foot
|
||||
- **★openCustomScriptView 移除(关键改造)**:自定义选题「查看」(data-cview)原绑 openCustomScriptView(09-02 简单只读弹窗:无删除/无诊断/无版本条);openScriptModal rewriteId 分支本已支持自定义单条(custom-script API + 回退全量表定位),改绑 `openScriptModal({rewriteId})` 后统一弹窗(删除按钮+诊断面板齐备),死代码 openCustomScriptView 整体删除(grep 确认仅绑定处 1 引用)
|
||||
- **实测(9223,fake 全清)**:①多版本(video 190 4 版)删第 4/4 → 弹窗重建 3/3 内容切 rw25 ✅;②单版本视频脚本 isLast → router 刷新 ✅;③自定义选题 id38(video_id 空)查看弹窗含删除按钮 → 确认删除 → 弹窗关+行消失,DB 复查 rewrite/review/storyboard 三级全 0 ✅
|
||||
- **版本号**:data-pages.js bump ?v=20260904e→f(静态 js 实时读盘未重启)
|
||||
- **遗留**:R55-R58 改动未 commit(待 git 提交);帮助文档一行两卡 + 模拟操作指引点击无效果仍待修
|
||||
Reference in new issue
Block a user