4343 </n-ellipsis >
4444 <!-- 音质 -->
4545 <n-tag
46- v-if =" song?.path && song?.quality "
46+ v-if =" song?.quality && settingStore.showSongQuality "
4747 :bordered =" false"
48- :type =" song.quality === 'Hi-Res' ? 'warning' : 'info' "
48+ :type =" qualityColor "
4949 class =" quality"
5050 round
5151 >
5252 {{ song.quality }}
5353 </n-tag >
54+ <!-- 原唱翻唱 -->
55+ <template >
56+ <n-tag v-if =" song.originCoverType === 1" :bordered =" false" type =" primary" round >
57+ 原
58+ </n-tag >
59+ <n-tag v-if =" song.originCoverType === 2" :bordered =" false" type =" info" round >
60+ 翻唱
61+ </n-tag >
62+ </template >
5463 <!-- 特权 -->
55- <n-tag v-if =" song.originCoverType === 1" :bordered =" false" type =" primary" round >
56- 原
57- </n-tag >
58- <n-tag v-if =" song.originCoverType === 2" :bordered =" false" type =" info" round >
59- 翻唱
60- </n-tag >
61- <n-tag v-if =" song.free === 1" :bordered =" false" type =" error" round > VIP </n-tag >
62- <n-tag v-if =" song.free === 4" :bordered =" false" type =" error" round > EP </n-tag >
63- <!-- 云盘 -->
64- <n-tag v-if =" song?.pc" :bordered =" false" class =" cloud" type =" info" round >
65- <template #icon >
66- <SvgIcon name =" Cloud" />
67- </template >
68- </n-tag >
64+ <template v-if =" settingStore .showSongPrivilegeTag " >
65+ <n-tag v-if =" song.free === 1" :bordered =" false" type =" error" round > VIP </n-tag >
66+ <n-tag v-if =" song.free === 4" :bordered =" false" type =" error" round > EP </n-tag >
67+ <!-- 云盘 -->
68+ <n-tag v-if =" song?.pc" :bordered =" false" class =" cloud" type =" info" round >
69+ <template #icon >
70+ <SvgIcon name =" Cloud" />
71+ </template >
72+ </n-tag >
73+ </template >
6974 <!-- MV -->
7075 <n-tag
7176 v-if =" song?.mv"
151156</template >
152157
153158<script setup lang="ts">
154- import type { SongType } from " @/types/main" ;
155- import { useStatusStore , useMusicStore , useDataStore } from " @/stores" ;
159+ import { QualityType , type SongType } from " @/types/main" ;
160+ import { useStatusStore , useMusicStore , useDataStore , useSettingStore } from " @/stores" ;
156161import { formatNumber } from " @/utils/helper" ;
157162import { openJumpArtist } from " @/utils/modal" ;
158163import { toLikeSong } from " @/utils/auth" ;
159164import { isObject } from " lodash-es" ;
160165import { formatTimestamp , msToTime } from " @/utils/time" ;
161166import { usePlayer } from " @/utils/player" ;
162- import blob from " @/utils/blob" ;
163167import { isElectron } from " @/utils/env" ;
168+ import blob from " @/utils/blob" ;
164169
165170const props = defineProps <{
166171 // 歌曲
@@ -178,10 +183,19 @@ const player = usePlayer();
178183const dataStore = useDataStore ();
179184const musicStore = useMusicStore ();
180185const statusStore = useStatusStore ();
186+ const settingStore = useSettingStore ();
181187
182188// 歌曲数据
183189const song = toRef (props , " song" );
184190
191+ // 音质颜色
192+ const qualityColor = computed (() => {
193+ if (song .value .quality === QualityType .HiRes ) return " warning" ;
194+ if (song .value .quality === QualityType .SQ ) return " warning" ;
195+ if (song .value .quality === QualityType .HQ ) return " info" ;
196+ return " primary" ;
197+ });
198+
185199// 加载本地歌曲封面
186200const localCover = async (show : boolean ) => {
187201 if (! isElectron || ! show || ! song .value .path ) return ;
0 commit comments