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
master
marcus 2 years ago committed by GitHub
parent 7b911c1658
commit 9e64222bdf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -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…
Cancel
Save