初次提交
Build VoiceHub FPK / build-fpk (push) Failing after 56m5s
Build and Push Docker Image / build-and-push (push) Canceled after 1h9m35s

This commit is contained in:
2026-09-06 08:19:02 +08:00
commit 4ce4649aaf
1061 changed files with 337258 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
# 校园广播站点歌系统重构计划
## 1. 数据库重构计划 (PostgreSQL -> MySQL)
- **冲突说明**:当前项目使用 PostgreSQL (基于 `drizzle-orm/pg-core`),包含众多表如 `User`, `PlayTime`, `Song`, `Vote`, `Schedule`, `Notification` 等;而改造技术方案中明确要求使用 MySQL,并且 `users` 和 `songs` 表结构更精简。
- **重构步骤**:
1. 将 `drizzle-orm/pg-core` 替换为 `drizzle-orm/mysql-core`。
2. 修改 `app/drizzle/schema.ts`,将所有 `pgTable` 替换为 `mysqlTable`,`pgEnum` 替换为 MySQL 枚举或字符串,修复类型映射(如 `text` -> `varchar` 或 `text`)。
3. 精简 `User` 表,确保包含 `id`, `username`, `password_hash`, `role`。
4. 修改 `Song` 表,加入 `kg_hash`, `title`, `singer`, `cover_url`,并平滑迁移现有数据。
5. 重新生成 Drizzle 迁移文件 (`drizzle-kit generate`) 并应用到 MySQL 数据库。
## 2. 音源集成重构计划 (多源聚合 -> 仅酷狗音乐)
- **冲突说明**:当前项目在 `app/utils/musicSources.ts` 及 `useMusicSources.ts` 中深度集成了网易云、QQ音乐 (vkeys)、Bilibili 等多平台逻辑;改造方案要求仅保留酷狗音乐。
- **重构步骤**:
1. 移除 `neteaseApi.ts`, `bilibiliSource.ts`, `musicSources.ts` 中的网易云、QQ音乐等配置。
2. 完善 `server/api/kugou/` 下的代理接口(包括 `/search`, `/url`, `/lyric`, `/detail`)。
3. 简化 `useMusicSources.ts` 逻辑,移除平台回退机制,所有请求直接指向酷狗代理接口。
4. 修复前端点歌页面 (`SongList.vue`, `RequestForm.vue`) 中的平台选择器和遗留的网易云/QQ音乐图标。
## 3. UI 现代化与扁平化设计
- **冲突说明**:当前项目已使用 Nuxt UI + Tailwind CSS,且页面中硬编码了大量的深色主题类名(如 `bg-zinc-900`, `text-zinc-300` 等),而改造方案要求采用浅色现代风格(`Background #F8FAFC`, `Neutral Dark #0F172A`)。全面替换将涉及上百个组件的重写。
- **重构步骤**:
1. 修改 `tailwind.config.ts`,将主色调 (`primary`) 映射为 `#2563EB`。
2. 逐步将所有组件中硬编码的 `zinc` 深色类名替换为语义化的 Tailwind 浅色类名(如 `bg-slate-50`, `text-slate-900`)。
3. 在后台管理仪表盘 (`OverviewDashboard.vue`) 和点歌前端引入 Bento Grid (便当盒) 布局。
4. 在全局样式 `components.css` 中为卡片和按钮统一添加微弱的悬停上浮效果(`hover:-translate-y-1 hover:shadow-md`)。
## 4. 后台管理:歌单图片生成功能
- **落地情况**:将在 `ScheduleManager.vue` 或新建的 `SchedulePrinter.vue` 中引入 HTML5 Canvas API,将排期歌单绘制为 400x600 的图片并提供下载。