├── .babelrc ├── .browserslistrc ├── .gitignore ├── README.md ├── babel.config.js ├── package-lock.json ├── package.json ├── public └── index.html └── src ├── App.vue ├── assets ├── css │ └── reset.css ├── font │ └── font_2121904_vickjx8nwzn │ │ ├── demo.css │ │ ├── demo_index.html │ │ ├── iconfont.css │ │ ├── iconfont.eot │ │ ├── iconfont.js │ │ ├── iconfont.json │ │ ├── iconfont.svg │ │ ├── iconfont.ttf │ │ ├── iconfont.woff │ │ └── iconfont.woff2 └── images │ ├── 404.png │ ├── arrow-lr.png │ ├── cd.png │ ├── close-dark.svg │ ├── close.svg │ ├── empty.png │ ├── gotop.png │ ├── logbg.jpg │ ├── logo-a.png │ ├── logo.png │ ├── logo_black.png │ ├── newbg.png │ ├── newbg1.png │ ├── personal.jpg │ ├── replace.png │ ├── top-bg.jpg │ └── trash.svg ├── axios ├── api.js ├── config.js ├── index.js ├── instance.js └── user.js ├── components ├── common │ ├── AlbumList.vue │ ├── CategoryContainer.vue │ ├── CommentList.vue │ ├── Dialog.vue │ ├── GoTop.vue │ ├── Loading.vue │ ├── PlayButton.vue │ ├── Scroll.vue │ ├── SingerList.vue │ ├── SongSheetList.vue │ ├── TagBar.vue │ ├── VideoList.vue │ ├── VideoMain.vue │ └── VideoRecommend.vue ├── home │ ├── Banner.vue │ ├── RecommendSinger.vue │ ├── RecommendSongSheet.vue │ └── RecommendSongs.vue └── playlistdetail │ ├── Comment.vue │ ├── PlayBar.vue │ ├── PlayList.vue │ ├── Recommend.vue │ ├── SubScribers.vue │ └── TopTitle.vue ├── element-ui └── index.js ├── filter └── filters.js ├── main.js ├── router └── index.js ├── store ├── actions.js ├── getters.js ├── index.js ├── mutation-type.js ├── mutations.js └── state.js ├── utils └── utils.js └── views ├── FooterMain.vue ├── HeaderMain.vue ├── Home.vue ├── Login.vue ├── MV.vue ├── MainRouterPages.vue ├── MvDetail.vue ├── PlayListDetail.vue ├── Profile.vue ├── Rank.vue ├── Register.vue ├── Search.vue ├── Singer.vue ├── SingerDetail.vue ├── SongSheet.vue ├── Video.vue ├── VideoDetail.vue ├── search ├── SearchAlbum.vue ├── SearchComp.vue ├── SearchMv.vue ├── SearchPlayList.vue ├── SearchRadioStation.vue ├── SearchSings.vue ├── SearchSongs.vue ├── SearchUser.vue └── SearchVideo.vue └── singer-detail ├── SimilarSinger.vue ├── SingerAlbum.vue ├── SingerDesc.vue ├── SingerMusic.vue └── SingerMv.vue /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["@babel/preset-env", { "modules": false }] 4 | ], 5 | "plugins": [ 6 | [ 7 | "component", 8 | { 9 | "libraryName": "element-ui", 10 | "styleLibraryName": "theme-chalk" 11 | } 12 | ] 13 | ] 14 | } 15 | -------------------------------------------------------------------------------- /.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | not dead 4 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | 6 | # local env files 7 | .env.local 8 | .env.*.local 9 | 10 | # Log files 11 | npm-debug.log* 12 | yarn-debug.log* 13 | yarn-error.log* 14 | pnpm-debug.log* 15 | 16 | # Editor directories and files 17 | .idea 18 | .vscode 19 | *.suo 20 | *.ntvs* 21 | *.njsproj 22 | *.sln 23 | *.sw? 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # music 2 | 3 | # 下载须知: 4 | 本项目api的是 Binaryify 后端api 地址: https://github.com/Binaryify/NeteaseCloudMusicApi 5 | 6 | ## 下载使用 7 | ``` 8 | git clone https://github.com/Binaryify/NeteaseCloudMusicApi 9 | ``` 10 | ## 开启后端服务 11 | ```$xslt 12 | node app.js 13 | ``` 14 | 15 | ## 下载本项目 16 | ```$xslt 17 | git clone https://github.com/coderps123/music.git 18 | ``` 19 | ## 运行 20 | ```$xslt 21 | npm install 22 | npm run serve 23 | ``` 24 | 25 | ### 特别感谢 26 | Binaryify lxhcool 27 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "music", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build" 8 | }, 9 | "dependencies": { 10 | "axios": "^0.20.0", 11 | "better-scroll": "^2.0.5", 12 | "core-js": "^3.6.5", 13 | "element-ui": "^2.13.2", 14 | "lyric-parser": "^1.0.1", 15 | "swiper": "^5.4.5", 16 | "vue": "^2.6.11", 17 | "vue-awesome-swiper": "^2.6.7", 18 | "vue-kinesis": "^1.1.5", 19 | "vue-lazyload": "^1.3.3", 20 | "vue-router": "^3.4.6", 21 | "vuex": "^3.5.1", 22 | "vuex-persistedstate": "^4.0.0-beta.1" 23 | }, 24 | "devDependencies": { 25 | "@vue/cli-plugin-babel": "^4.4.0", 26 | "@vue/cli-service": "^4.4.0", 27 | "babel-plugin-component": "^1.1.1", 28 | "less": "^2.7.3", 29 | "less-loader": "^7.0.2", 30 | "vue-template-compiler": "^2.6.11" 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 | 7 | 8 |{{$utils.formatDate(group.publishTime)}}
10 |8 |
9 |{{videoDetail.desc}}
6 |暂无简介
7 |By.{{item.artists}}
23 |
7 | |
9 |
10 | |
12 |
13 | {{item.song}}14 | {{item.singers}} 15 | |
16 | {{item.albumName}} | 17 |
{{comment.content}}
14 |{{comment.content}}
26 |序号 | 17 |歌曲 | 18 |歌手 | 19 |专辑 | 20 |时长 | 21 |
---|---|---|---|---|
26 | |
28 |
29 |
30 |
35 |
31 |
33 | {{item.song}} 34 | |
36 |
37 | {{item.singer}} 38 | |
39 |
40 | {{item.album}} 41 | |
42 | {{item.transitionTime | formatPlayTime}} | 43 |
By. {{item.creator.nickname}}
12 |{{playList.description}}
17 | 全部 18 | 19 | 20 |20 | | 等级: | 21 |22 | |
25 | | 年龄: | 26 |{{profile.birthday}} | 27 |
30 | | 地区: | 31 |{{profile.province}} | 32 |
ta可能什么都不想让我们看到
74 |
最新评论
22 |24 |-
25 |
26 |
27 |
28 |
29 |
30 |
31 | {{comment.user.nickname}}
32 | {{$utils.formatDate(comment.time)}}
33 |
34 |
35 |
36 |
39 |
40 | ({{comment.likedCount}})
41 |
42 |
43 |
45 |
46 |
47 |
48 |
49 |
51 |
52 |
53 |
54 | {{profile.nickname}}, 你好
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 | 提交
66 |
67 |
68 |
69 |
70 |
71 |
72 |{{comment.content}}
50 |