mirror of
https://git.youjo.love/youjo/youjo-fe.git
synced 2025-01-19 02:36:05 +01:00
clean up the music player widget a bit
Enjoy my untidy code
This commit is contained in:
parent
91c708ad17
commit
9e70c6b073
2 changed files with 58 additions and 34 deletions
|
@ -41,6 +41,12 @@ const musicPlayer = {
|
||||||
},
|
},
|
||||||
defaultVolume () {
|
defaultVolume () {
|
||||||
return this.$store.getters.mergedConfig.defaultProfileMusicVolume
|
return this.$store.getters.mergedConfig.defaultProfileMusicVolume
|
||||||
|
},
|
||||||
|
currentTime() {
|
||||||
|
const currentTime = Math.floor(this.progress * this.songDuration / 100)
|
||||||
|
const minutes = Math.floor(currentTime / 60)
|
||||||
|
const seconds = currentTime - minutes * 60
|
||||||
|
return `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
@ -73,6 +79,7 @@ const musicPlayer = {
|
||||||
clearQueue () {
|
clearQueue () {
|
||||||
this.$store.dispatch('setBackgroundMusic', null)
|
this.$store.dispatch('setBackgroundMusic', null)
|
||||||
this.togglePanel()
|
this.togglePanel()
|
||||||
|
}
|
||||||
},
|
},
|
||||||
created () {
|
created () {
|
||||||
this.progress = 0
|
this.progress = 0
|
||||||
|
@ -90,6 +97,5 @@ const musicPlayer = {
|
||||||
clearInterval()
|
clearInterval()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
export default musicPlayer
|
export default musicPlayer
|
|
@ -19,6 +19,16 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="shout-window">
|
<div class="shout-window">
|
||||||
|
<div class="music-player-timeline">
|
||||||
|
<input
|
||||||
|
class="seekbar"
|
||||||
|
type="range"
|
||||||
|
min="0"
|
||||||
|
max="100"
|
||||||
|
v-model="progress"
|
||||||
|
@change.stop.prevent="seekPosition"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
<div class="music-player-controls">
|
<div class="music-player-controls">
|
||||||
<div
|
<div
|
||||||
class="music-player-button"
|
class="music-player-button"
|
||||||
|
@ -51,6 +61,17 @@
|
||||||
class="music-player-button"
|
class="music-player-button"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<FAIcon
|
||||||
|
icon="times"
|
||||||
|
class="close-icon"
|
||||||
|
@click.stop.prevent="clearQueue"
|
||||||
|
/>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<div class="music-player-volume">
|
||||||
<div
|
<div
|
||||||
@click.stop.prevent="toggleMute"
|
@click.stop.prevent="toggleMute"
|
||||||
>
|
>
|
||||||
|
@ -63,29 +84,17 @@
|
||||||
icon="volume-off"
|
icon="volume-off"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
|
||||||
<input
|
<input
|
||||||
type="range"
|
type="range"
|
||||||
|
class="music-player-volume-slider"
|
||||||
v-model="volume"
|
v-model="volume"
|
||||||
min="0"
|
min="0"
|
||||||
max="100"
|
max="100"
|
||||||
@change.stop.prevent="setVolume"
|
@change.stop.prevent="setVolume"
|
||||||
/>
|
/>
|
||||||
<FAIcon
|
|
||||||
icon="times"
|
|
||||||
class="close-icon"
|
|
||||||
@click.stop.prevent="clearQueue"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="music-player-timeline">
|
</div>
|
||||||
<input
|
<div>
|
||||||
class="seekbar"
|
|
||||||
type="range"
|
|
||||||
min="0"
|
|
||||||
max="100"
|
|
||||||
v-model="progress"
|
|
||||||
@change.stop.prevent="seekPosition"
|
|
||||||
/>
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -158,16 +167,25 @@
|
||||||
column-gap: 1em;
|
column-gap: 1em;
|
||||||
|
|
||||||
.music-player-controls {
|
.music-player-controls {
|
||||||
display: inline-flex;
|
|
||||||
column-gap: 1em;
|
column-gap: 1em;
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
align-items: center;
|
||||||
|
|
||||||
.music-player-button {
|
.music-player-button {
|
||||||
display: inline-flex;
|
display: inline-flex;
|
||||||
column-gap: 2em;
|
column-gap: 2em;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
.music-player-timeline {
|
.music-player-volume {
|
||||||
|
display: inline-flex;
|
||||||
|
column-gap: 1em;
|
||||||
padding-top: 1em;
|
padding-top: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
.music-player-timeline {
|
||||||
|
padding-bottom: 1em;
|
||||||
.seekbar {
|
.seekbar {
|
||||||
width: 100%
|
width: 100%
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue