├── src ├── types │ ├── song.ts │ ├── rank.ts │ ├── player.ts │ ├── recommend.ts │ ├── singer.ts │ ├── index.ts │ └── search.ts ├── shims-vue.d.ts ├── assets │ ├── images │ │ ├── empty.png │ │ ├── first.png │ │ ├── logo.png │ │ ├── three.png │ │ ├── default.png │ │ ├── loading.gif │ │ └── second.png │ ├── fonts │ │ ├── music-icon.eot │ │ ├── music-icon.ttf │ │ └── music-icon.woff │ ├── js │ │ ├── data.ts │ │ ├── singer.ts │ │ ├── playList.ts │ │ ├── jsonp.ts │ │ ├── throttle-debounce.ts │ │ ├── search.ts │ │ ├── player.ts │ │ └── song.ts │ └── styles │ │ ├── transition.scss │ │ ├── mixin.scss │ │ ├── variables.scss │ │ ├── index.scss │ │ └── icon.scss ├── shims-tsx.d.ts ├── store │ ├── modules │ │ ├── disc.ts │ │ ├── singer.ts │ │ ├── top.ts │ │ ├── history.ts │ │ └── player.ts │ ├── index.ts │ ├── mutation-type.ts │ ├── types.ts │ └── getters.ts ├── api │ ├── config.ts │ ├── rank.ts │ ├── singer.ts │ ├── search.ts │ ├── recommend.ts │ └── song.ts ├── main.ts ├── utils │ ├── axios.ts │ ├── dom.ts │ ├── utils.ts │ └── cache.ts ├── base │ ├── empty │ │ └── index.vue │ ├── loading │ │ └── index.vue │ ├── confirm │ │ ├── index.ts │ │ └── index.vue │ ├── switches │ │ └── index.vue │ ├── notify │ │ └── index.vue │ ├── scroll │ │ └── index.vue │ └── slider │ │ └── index.vue ├── components │ ├── header │ │ └── index.vue │ ├── tab │ │ └── index.vue │ ├── progress-circle │ │ └── index.vue │ ├── search-box │ │ └── index.vue │ ├── song-list │ │ └── index.vue │ ├── progress-bar │ │ └── index.vue │ ├── suggestion │ │ └── index.vue │ ├── add-song │ │ └── index.vue │ ├── playlist │ │ └── index.vue │ ├── music-list │ │ └── index.vue │ └── list-view │ │ └── index.vue ├── views │ ├── recommend-detail │ │ └── detail.vue │ ├── singer-detail │ │ └── detail.vue │ ├── rank-detail │ │ └── detail.vue │ ├── singer │ │ └── index.vue │ ├── rank │ │ └── index.vue │ ├── user │ │ └── index.vue │ ├── recommend │ │ └── index.vue │ └── search │ │ └── index.vue ├── router │ └── index.ts └── App.vue ├── public ├── favicon.ico └── index.html ├── .browserslistrc ├── babel.config.js ├── .editorconfig ├── tests └── unit │ ├── components │ ├── __snapshots__ │ │ ├── scroll.spec.ts.snap │ │ ├── empty.spec.ts.snap │ │ ├── switches.spec.ts.snap │ │ ├── slider.spec.ts.snap │ │ ├── loading.spec.ts.snap │ │ ├── notify.spec.ts.snap │ │ ├── header.spec.ts.snap │ │ ├── confirm.spec.ts.snap │ │ ├── suggestion.spec.ts.snap │ │ └── tab.spec.ts.snap │ ├── header.spec.ts │ ├── loading.spec.ts │ ├── empty.spec.ts │ ├── tab.spec.ts │ ├── switches.spec.ts │ ├── scroll.spec.ts │ ├── confirm.spec.ts │ ├── slider.spec.ts │ ├── notify.spec.ts │ └── suggestion.spec.ts │ ├── store │ ├── singer.spec.ts │ ├── top.spec.ts │ ├── disc.spec.ts │ ├── history.spec.ts │ └── player.spec.ts │ └── utils │ ├── dom.spec.js │ ├── utils.spec.js │ └── cache.spec.js ├── .gitignore ├── postcss.config.js ├── jest.config.js ├── tsconfig.json ├── .eslintrc.js ├── package.json ├── vue.config.js └── README.md /src/types/song.ts: -------------------------------------------------------------------------------- 1 | export interface SongUrlMap { 2 | [propName: string]: string 3 | } 4 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangtunan/vue-music-ts/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /.browserslistrc: -------------------------------------------------------------------------------- 1 | defaults 2 | not ie <= 8 3 | last 2 versions 4 | > 1% 5 | iOS >= 7 6 | Android >= 4.0 -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | import Vue from 'vue' 3 | export default Vue 4 | } 5 | -------------------------------------------------------------------------------- /src/assets/images/empty.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangtunan/vue-music-ts/HEAD/src/assets/images/empty.png -------------------------------------------------------------------------------- /src/assets/images/first.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangtunan/vue-music-ts/HEAD/src/assets/images/first.png -------------------------------------------------------------------------------- /src/assets/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangtunan/vue-music-ts/HEAD/src/assets/images/logo.png -------------------------------------------------------------------------------- /src/assets/images/three.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangtunan/vue-music-ts/HEAD/src/assets/images/three.png -------------------------------------------------------------------------------- /src/assets/images/default.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangtunan/vue-music-ts/HEAD/src/assets/images/default.png -------------------------------------------------------------------------------- /src/assets/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangtunan/vue-music-ts/HEAD/src/assets/images/loading.gif -------------------------------------------------------------------------------- /src/assets/images/second.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangtunan/vue-music-ts/HEAD/src/assets/images/second.png -------------------------------------------------------------------------------- /src/assets/fonts/music-icon.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangtunan/vue-music-ts/HEAD/src/assets/fonts/music-icon.eot -------------------------------------------------------------------------------- /src/assets/fonts/music-icon.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangtunan/vue-music-ts/HEAD/src/assets/fonts/music-icon.ttf -------------------------------------------------------------------------------- /src/assets/fonts/music-icon.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/wangtunan/vue-music-ts/HEAD/src/assets/fonts/music-icon.woff -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | [*.{js,jsx,ts,tsx,vue}] 2 | indent_style = space 3 | indent_size = 2 4 | trim_trailing_whitespace = true 5 | insert_final_newline = true 6 | -------------------------------------------------------------------------------- /tests/unit/components/__snapshots__/scroll.spec.ts.snap: -------------------------------------------------------------------------------- 1 | // Jest Snapshot v1, https://goo.gl/fbAQLP 2 | 3 | exports[`scroll.vue match snapshot 1`] = ` 4 |
抱歉,暂无数据
6 |
6 | 正在加载中...
7 |
5 | 抱歉,暂无搜索结果!
14 |{{title}}
5 |
5 | {{title}}
6 |
4 | {{item.name}}
15 |{{item.singer}}-{{item.album}}
16 |{{item.dissname}}
34 |{{getDisplayName(item)}}
19 |{{group.title}}
17 |{{singer.name}}
26 |{{fixedTitle}}
55 |