新增“不喜欢歌曲”功能&新增“收藏歌曲”、“取消收藏”、“不喜欢该歌曲”快捷键设置

This commit is contained in:
lyswhut
2023-09-04 14:13:47 +08:00
parent 3ca8f09971
commit baf69e397a
40 changed files with 861 additions and 26 deletions
@@ -201,6 +201,7 @@ export default {
handleSearch,
handleOpenMusicDetail,
handleCopyName,
handleDislikeMusic,
handleRemoveMusic,
} = useMusicActions({ props, list, removeAllSelect, selectedList })
@@ -223,6 +224,7 @@ export default {
handleShowSortModal,
handleOpenMusicDetail,
handleCopyName,
handleDislikeMusic,
handleRemoveMusic,
})
@@ -1,6 +1,7 @@
import { computed, ref, shallowReactive, reactive, nextTick } from '@common/utils/vueTools'
import musicSdk from '@renderer/utils/musicSdk'
import { useI18n } from '@renderer/plugins/i18n'
import { hasDislike } from '@renderer/core/dislikeList'
export default ({
assertApiSupport,
@@ -15,6 +16,7 @@ export default ({
handleShowSortModal,
handleOpenMusicDetail,
handleCopyName,
handleDislikeMusic,
handleRemoveMusic,
}) => {
const itemMenuControl = reactive({
@@ -26,6 +28,7 @@ export default ({
sort: true,
download: true,
search: true,
dislike: true,
remove: true,
sourceDetail: true,
})
@@ -80,6 +83,11 @@ export default ({
action: 'search',
disabled: !itemMenuControl.search,
},
{
name: t('list__dislike'),
action: 'dislike',
disabled: !itemMenuControl.dislike,
},
{
name: t('list__remove'),
action: 'remove',
@@ -94,6 +102,8 @@ export default ({
// itemMenuControl.playLater =
itemMenuControl.download = assertApiSupport(musicInfo.source) && musicInfo.source != 'local'
itemMenuControl.dislike = !hasDislike(musicInfo)
menuLocation.x = event.pageX
menuLocation.y = event.pageY
@@ -138,6 +148,9 @@ export default ({
case 'search':
handleSearch(index)
break
case 'dislike':
handleDislikeMusic(index)
break
case 'remove':
handleRemoveMusic(index)
break
@@ -6,6 +6,9 @@ import { useI18n } from '@renderer/plugins/i18n'
import { removeListMusics } from '@renderer/store/list/action'
import { appSetting } from '@renderer/store/setting'
import { toOldMusicInfo } from '@renderer/utils/index'
import { addDislikeInfo, hasDislike } from '@renderer/core/dislikeList'
import { playNext } from '@renderer/core/player'
import { playMusicInfo } from '@renderer/store/player/state'
export default ({ props, list, selectedList, removeAllSelect }) => {
@@ -34,6 +37,14 @@ export default ({ props, list, selectedList, removeAllSelect }) => {
clipboardWriteText(appSetting['download.fileName'].replace('歌名', minfo.name).replace('歌手', minfo.singer))
}
const handleDislikeMusic = async(index) => {
const minfo = list.value[index]
await addDislikeInfo([{ name: minfo.name, singer: minfo.singer }])
if (!playMusicInfo.isTempPlay && hasDislike(playMusicInfo.musicInfo)) {
playNext(true)
}
}
const handleRemoveMusic = async(index, single) => {
if (selectedList.value.length && !single) {
const confirm = await (selectedList.value.length > 1
@@ -55,6 +66,7 @@ export default ({ props, list, selectedList, removeAllSelect }) => {
handleSearch,
handleOpenMusicDetail,
handleCopyName,
handleDislikeMusic,
handleRemoveMusic,
}
}