From d22abecf12d3bba00dc28569e415d8824190ae91 Mon Sep 17 00:00:00 2001
From: "3371392206@qq.com" <3371392206@qq.com>
Date: Sun, 30 Aug 2026 00:51:23 +0800
Subject: [PATCH] =?UTF-8?q?fix(ui):=20store.Voice=20=E5=8A=A0=20JSON=20tag?=
=?UTF-8?q?,=E4=BF=AE=E3=80=8C=E9=9F=B3=E8=89=B2=E6=98=AF=E7=A9=BA?=
=?UTF-8?q?=E7=9A=84=E3=80=8D+=20UI=20=E6=95=B4=E4=BD=93=E6=8D=A2=E7=9A=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
本次 3 个改动:
1. **【BUG 修复】store.Voice 加 JSON tag** — 用户报「进入系统音色是空的」。
实际:DB 里有数据,API 也返了。Bug 在 store.Voice 结构体没加 json tag,
Go 序列化为大写("Name"/"Speaker"/"ResourceID"/"Enabled"),而所有
admin.html 用 v.name/v.speaker/v.resource_id/v.enabled 拿,全是 undefined。
表渲染了但每格空。修复后 API 返小写,前端能正常读。
写 store/voices_test.go 加 TestVoice_JSONTags 防退化。
2. **【UI 换皮】Codex 改造 admin.html + setup.html**
- admin.html: 31KB → 58.8KB (1075 行)
加: 侧边栏 + 品牌 + 4 步导航、toast 通知系统、grid 卡片、
搜索/筛选/状态分页、stat-card 带 pill、modal + 过渡动画、
按钮大小/颜色变体、响应式字体缩放
- setup.html: 13KB → 23KB (428 行)
加: 4 步向导 + 进度条 (步骤 1: 上游凭证 / 2: 默认路由 /
3: 音色列表 / 4: 确认)、语音行 hover、确认页打码展示
- 功能完全保留: API 路径/字段/hash 路由/401 拦截都未改
3. **【小修】setup.html 装完跳转回退用 /admin 不是 /dashboard**
Codex 改的版本回退写成 /dashboard,是回归。已改回 /admin。
测试:
- 已有 store/installer/middleware/router/telemetry 测试全绿
- 新增 store/voices_test.go: TestVoice_JSONTags + TestVoice_UnmarshalTags
E2E 验证(本机):
- install 2 voices → DB 写入 ✓
- GET /api/voices 返小写 id/name/speaker/resource_id/enabled 等 ✓
- PATCH /api/voices/qian/toggle → 200 + lowercase 回包 ✓
- POST /api/voices → 201 + lowercase 回包 ✓
- GET /api/voices 再次列 3 条(原 2 + 新 1)✓
未 push (等用户测试「音色终于显示出来」)
二进制大小: ~18MB → ~18.5MB (admin.html +27KB embed)
---
.gitignore | 6 +
router/admin.html | 1132 ++++++++++++++++++++++++++++++++-------------
router/setup.html | 314 ++++++++++---
store/voices.go | 24 +-
4 files changed, 1084 insertions(+), 392 deletions(-)
diff --git a/.gitignore b/.gitignore
index d9390ee..d1172cb 100644
--- a/.gitignore
+++ b/.gitignore
@@ -32,3 +32,9 @@ tts.db
tts.db-*
tts.db.*
installed.lock
+
+# UI handoff bundle (for external AI redesign work; not deployed)
+ui-handoff/
+
+# Docs (本地草稿,不入库)
+docs/
diff --git a/router/admin.html b/router/admin.html
index 21d73ca..f7f19c3 100644
--- a/router/admin.html
+++ b/router/admin.html
@@ -8,360 +8,806 @@
+
+
+
+
+ {{ t.type === 'ok' ? '✓' : t.type === 'err' ? '!' : '⚠' }}
+ {{ t.msg }}
+
+
+
+
-
-
火山 TTS · 管理后台
-
输入 OPENAI_TTS_API_KEY 登录
-
-
-
{{ loginErr }}
+
+
+
TTS
+
管理后台
+
输入 OPENAI_TTS_API_KEY 登录
+
+
+
⚠ {{ loginErr }}
+
-
-
-