This commit is contained in:
Folltoshe 2022-11-22 16:24:23 +08:00
parent f5cdd99fe6
commit f36187e696
5 changed files with 43 additions and 9 deletions

View File

@ -194,6 +194,8 @@
"play_timeout_tip": "Pause after {time}",
"play_timeout_unit": "Minute",
"play_timeout_update": "Update timing",
"player__save_music_pic_click": "Right-click to save the song cover",
"player__save_music_pic": "Save the song cover to...",
"player__add_music_to": "Add the current song to...",
"player__buffering": "Buffering...",
"player__desktop_lyric_lock": "Right click to lock lyrics",

View File

@ -194,6 +194,8 @@
"play_timeout_tip": "{time} 后暂停播放",
"play_timeout_unit": "分钟",
"play_timeout_update": "更新定时",
"player__save_music_pic_click": "右击保存歌曲封面",
"player__save_music_pic": "保存歌曲封面到...",
"player__add_music_to": "添加当前歌曲到...",
"player__buffering": "缓冲中...",
"player__desktop_lyric_lock": "右击锁定歌词",

View File

@ -194,6 +194,8 @@
"play_timeout_tip": "{time} 後暫停播放",
"play_timeout_unit": "分鐘",
"play_timeout_update": "更新定時",
"player__save_music_pic_click": "右擊保存歌曲封面",
"player__save_music_pic": "保存歌曲封面到...",
"player__add_music_to": "添加當前歌曲到...",
"player__album": "專輯名:",
"player__buffering": "緩衝中...",

View File

@ -8,7 +8,7 @@
<div :class="$style.title" :aria-label="title + $t('copy_tip')" @click="handleCopy(title)">
{{ title }}
</div>
<div :class="$style.status">{{ statusText }}</div>
<div :class="$style.status" :aria-label="statusText + $t('copy_tip')" @click="handleCopy(statusText)">{{ statusText }}</div>
</div>
<!-- <div :class="$style.timeContainer">
<div :class="$style.timeContent">
@ -239,18 +239,21 @@ export default {
font-size: 13px;
color: var(--color-font);
min-width: 0;
line-height: 1.5;
line-height: 1.8;
}
.title {
max-width: 100%;
font-size: 12px;
color: var(--color-font-label);
font-size: 15px;
// color: var(--color-font-label);
.mixin-ellipsis-1;
}
.status {
translate: all 3s;
padding-top: 3px;
height: 23px;
font-size: 13px;
// color: var(--color-font-label);
.mixin-ellipsis-1;
max-width: 100%;
}

View File

@ -40,11 +40,11 @@ transition(enter-active-class="animated slideInRight" leave-active-class="animat
div.left(:class="$style.left")
//- div(:class="$style.info")
div(:class="$style.info")
img(:class="$style.img" :src="musicInfo.pic" v-if="musicInfo.pic")
img(:class="$style.img" :src="musicInfo.pic" :aria-label="$t('player__save_music_pic_click')" v-if="musicInfo.pic" @contextmenu.prevent="saveImage()")
div.description(:class="$style.description")
p {{$t('player__music_name')}}{{musicInfo.name}}
p {{$t('player__music_singer')}}{{musicInfo.singer}}
p(v-if="musicInfo.album") {{$t('player__music_album')}}{{musicInfo.album}}
p(:aria-label="musicInfo.name + $t('copy_tip')" @click="handleCopy(musicInfo.name)") {{$t('player__music_name')}}{{musicInfo.name}}
p(:aria-label="musicInfo.singer + $t('copy_tip')" @click="handleCopy(musicInfo.singer)") {{$t('player__music_singer')}}{{musicInfo.singer}}
p(:aria-label="musicInfo.album + $t('copy_tip')" @click="handleCopy(musicInfo.album)" v-if="musicInfo.album") {{$t('player__music_album')}}{{musicInfo.album}}
transition(enter-active-class="animated fadeIn" leave-active-class="animated fadeOut")
LyricPlayer(v-if="visibled")
@ -75,7 +75,11 @@ import PlayBar from './PlayBar'
import MusicComment from './components/MusicComment'
import { registerAutoHideMounse, unregisterAutoHideMounse } from './autoHideMounse'
import { appSetting } from '@renderer/store/setting'
import { closeWindow, maxWindow, minWindow, setFullScreen } from '@renderer/utils/ipc'
import { closeWindow, maxWindow, minWindow, setFullScreen, openSaveDir } from '@renderer/utils/ipc'
import fs from 'fs'
import needle from 'needle'
import { useI18n } from '@renderer/plugins/i18n'
import { clipboardWriteText } from '@common/utils/electron'
export default {
name: 'CorePlayDetail',
@ -85,10 +89,29 @@ export default {
MusicComment,
},
setup() {
const t = useI18n()
const visibled = ref(false)
let clickTime = 0
const handleCopy = (text) => {
clipboardWriteText(text)
}
const saveImage = () => {
openSaveDir({
title: t('player__save_music_pic'),
defaultPath: `${musicInfo.name} - ${musicInfo.singer}.jpg`,
}).then(result => {
if (result.canceled) return
saveImageFile(result.filePath)
})
}
const saveImageFile = async(path) => {
needle.get(musicInfo.pic).pipe(fs.createWriteStream(path))
console.log(path, musicInfo.pic)
}
const hide = () => {
setShowPlayerDetail(false)
}
@ -125,6 +148,8 @@ export default {
return {
handleCopy,
saveImage,
appSetting,
playMusicInfo,
isShowPlayerDetail,