From cf360f0193cd41cfaa11145aa048ce0c9b74d4f5 Mon Sep 17 00:00:00 2001 From: Fam Zheng Date: Sat, 30 May 2026 22:26:55 +0100 Subject: [PATCH] =?UTF-8?q?music(chord):=20=E4=BF=AE=E6=8A=93=E5=8F=96=20m?= =?UTF-8?q?ode=20=E4=BC=A0=E9=94=99=20+=20=E8=87=AA=E5=8A=A8=E6=8A=93?= =?UTF-8?q?=E5=8F=96=20role=20=E4=B8=8E=E5=B1=95=E7=A4=BA=E5=AF=B9?= =?UTF-8?q?=E9=BD=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit startChordFetch 把内部 state key 'chord' 直接当 API mode 发给后端, 后端只认 letters/functional → '抓取失败'。改用 CHORD_API_MODE='functional'。 连带:自动抓取存的 role 'chord_functional' 与前端展示 + 手动上传用的 'chord' 不一致,抓成功也不显示。chord_mode_to_role 默认分支改回 'chord'。 --- apps/music/frontend/src/views/PlayerView.vue | 6 ++++-- apps/music/src/main.rs | 3 ++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/apps/music/frontend/src/views/PlayerView.vue b/apps/music/frontend/src/views/PlayerView.vue index 4b95d2d..4929769 100644 --- a/apps/music/frontend/src/views/PlayerView.vue +++ b/apps/music/frontend/src/views/PlayerView.vue @@ -587,6 +587,8 @@ async function runInspire() { } // chord —— 单 mode(只抓 yopu 默认数字级数版) +// 'chord' 是内部 state key / tab 名;发给后端 API 的 mode 必须是 'functional'(数字级数版) +const CHORD_API_MODE = 'functional' const chordStates = ref({ chord: 'idle' }) const chordErrors = ref({ chord: '' }) const chordPollTimers = { chord: null } @@ -989,7 +991,7 @@ async function startChordFetch(mode) { chordStates.value = { ...chordStates.value, [mode]: 'pending' } chordErrors.value = { ...chordErrors.value, [mode]: '' } try { - const r = await chordFetch(selectedId.value, mode) + const r = await chordFetch(selectedId.value, CHORD_API_MODE) if (r.status === 'completed') { await reloadPiece() chordStates.value = { ...chordStates.value, [mode]: 'completed' } @@ -1014,7 +1016,7 @@ async function pollChord(mode) { return } try { - const r = await chordStatus(selectedId.value, mode) + const r = await chordStatus(selectedId.value, CHORD_API_MODE) chordStates.value = { ...chordStates.value, [mode]: r.status || 'pending' } chordErrors.value = { ...chordErrors.value, [mode]: r.error || '' } if (r.status === 'completed') { diff --git a/apps/music/src/main.rs b/apps/music/src/main.rs index f61cf00..83c2636 100644 --- a/apps/music/src/main.rs +++ b/apps/music/src/main.rs @@ -1397,7 +1397,8 @@ struct ChordModeQuery { fn chord_mode_to_role(mode: &str) -> &'static str { match mode { "letters" => "chord_letters", - _ => "chord_functional", + // 单 mode 简化后,数字级数版统一用 role 'chord',与手动上传 + 前端展示一致 + _ => "chord", } }