Skip to content

Commit 4710bb1

Browse files
committed
下载列表菜单新增歌曲添加弹窗(#2537
1 parent db4f3e4 commit 4710bb1

File tree

4 files changed

+58
-2
lines changed

4 files changed

+58
-2
lines changed

publish/changeLog.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1+
我们很高兴地宣布新项目 Any Listen 的桌面版已发布,目前已支持列表跟随本地文件自动更新、加载并播放WebDAV上的歌曲等功能,更多功能仍在积极开发中,桌面版与Web版将同步更新。
2+
对于有播放本地音乐或播放服务器上音乐需求的人可以试试,若遇到任何问题可以发 issue 反馈。
3+
14
### 新增
25

36
- 新增「设置 → 其他设置 → 主窗口使用软件内置的圆角及阴影」选项(#2360
47
*默认启用,关闭后将使用系统原生的窗口样式,该选项重启软件后生效*
58
- 开放 API 新增播放器声音大小、静音、播放进度控制、完整歌词获取,详情看接入文档(#2386
69
- 新增「设置 → 播放设置 → 调换歌词翻译与歌词罗马音位置」选项,默认关闭(#2451
710
- 新增启动参数 `-hidden`,在启动时将软件最小化到系统托盘(#2459
8-
- 新增 Any Listen 歌词标签数据读取与播放#2485
11+
- 新增 Any Listen 歌词(用于支持已下载歌曲的歌词逐字播放)标签数据读取与播放#2485
912
- 新增 Any Listen 歌词(包含逐字歌词、翻译、罗马音歌词,如果有)嵌入与下载,默认启用
13+
- 下载列表菜单新增歌曲添加弹窗,允许将所选歌曲的在线版本添加到收藏列表(#2537
1014

1115
### 修复
1216

@@ -20,4 +24,4 @@
2024

2125
### 其他
2226

23-
- 更新 Electron 到 37.4.0
27+
- 更新 Electron 到 37.6.0

src/renderer/views/Download/index.vue

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@
6262
<base-menu v-model="isShowItemMenu" :menus="menus" :xy="menuLocation" item-name="name" @menu-click="handleMenuClick" />
6363
<!-- <base-menu :menus="listItemMenu" :location="listMenu.menuLocation" item-name="name" :is-show="listMenu.isShowItemMenu" @menu-click="handleListItemMenuClick" /> -->
6464
</div>
65+
<common-list-add-modal v-model:show="isShowListAdd" :music-info="selectedAddMusicInfo" teleport="#view" />
66+
<common-list-add-multiple-modal v-model:show="isShowListAddMultiple" :music-list="selectedList" teleport="#view" @confirm="removeAllSelect" />
6567
</div>
6668
</template>
6769

@@ -75,6 +77,7 @@ import useTab from './useTab'
7577
import useMenu from './useMenu'
7678
import usePlay from './usePlay'
7779
import useTaskActions from './useTaskActions'
80+
import useMusicAdd from './useMusicAdd'
7881
import { downloadStatus } from '@renderer/store/download/state'
7982
import { appSetting } from '@renderer/store/setting'
8083
@@ -113,6 +116,13 @@ export default {
113116
handleOpenFile,
114117
} = useTaskActions({ list, removeAllSelect, selectedList })
115118
119+
const {
120+
isShowListAdd,
121+
isShowListAddMultiple,
122+
selectedAddMusicInfo,
123+
handleShowMusicAddModal,
124+
} = useMusicAdd({ selectedList, list })
125+
116126
const {
117127
menus,
118128
menuLocation,
@@ -126,6 +136,7 @@ export default {
126136
handleOpenFile,
127137
handlePlayMusic,
128138
handlePlayMusicLater,
139+
handleShowMusicAddModal,
129140
handleSearch,
130141
handleOpenMusicDetail,
131142
})
@@ -209,6 +220,12 @@ export default {
209220
listItemHeight,
210221
playTaskId,
211222
223+
isShowListAdd,
224+
isShowListAddMultiple,
225+
selectedAddMusicInfo,
226+
227+
removeAllSelect,
228+
212229
menus,
213230
menuLocation,
214231
isShowItemMenu,

src/renderer/views/Download/useMenu.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export default ({
1010
handleOpenFile,
1111
handlePlayMusic,
1212
handlePlayMusicLater,
13+
handleShowMusicAddModal,
1314
handleSearch,
1415
handleOpenMusicDetail,
1516
}) => {
@@ -22,6 +23,7 @@ export default ({
2223
sourceDetail: true,
2324
search: true,
2425
remove: true,
26+
addTo: true,
2527
})
2628
const t = useI18n()
2729
const menuLocation = shallowReactive({ x: 0, y: 0 })
@@ -54,6 +56,11 @@ export default ({
5456
action: 'file',
5557
hide: !itemMenuControl.file,
5658
},
59+
{
60+
name: t('list__add_to'),
61+
action: 'addTo',
62+
disabled: !itemMenuControl.addTo,
63+
},
5764
{
5865
name: t('list__source_detail'),
5966
action: 'sourceDetail',
@@ -129,6 +136,9 @@ export default ({
129136
case 'playLater':
130137
handlePlayMusicLater(index)
131138
break
139+
case 'addTo':
140+
handleShowMusicAddModal(index)
141+
break
132142
case 'search':
133143
handleSearch(index)
134144
break
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { ref, shallowRef, nextTick, markRaw } from '@common/utils/vueTools'
2+
3+
export default ({ selectedList, list }) => {
4+
const isShowListAdd = ref(false)
5+
const isShowListAddMultiple = ref(false)
6+
const selectedAddMusicInfo = shallowRef(null)
7+
8+
const handleShowMusicAddModal = (index, single) => {
9+
if (selectedList.value.length && !single) {
10+
isShowListAddMultiple.value = true
11+
} else {
12+
selectedAddMusicInfo.value = markRaw(list.value[index].metadata.musicInfo)
13+
nextTick(() => {
14+
isShowListAdd.value = true
15+
})
16+
}
17+
}
18+
19+
return {
20+
isShowListAdd,
21+
isShowListAddMultiple,
22+
selectedAddMusicInfo,
23+
handleShowMusicAddModal,
24+
}
25+
}

0 commit comments

Comments
 (0)