diff --git a/netease_api/routes/index.js b/netease_api/routes/index.js index 24e747b..71b0c6b 100644 --- a/netease_api/routes/index.js +++ b/netease_api/routes/index.js @@ -10,6 +10,7 @@ const table = { '/album/detail/dynamic': require('../module/album_detail_dynamic'), '/recommend/resource': require('../module/recommend_resource'), '/playlist/subscribe': require('../module/playlist_subscribe'), + '/user/cloud/detail': require('../module/user_cloud_detail'), '/playlist/catlist': require('../module/playlist_catlist'), '/playlist/detail': require('../module/playlist_detail'), '/login/cellphone': require('../module/login_cellphone'), @@ -17,6 +18,7 @@ const table = { '/playlist/create': require('../module/playlist_create'), '/playlist/tracks': require('../module/playlist_tracks'), '/recommend/songs': require('../module/recommend_songs'), + '/user/cloud/del': require('../module/user_cloud_del'), '/toplist/artist': require('../module/toplist_artist'), '/artist/sublist': require('../module/artist_sublist'), '/login/refresh': require('../module/login_refresh'), diff --git a/src/App.vue b/src/App.vue index e6fe970..cca5d67 100644 --- a/src/App.vue +++ b/src/App.vue @@ -95,6 +95,7 @@ export default { this.$store.dispatch('fetchLikedAlbums'); this.$store.dispatch('fetchLikedArtists'); this.$store.dispatch('fetchLikedMVs'); + this.$store.dispatch('fetchCloudDisk'); } }, handleScroll() { diff --git a/src/api/user.js b/src/api/user.js index da7b015..b92c022 100644 --- a/src/api/user.js +++ b/src/api/user.js @@ -130,3 +130,69 @@ export function likedMVs() { }, }); } + +/** + * 上传歌曲到云盘(需要登录) + */ +export function uploadSong(file) { + let formData = new FormData(); + formData.append('songFile', file); + return request({ + url: '/cloud', + method: 'post', + params: { + timestamp: new Date().getTime(), + }, + data: formData, + headers: { + 'Content-Type': 'multipart/form-data', + }, + }); +} + +/** + * 获取云盘歌曲(需要登录) + * 说明 : 登录后调用此接口 , 可获取云盘数据 , 获取的数据没有对应 url, 需要再调用一 次 /song/url 获取 url + * - limit : 返回数量 , 默认为 200 + * - offset : 偏移数量,用于分页 , 如 :( 页数 -1)*200, 其中 200 为 limit 的值 , 默认为 0 + * @param {Object} params + * @param {number} params.limit + * @param {number=} params.offset + */ +export function cloudDisk(params = {}) { + params.timestamp = new Date().getTime(); + return request({ + url: '/user/cloud', + method: 'get', + params, + }); +} + +/** + * 获取云盘歌曲详情(需要登录) + */ +export function cloudDiskTrackDetail(id) { + return request({ + url: '/user/cloud/detail', + method: 'get', + params: { + timestamp: new Date().getTime(), + id, + }, + }); +} + +/** + * 删除云盘歌曲(需要登录) + * @param {Array} id + */ +export function cloudDiskTrackDelete(id) { + return request({ + url: '/user/cloud/del', + method: 'get', + params: { + timestamp: new Date().getTime(), + id, + }, + }); +} diff --git a/src/assets/icons/arrow-up-alt.svg b/src/assets/icons/arrow-up-alt.svg new file mode 100644 index 0000000..1980837 --- /dev/null +++ b/src/assets/icons/arrow-up-alt.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/src/components/Player.vue b/src/components/Player.vue index 11f34cf..9fc16f7 100644 --- a/src/components/Player.vue +++ b/src/components/Player.vue @@ -240,6 +240,8 @@ export default { this.$router.push({ path: '/library/liked-songs' }); } else if (this.player.playlistSource.type === 'url') { this.$router.push({ path: this.player.playlistSource.id }); + } else if (this.player.playlistSource.type === 'cloudDisk') { + this.$router.push({ path: '/library' }); } else { this.$router.push({ path: diff --git a/src/components/TrackList.vue b/src/components/TrackList.vue index 5209203..a37eb18 100644 --- a/src/components/TrackList.vue +++ b/src/components/TrackList.vue @@ -1,14 +1,14 @@