refactor(cleanup): 清理第二轮非酷狗组件残留(PlaylistSelection/NeteaseUpload/BilibiliIframe)
构建并部署 BYW VoiceHub / Preflight 语法与构建检查 (push) Successful in 2m22s
构建并部署 BYW VoiceHub / 构建并推送容器镜像 (push) Failing after 4m3s
构建并部署 BYW VoiceHub / 部署到生产服务器 (push) Skipped

- RequestForm.vue:删除 PlaylistSelectionModal.vue / NeteaseUploadDialog.vue 2 行无效 import
  (2 组件在合并阶段已物理删除,grep 确认无 ref / 赋值 / template 渲染段残留)
- AudioPlayer.vue:彻底清理 BilibiliIframeModal 相关 8 处残留:
  ① 封面点击事件 @click 三元嵌套语法 bug 修复 → 简化为 !isMobile ? toggleLyrics()
  ② 删除 v-if=false 的「观看视频」Icon 按钮(保留歌词按钮)
  ③ 删除 ClientOnly 包裹的 BilibiliIframeModal 渲染段
  ④ 删除 BilibiliIframeModal.vue / getBilibiliUrl 2 行 import
  ⑤ 删除 showBilibiliIframe ref 定义
  ⑥ 删除 resolveFallbackUrl 中 if(false) 包裹的 bilibili 死代码分支
  ⑦ 删除整个 openBilibiliVideo 函数(含 iframe 预览 + 新窗口跳转逻辑)
  ⑧ handlePlayerClick 移动端逻辑简化为直接 toggleLyrics(移除 bilibili 平台分支)
- 验证:
  ・IDE GetDiagnostics 0 error / 0 warning
  ・grep 本轮 3 Modal 关键字在 app/components 下 0 命中(仅 utils/url.ts 保留 getBilibiliUrl
    工具函数定义,未被 import,不影响 build)
  ・上一轮 4 Modal(NeteaseLogin/PodcastEpisodes/BilibiliEpisodes/RecentSongs)
    grep 0 命中(持续干净)
This commit is contained in:
2026-09-06 11:50:33 +08:00
parent 167b60a368
commit d247cfbda3
2 changed files with 3 additions and 60 deletions
-2
View File
@@ -849,9 +849,7 @@ import Icon from '../UI/Icon.vue'
import { convertToHttps, validateUrl } from '~/utils/url'
import ImportSongsModal from './ImportSongsModal.vue'
import PlaylistSelectionModal from './PlaylistSelectionModal.vue'
import UserSearchModal from '../Common/UserSearchModal.vue'
import NeteaseUploadDialog from './NeteaseUploadDialog.vue'
const props = defineProps({
loading: {
+3 -58
View File
@@ -26,13 +26,7 @@
<!-- 封面 -->
<div
class="cover-container"
@click.stop="
isMobile
? false
? openBilibiliVideo()
: toggleLyrics()
: null
"
@click.stop="!isMobile ? toggleLyrics() : null"
>
<template v-if="activeSong && activeSong.cover && !coverError">
<img
@@ -107,15 +101,7 @@
<!-- 控制按钮区域 -->
<div class="controls-frame">
<!-- 左侧歌词按钮 -->
<span
v-if="false"
class="lyrics-btn music-icon"
title="观看视频"
@click="openBilibiliVideo"
>
<Icon name="video" size="20" />
</span>
<span v-else class="lyrics-btn music-icon" title="歌词" @click="toggleLyrics">
<span class="lyrics-btn music-icon" title="歌词" @click="toggleLyrics">
<Icon name="music" size="20" />
</span>
@@ -210,16 +196,6 @@
<LyricsModal :is-visible="showFullscreenLyrics" @close="showFullscreenLyrics = false" />
</ClientOnly>
<!-- 哔哩哔哩 iframe 预览模态 -->
<ClientOnly>
<BilibiliIframeModal
:show="showBilibiliIframe"
:bvid="activeSong?.musicId?.split(':')[0]"
:page="activeSong?.musicId?.split(':')[2] ? parseInt(activeSong.musicId.split(':')[2]) : 1"
@close="showBilibiliIframe = false"
/>
</ClientOnly>
<ConfirmDialog
:show="showFallbackOpenDialog"
title="打开投稿链接"
@@ -238,7 +214,6 @@ import { computed, nextTick, onMounted, onUnmounted, ref, watch } from 'vue'
import AppleMusicLyrics from './AppleMusicLyrics.vue'
import LyricsModal from './LyricsModal.vue'
import AudioElement from './AudioPlayer/AudioElement.vue'
import BilibiliIframeModal from './BilibiliIframeModal.vue'
import Icon from './Icon.vue'
import ConfirmDialog from './ConfirmDialog.vue'
import { useAudioPlayerControl } from '~/composables/useAudioPlayerControl'
@@ -246,7 +221,6 @@ import { useAudioPlayerSync } from '~/composables/useAudioPlayerSync'
import { useAudioQuality } from '~/composables/useAudioQuality'
import { useAudioPlayerEnhanced } from '~/composables/useAudioPlayerEnhanced'
import { useMediaSession } from '~/composables/useMediaSession'
import { getBilibiliUrl } from '~/utils/url'
// 添加 router 导入
const router = useRouter()
@@ -286,7 +260,6 @@ const showLyrics = ref(false)
const showFullscreenLyrics = ref(false)
const coverError = ref(false)
const useAppleMusicStyle = ref(true) // 默认使用Apple Music风格
const showBilibiliIframe = ref(false) // 显示哔哩哔哩 iframe 预览
// 时长显示模式:'remaining' 显示剩余时长,'total' 显示总时长
const timeDisplayMode = ref('remaining')
@@ -367,13 +340,6 @@ const resolveFallbackUrl = () => {
const playUrl = normalizeHttpUrl(song.playUrl)
if (playUrl) return playUrl
if (false) {
const bilibiliUrl = getBilibiliUrl(song)
if (bilibiliUrl && bilibiliUrl !== '#') {
return bilibiliUrl
}
}
return null
}
@@ -962,23 +928,6 @@ const toggleLyrics = () => {
showFullscreenLyrics.value = true
}
const openBilibiliVideo = () => {
const song = activeSong.value
if (!song) return
// 如果播放器有错误,显示 iframe 预览
if (control.hasError.value) {
showBilibiliIframe.value = true
return
}
// 否则在新窗口打开
const url = getBilibiliUrl(song)
if (url && url !== '#') {
window.open(url, '_blank')
}
}
const handleLyricSeek = async (time) => {
// 如果当前处于暂停状态,先开始播放
if (!control.isPlaying.value) {
@@ -1152,11 +1101,7 @@ const checkMobile = () => {
// 移动端点击播放条处理
const handlePlayerClick = () => {
if (isMobile.value) {
if (activeSong.value?.musicPlatform === 'bilibili') {
openBilibiliVideo()
} else {
toggleLyrics()
}
toggleLyrics()
}
}