mirror of
https://github.com/GiriNeko/YesPlayMusic.git
synced 2025-12-18 06:07:48 +00:00
feat: Add time to lyric page (#1676)
* feat: Add time on lyrics page * feat: Add the setting item of whether to display the time on the lyrics page * fix: fix some issue
This commit is contained in:
parent
7b911c1658
commit
9e64222bdf
5 changed files with 73 additions and 0 deletions
|
|
@ -166,6 +166,7 @@ export default {
|
||||||
subTitleDefault: 'Show Alias for Subtitle by default',
|
subTitleDefault: 'Show Alias for Subtitle by default',
|
||||||
enableReversedMode: 'Enable Reversed Mode (Experimental)',
|
enableReversedMode: 'Enable Reversed Mode (Experimental)',
|
||||||
enableCustomTitlebar: 'Enable custom title bar (Need restart)',
|
enableCustomTitlebar: 'Enable custom title bar (Need restart)',
|
||||||
|
showLyricsTime: 'Display current time',
|
||||||
lyricsBackground: {
|
lyricsBackground: {
|
||||||
text: 'Show Lyrics Background',
|
text: 'Show Lyrics Background',
|
||||||
off: 'Off',
|
off: 'Off',
|
||||||
|
|
|
||||||
|
|
@ -173,6 +173,7 @@ export default {
|
||||||
on: '打开',
|
on: '打开',
|
||||||
dynamic: '动态(GPU 占用较高)',
|
dynamic: '动态(GPU 占用较高)',
|
||||||
},
|
},
|
||||||
|
showLyricsTime: '显示当前时间',
|
||||||
closeAppOption: {
|
closeAppOption: {
|
||||||
text: '关闭主面板时...',
|
text: '关闭主面板时...',
|
||||||
ask: '询问',
|
ask: '询问',
|
||||||
|
|
|
||||||
|
|
@ -164,6 +164,7 @@ export default {
|
||||||
subTitleDefault: '副標題使用別名',
|
subTitleDefault: '副標題使用別名',
|
||||||
enableReversedMode: '啟用倒序播放功能 (實驗性功能)',
|
enableReversedMode: '啟用倒序播放功能 (實驗性功能)',
|
||||||
enableCustomTitlebar: '啟用自訂標題列(重新啟動後生效)',
|
enableCustomTitlebar: '啟用自訂標題列(重新啟動後生效)',
|
||||||
|
showLyricsTime: '顯示目前時間',
|
||||||
lyricsBackground: {
|
lyricsBackground: {
|
||||||
text: '顯示歌詞背景',
|
text: '顯示歌詞背景',
|
||||||
off: '關閉',
|
off: '關閉',
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,9 @@
|
||||||
|
|
||||||
<div class="left-side">
|
<div class="left-side">
|
||||||
<div>
|
<div>
|
||||||
|
<div v-if="settings.showLyricsTime" class="date">
|
||||||
|
{{ date }}
|
||||||
|
</div>
|
||||||
<div class="cover">
|
<div class="cover">
|
||||||
<div class="cover-container">
|
<div class="cover-container">
|
||||||
<img :src="imageUrl" loading="lazy" />
|
<img :src="imageUrl" loading="lazy" />
|
||||||
|
|
@ -277,6 +280,7 @@ export default {
|
||||||
highlightLyricIndex: -1,
|
highlightLyricIndex: -1,
|
||||||
minimize: true,
|
minimize: true,
|
||||||
background: '',
|
background: '',
|
||||||
|
date: this.formatTime(new Date()),
|
||||||
};
|
};
|
||||||
},
|
},
|
||||||
computed: {
|
computed: {
|
||||||
|
|
@ -367,6 +371,12 @@ export default {
|
||||||
created() {
|
created() {
|
||||||
this.getLyric();
|
this.getLyric();
|
||||||
this.getCoverColor();
|
this.getCoverColor();
|
||||||
|
this.initDate();
|
||||||
|
},
|
||||||
|
beforeDestroy: function () {
|
||||||
|
if (this.timer) {
|
||||||
|
clearInterval(this.timer);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
destroyed() {
|
destroyed() {
|
||||||
clearInterval(this.lyricsInterval);
|
clearInterval(this.lyricsInterval);
|
||||||
|
|
@ -374,6 +384,25 @@ export default {
|
||||||
methods: {
|
methods: {
|
||||||
...mapMutations(['toggleLyrics', 'updateModal']),
|
...mapMutations(['toggleLyrics', 'updateModal']),
|
||||||
...mapActions(['likeATrack']),
|
...mapActions(['likeATrack']),
|
||||||
|
initDate() {
|
||||||
|
var _this = this;
|
||||||
|
clearInterval(this.timer);
|
||||||
|
this.timer = setInterval(function () {
|
||||||
|
_this.date = _this.formatTime(new Date());
|
||||||
|
}, 1000);
|
||||||
|
},
|
||||||
|
formatTime(value) {
|
||||||
|
let hour = value.getHours().toString();
|
||||||
|
let minute = value.getMinutes().toString();
|
||||||
|
let second = value.getSeconds().toString();
|
||||||
|
return (
|
||||||
|
hour.padStart(2, '0') +
|
||||||
|
':' +
|
||||||
|
minute.padStart(2, '0') +
|
||||||
|
':' +
|
||||||
|
second.padStart(2, '0')
|
||||||
|
);
|
||||||
|
},
|
||||||
addToPlaylist() {
|
addToPlaylist() {
|
||||||
if (!isAccountLoggedIn()) {
|
if (!isAccountLoggedIn()) {
|
||||||
this.showToast(locale.t('toast.needToLogin'));
|
this.showToast(locale.t('toast.needToLogin'));
|
||||||
|
|
@ -596,6 +625,20 @@ export default {
|
||||||
|
|
||||||
z-index: 1;
|
z-index: 1;
|
||||||
|
|
||||||
|
.date {
|
||||||
|
max-width: 54vh;
|
||||||
|
margin: 24px 0;
|
||||||
|
color: var(--color-text);
|
||||||
|
text-align: center;
|
||||||
|
font-size: 4rem;
|
||||||
|
font-weight: 600;
|
||||||
|
opacity: 0.88;
|
||||||
|
display: -webkit-box;
|
||||||
|
-webkit-box-orient: vertical;
|
||||||
|
-webkit-line-clamp: 1;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
.controls {
|
.controls {
|
||||||
max-width: 54vh;
|
max-width: 54vh;
|
||||||
margin-top: 24px;
|
margin-top: 24px;
|
||||||
|
|
|
||||||
|
|
@ -202,6 +202,22 @@
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="item">
|
||||||
|
<div class="left">
|
||||||
|
<div class="title"> {{ $t('settings.showLyricsTime') }} </div>
|
||||||
|
</div>
|
||||||
|
<div class="right">
|
||||||
|
<div class="toggle">
|
||||||
|
<input
|
||||||
|
id="show-lyrics-time"
|
||||||
|
v-model="showLyricsTime"
|
||||||
|
type="checkbox"
|
||||||
|
name="show-lyrics-time"
|
||||||
|
/>
|
||||||
|
<label for="show-lyrics-time"></label>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="item">
|
<div class="item">
|
||||||
<div class="left">
|
<div class="left">
|
||||||
<div class="title"> {{ $t('settings.lyricFontSize.text') }} </div>
|
<div class="title"> {{ $t('settings.lyricFontSize.text') }} </div>
|
||||||
|
|
@ -936,6 +952,17 @@ export default {
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
showLyricsTime: {
|
||||||
|
get() {
|
||||||
|
return this.settings.showLyricsTime;
|
||||||
|
},
|
||||||
|
set(value) {
|
||||||
|
this.$store.commit('updateSettings', {
|
||||||
|
key: 'showLyricsTime',
|
||||||
|
value,
|
||||||
|
});
|
||||||
|
},
|
||||||
|
},
|
||||||
closeAppOption: {
|
closeAppOption: {
|
||||||
get() {
|
get() {
|
||||||
return this.settings.closeAppOption;
|
return this.settings.closeAppOption;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue