v25: AI写脚本页三tab脚本中心(参考选题/自定义选题/ABC占位)+UI创作写库闭环

- dsh-data: listCustomScripts/getCustomScript/saveScript(可写连接)/getRewriteStats
- server: /api/dsh/custom-scripts|custom-script|script-save|rewrite-stats
- data-pages: renderRewrites tab化重构(保留openRewriteCompare),徽标计数,账号级进入默认落有数据tab,chip清账号筛选,openCustomScriptView全文弹窗
- saveHintOf 追加全部UI创作prompt尾(参考选题带videoId/awemeId,自定义仅accountId)
- 修复: note/accChip 顶层const不随tab更新→移入load()重算
- style: rw-tabs/rw-tab-badge/rw-chip/cw-modal; app.js +copy图标
This commit is contained in:
maogeigei committed 2026-09-02 19:32:19 +08:00
1 parent 9d95237f58
commit a11b68a03e
6 files changed
+333 -77

No files matched your search

+9
View File
@@ -462,3 +462,12 @@
- **改动 3 处**:data-pages.js REQ_FIELDS pain label `'痛点/爽点'`→`'痛点 / 爽点'`(parseReqSheet/reqMdOf 均 label 驱动,自动一致);data-pages.js renderRewrites `days:'30'`→`'90'`(下拉已有近三个月=90 选项,后端 listVideos 任意数值透传 `-${n} days`);server.js clarify prompt 模板行 + 707 叙述句同步 `痛点 / 爽点`
- **坑(Git Bash taskkill)**:`taskkill //PID 8528 //F` 在 Git Bash 报「无效参数/选项 - '//PID'」→ 旧进程没杀掉,新 node 发现 8900 被占退避 8901,8900 上仍是旧代码!改用 PowerShell `Stop-Process -Id X -Force` 双杀 8528+25320 后重启成功(新 PID 15148)。教训:**Windows 杀 node 进程一律用 PowerShell Stop-Process,勿用 Git Bash taskkill // 语法**
- 注释行 174/177(v17/v20 历史记录)保留旧写法不失真;commit 8443af1;重开 `?v=20260902-19#/rewrites`
## MCN工作台 v25:AI写脚本页三 tab 脚本中心 + UI 创作写库闭环(用户方案「2 先执行」)
- **背景根因**:UI 发起的 AI创作(账号列表弹窗/视频行)prompt 无写库指令 → 脚本只落会话/产出目录,从未进 rewrite_log(库内 26 条全为带写库提示的 batch 脚本);账号列表「AI脚本」N 条跳 rewrites 看不到自定义选题脚本(video_id 空行不被视频列表承载)
- **用户方案定稿**:AI写脚本 列表页分三 tab——【参考选题创作】(有原视频 video_id>0)/【自定义选题创作】(无原视频 video_id 空,账号弹窗创作)/【ABC融合创作(功能待实现,占位)】
- **后端(已全量)**:dsh-data.js 新增 listCustomScripts(video 空+done+非空 text,search=title/account/topic,account 精确过滤)/ getCustomScript(id 拉全文,拒绝 video_id 行)/ saveScript(可写 DatabaseSync 独立连接,videoId>0→video_id 否则 NULL,datetime localtime)/ getRewriteStats(徽标计数:videoScripts vs customScripts,按 account 可选);server.js 路由 custom-scripts / custom-script / script-save(POST) / rewrite-stats;module.exports 全导出
- **前端(tab 化重构 renderRewrites,data-pages.js ~943 行整体 Python 拼接替换,保留嵌套 openRewriteCompare)**:state={tab,scope,ref:{search/parsed/days=90/page/batch},custom:{search/days/page},stats};tab 徽标=state.stats 计数(口径与账号列表 AI脚本 列一致);账号级进入(#/rewrites/账号名)时若 customScripts>0 → 默认落自定义 tab,否则参考 tab;自定义 tab 行=账号/标题/字数/创建时间/查看(openCustomScriptView 全文弹窗:GET custom-script?id,md 渲染+复制全文);chip×清除账号筛选回全局(scope/ref.search 清空→reloadAll 重算徽标);ABC tab=empty-state 占位;**note/accChip 必须放 load() 内每次渲染重算**(顶层 const 只在函数首次执行取值,tab 切换不更新——已修复)
- **写库闭环**:saveHintOf(ctx)(data-pages.js 顶部常量)追加进所有 UI 创作 prompt 尾——参考选题=saveHintOf({videoId,awemeId,accountId})(rewrites ref 行 data-rewrite 补 aweme 字段);自定义=saveHintOf({accountId});指令=任务完成后 fetch POST /api/dsh/script-save JSON.stringify(明确不手拼 JSON、失败重试一次),agent 勿猜库路径
- **自检实录**:POST save(accountId 1629 旧梦留声机)→ ok:true id=38 → custom-scripts?account=旧梦留声机 total=1 → custom-script?id=38 全文 ok → rewrite-stats 26/1 → node DatabaseSync DELETE id=38 清理 → 26/0。既有库中 26 条全部 video_id>0=有源(custom=0 符合「UI 从未入库」根因)
- commit 待执行;重启(PowerShell Stop-Process 杀 8900 → 后台 node server.js 新进程);前端静态文件改动免重启(no-store),**重开页面必须带 ?v=20260902-2X 版本参数**