From 153ee41ef07b84f8cfb4ff3905abc0651c3ac4ba Mon Sep 17 00:00:00 2001 From: HenryDu8133 <813367384@qq.com> Date: Sat, 12 Sep 2026 08:33:25 +0800 Subject: [PATCH] =?UTF-8?q?feat(schedule)+fix(schedule)+feat(player):=20?= =?UTF-8?q?=E6=8E=92=E6=9C=9F=E7=AE=A1=E7=90=865=E9=A1=B9=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=20-=20=E7=B4=A7=E5=87=91=E5=B8=83=E5=B1=80/=E6=8A=95?= =?UTF-8?q?=E7=A8=BF=E4=BA=BA=E4=BC=98=E5=85=88=E7=AE=97=E6=B3=95/localSto?= =?UTF-8?q?rage=E6=8C=81=E4=B9=85=E5=8C=96/=E5=A4=87=E9=80=89=E6=B1=A0?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D/=E6=92=AD=E6=94=BE=E9=98=9F=E5=88=97?= =?UTF-8?q?=E6=8C=89=E9=92=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * fix+style(schedule): ScheduleManager 标签页紧凑布局,头部 min-height 防抖,内容区统间距与移动端适配 * feat(schedule): 新增自动排期策略「按投稿人数优先覆盖」,按 requester+collaborators 数排序分配好时段 * feat(schedule): localStorage 键 voicehub:schedule:auto-config 持久化策略/时段/学期/过滤等7项,onMounted 恢复,watch debounce 500ms 保存 * fix(schedule): songs/index.get.ts 新增 use_pool 查询参数,备选池过滤条件 status=PENDING + song.played=false + song未在任何排期中;ScheduleManager/draft-bulk 创建排期时将池记录 UPDATE 为 ASSIGNED * feat(player): ScheduleManager 工具栏新增「构建播放队列」按钮,按 playDate+playTimeId+sequence 排序后调用 useAudioPlayer.playSong 加载播放列表,支持 confirm 确认与 toast 反馈 * refactor(useSongs): fetchSongs 增加第5参数 usePool,透传 use_pool=true 到 /api/songs --- app/components/Admin/ScheduleManager.vue | 338 ++++++++++++++++--- app/composables/useSongs.ts | 9 +- server/api/admin/schedule.post.ts | 23 +- server/api/admin/schedule/draft-bulk.post.ts | 17 +- server/api/songs/index.get.ts | 35 +- 5 files changed, 364 insertions(+), 58 deletions(-) diff --git a/app/components/Admin/ScheduleManager.vue b/app/components/Admin/ScheduleManager.vue index 2c4d780..c36f17d 100644 --- a/app/components/Admin/ScheduleManager.vue +++ b/app/components/Admin/ScheduleManager.vue @@ -1,23 +1,35 @@