106106 <div v-else class =" artists" >
107107 <SvgIcon :depth =" 3" name =" Artist" size =" 20" />
108108 <div class =" ar-list" >
109- <span class =" ar" >{{ musicStore.playSong.dj?.creator || "未知艺术家" }}</span >
109+ <span class =" ar" @click =" showCreatorTip" >
110+ {{ musicStore.playSong.dj?.creator || "未知艺术家" }}
111+ </span >
110112 </div >
111113 </div >
112114 <!-- 专辑 -->
135137 <div
136138 v-if =" musicStore.playSong.type === 'radio'"
137139 class =" dj"
138- @click =" jumpPage({ name: 'dj', query: { id: musicStore.playSong.dj?.id } }) "
140+ @click =" jumpToRadio "
139141 >
140142 <SvgIcon :depth =" 3" name =" Podcast" size =" 20" />
141143 <span class =" name-text text-hidden" >{{ musicStore.playSong.dj?.name || "播客电台" }}</span >
@@ -152,6 +154,7 @@ import { removeBrackets } from "@/utils/format";
152154import { SongUnlockServer } from " @/core/player/SongManager" ;
153155import { useLyricManager } from " @/core/player/LyricManager" ;
154156import { usePlayerController } from " @/core/player/PlayerController" ;
157+ import { radioProgramDetail } from " @/api/radio" ;
155158const props = defineProps <{
156159 /** 数据居中 */
157160 center? : boolean ;
@@ -253,6 +256,36 @@ const jumpPage = debounce(
253256 trailing: false ,
254257 },
255258);
259+
260+ // 暂不支持查看主播主页
261+ const showCreatorTip = () => window .$message .info (" 暂不支持查看主播主页" );
262+
263+ // 跳转到播客电台页面
264+ const jumpToRadio = debounce (
265+ async () => {
266+ const song = musicStore .playSong ;
267+ let radioId = song .dj ?.radioId ;
268+ // 兼容旧数据:通过节目详情 API 获取电台 ID
269+ if (! radioId && song .id ) {
270+ try {
271+ const res = await radioProgramDetail (song .id );
272+ radioId = res .program ?.radio ?.id ;
273+ // 回写避免重复请求
274+ if (radioId && song .dj ) song .dj .radioId = radioId ;
275+ } catch (_e ) {
276+ // ignore
277+ }
278+ }
279+ if (! radioId ) return ;
280+ statusStore .showFullPlayer = false ;
281+ router .push ({ name: " radio" , query: { id: radioId } });
282+ },
283+ 300 ,
284+ {
285+ leading: true ,
286+ trailing: false ,
287+ },
288+ );
256289 </script >
257290
258291<style lang="scss" scoped>
0 commit comments