工作台删除「涨粉榜」tab(三榜变两榜,技能 douyin-rise-ranking 保留)

用户指令「删除涨粉榜功能」→ 范围=只删工作台 tab:
- app.js 首页 rank-tabs 删 fans 按钮 + 注释 3→2
- data-pages.js RANK_TABS 删 ['fans','涨粉榜'] 行
- 首页 tab handler 通用逻辑无特判,删除即收敛;cdp 验证脚本 fans=粉丝列保留
- node --check + 伺服零残留验证通过
This commit is contained in:
maogeigei committed 2026-09-03 13:14:45 +08:00
1 parent a6a34794ca
commit 2fc8b7b3f6
3 files changed
+8 -4

No files matched your search

+6
View File
@@ -135,3 +135,9 @@
- **主 SKILL.md 4 处同步**:技能清单加第 12 行(文件数 6)、落盘规范表「4 涨粉榜」状态 ❌预留→✅已实现、目录树 11→12 + douyin-rise-ranking 行、更新记录追加一行
- **dsh 同步**:`C:\Users\maidou\.dsh\skills\mcn-data-insight\` cp 主 SKILL.md + douyin-rise-ranking 目录,diff=0,subskills 11→12
- **Edit 工具坑(重踩)**:同文件并行 Edit 有竞争(目录树改动未落盘,返回 success 却丢失)→ 同文件编辑必须串行/完成后 grep 复核;CRLF 文件多行 Edit 的 old_string 不匹配 → 行级 Python 替换脚本处理(归一化行尾);v1 脚本 R1 pattern 想当然漏中间三行 → 教训:pattern 逐字符抄 Read 输出,复杂删除改行级状态机
## 工作台删除「涨粉榜」tab(09-03 13:15,用户选「只删工作台 tab」)
- 用户指令「删除涨粉榜功能」→ 范围确认:**技能 douyin-rise-ranking 保留**,仅删工作台热点数据页/首页的涨粉榜 tab(三榜变两榜)
- 改动 2 文件(纯静态,无需重启服务):`mcn-work-shop/public/app.js` 首页 rank-tabs 删 fans 按钮行(L329)+ 注释「3 个新榜」→「2 个」;`data-pages.js` RANK_TABS 删 `['fans','涨粉榜'],` + L507 注释去涨粉榜
- 首页 tab 点击 handler 为通用逻辑(week=列表/其余占位)无 fans 特判,删按钮即自动收敛;cdp-verify-*.mjs 里的 `fans` 是**周榜表格粉丝列**(rk-num nth-child(5))非涨粉榜 tab,保留未动;docs/AI会话任务输入输出对照.md 仅提入口未列 tab 无需改
- 验证:node --check 两文件通过 + 服务 8900 伺服 js `grep -c 涨粉榜`=0;CDP 9224/9223 无调试浏览器未做视觉验证
@@ -326,7 +326,6 @@ function renderHome() {
<button class="rank-tab active" data-rank-tab="week" role="tab">账号周榜</button>
<button class="rank-tab" data-rank-tab="hot" role="tab">视频热榜</button>
<button class="rank-tab" data-rank-tab="likes" role="tab">点赞榜</button>
<button class="rank-tab" data-rank-tab="fans" role="tab">涨粉榜</button>
</div>
<div class="rank-tools" id="rankTools">
<select id="rankCat" class="input-select rank-filter" title="赛道筛选"></select>
@@ -662,7 +661,7 @@ async function router() {
updateCrumbs('');
view.innerHTML = renderHome();
view.querySelectorAll('.data-card').forEach((b) => b.addEventListener('click', () => { location.hash = b.dataset.hash; }));
// 周榜 tab 切换:账号周榜显示列表+工具条,其余 3 个新榜先占位
// 周榜 tab 切换:账号周榜显示列表+工具条,其余 2 个新榜先占位
view.querySelectorAll('.rank-tab').forEach((t) => t.addEventListener('click', () => {
view.querySelectorAll('.rank-tab').forEach((x) => x.classList.toggle('active', x === t));
const week = t.dataset.rankTab === 'week';
@@ -504,12 +504,11 @@ async function confirmAiScript(accountName, btn) {
/* ================= 周榜 ================= */
/* ================= 热点数据(#/ranking:账号周榜为主,多榜 tab 与首页 rank-preview 一致) ================= */
async function renderRanking(view) {
// tab 与首页 rank-tabs 一致:账号周榜有本地数据文件;视频热榜/点赞榜/涨粉榜暂占位(后端 RANKING_DIR 目前仅周榜 json)
// tab 与首页 rank-tabs 一致:账号周榜有本地数据文件;视频热榜/点赞榜暂占位(后端 RANKING_DIR 目前仅周榜 json)
const RANK_TABS = [
['week', '账号周榜'],
['hot', '视频热榜'],
['likes', '点赞榜'],
['fans', '涨粉榜'],
];
let state = { tab: 'week', date: '', category: '', sortBy: 'comprehensiveScore', order: 'desc', page: 1, pageSize: 20, dates: [], categories: [] };
const meta = await api('/api/dsh/ranking?pageSize=20').catch((e) => ({ ok: false, error: e.message }));