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