├── README
├── static
├── .gitkeep
├── images
│ ├── jdfw.gif
│ └── favicon.ico
├── css
│ └── eric-meyer-reset.min.css
└── group.json
├── .eslintignore
├── config
├── prod.env.js
├── dev.env.js
└── index.js
├── .gitignore
├── src
├── assets
│ ├── fonts
│ │ ├── FontAwesome.otf
│ │ ├── fontawesome-webfont.eot
│ │ ├── fontawesome-webfont.ttf
│ │ ├── fontawesome-webfont.woff
│ │ └── fontawesome-webfont.woff2
│ ├── images
│ │ ├── main
│ │ │ ├── time1.jpg
│ │ │ └── detail1.jpg
│ │ ├── banner
│ │ │ ├── banner1.jpg
│ │ │ ├── banner2.jpg
│ │ │ └── banner3.jpg
│ │ ├── common
│ │ │ ├── ic_vote.png
│ │ │ ├── ic_event_call.png
│ │ │ ├── loading_green.gif
│ │ │ ├── ic_action_share.png
│ │ │ ├── ic_event_message.png
│ │ │ ├── ic_tag_folder_up.png
│ │ │ ├── ic_vendor_others.png
│ │ │ ├── ic_arrow_gray_down.png
│ │ │ ├── ic_tag_folder_down.png
│ │ │ ├── notification_more.png
│ │ │ ├── rating_star_empty.png
│ │ │ ├── ic_action_share_green.png
│ │ │ ├── ic_search_book_small.png
│ │ │ ├── ic_subject_event_time.png
│ │ │ ├── rating_star_xsmall_on.png
│ │ │ ├── ic_more_action_overflow.png
│ │ │ ├── rating_star_xsmall_half.png
│ │ │ ├── rating_star_xsmall_off.png
│ │ │ ├── ic_close_status_recommend.png
│ │ │ ├── ic_event_nearby_location.png
│ │ │ ├── ic_subject_event_ticket_buy.png
│ │ │ └── ic_event_action_related_drama.png
│ │ ├── mine
│ │ │ ├── ic_my_note.png
│ │ │ ├── ic_my_album.png
│ │ │ ├── ic_my_books.png
│ │ │ ├── ic_my_doulist.png
│ │ │ ├── ic_my_events.png
│ │ │ ├── ic_my_likes.png
│ │ │ ├── ic_my_music.png
│ │ │ ├── ic_my_orders.png
│ │ │ ├── ic_my_status.png
│ │ │ ├── ic_my_wallet.png
│ │ │ ├── avatar_male_100.png
│ │ │ ├── live_player_bg.jpg
│ │ │ ├── ic_my_movies_tvs.png
│ │ │ ├── ic_mine_notification.png
│ │ │ └── ic_latest_group_topics.png
│ │ ├── group
│ │ │ ├── ic_group_banner.png
│ │ │ ├── ic_group_comment_1_50.png
│ │ │ ├── ic_group_search_small.png
│ │ │ ├── ic_rec_group_banner_6.png
│ │ │ ├── ic_group_check_anonymous.png
│ │ │ └── ic_group_checked_anonymous.png
│ │ ├── footer
│ │ │ ├── ic_tab_home_active.png
│ │ │ ├── ic_tab_home_normal.png
│ │ │ ├── ic_tab_group_active.png
│ │ │ ├── ic_tab_group_normal.png
│ │ │ ├── ic_tab_profile_active.png
│ │ │ ├── ic_tab_profile_normal.png
│ │ │ ├── ic_tab_status_active.png
│ │ │ ├── ic_tab_status_normal.png
│ │ │ ├── ic_tab_subject_active.png
│ │ │ └── ic_tab_subject_normal.png
│ │ └── broadcast
│ │ │ └── ic_status_anonymous_header.png
│ └── css
│ │ ├── common.styl
│ │ └── common.css
├── pages
│ ├── mine
│ │ ├── images
│ │ │ └── time1.jpg
│ │ └── mine.vue
│ ├── video
│ │ ├── movie
│ │ │ ├── images
│ │ │ │ ├── star.png
│ │ │ │ ├── movie.jpg
│ │ │ │ └── star1.png
│ │ │ ├── movieToplist
│ │ │ │ └── movieToplist.vue
│ │ │ ├── movieSearch
│ │ │ │ └── movieSearch.vue
│ │ │ ├── movieMore
│ │ │ │ └── movieMore.vue
│ │ │ └── movieDetail
│ │ │ │ └── movieDetail.vue
│ │ ├── tv
│ │ │ ├── tvMore
│ │ │ │ └── tvMore.vue
│ │ │ └── tv.vue
│ │ ├── city
│ │ │ ├── cityMore
│ │ │ │ └── cityMore.vue
│ │ │ ├── cityDetail
│ │ │ │ └── cityDetail.vue
│ │ │ └── city.vue
│ │ ├── music
│ │ │ ├── musicMore
│ │ │ │ └── musicMore.vue
│ │ │ ├── musicDetail
│ │ │ │ └── musicDetail.vue
│ │ │ └── music.vue
│ │ ├── video.vue
│ │ ├── book
│ │ │ ├── fictionMore
│ │ │ │ └── fictionMore.vue
│ │ │ ├── newBookMore
│ │ │ │ └── newBookMore.vue
│ │ │ ├── bookDetail
│ │ │ │ └── bookDetail.vue
│ │ │ └── book.vue
│ │ └── interestedMore
│ │ │ └── interestedMore.vue
│ ├── register
│ │ └── register.vue
│ ├── login
│ │ └── login.vue
│ ├── main.vue
│ ├── group
│ │ ├── group.vue
│ │ └── groupDetail
│ │ │ └── groupDetail.vue
│ └── broadcast
│ │ ├── broadcastDetail
│ │ └── broadcastDetail.vue
│ │ └── broadcast.vue
├── vuex
│ ├── modules
│ │ ├── home.js
│ │ ├── main.js
│ │ └── video.js
│ ├── store.js
│ └── types.js
├── App.vue
├── components
│ ├── loading.vue
│ ├── group.vue
│ ├── star.vue
│ ├── cityMoreItem.vue
│ ├── musicMoreItem.vue
│ ├── tvMoreItem.vue
│ ├── groupItem.vue
│ ├── rating.vue
│ ├── bookMoreItem.vue
│ ├── banner.vue
│ ├── header.vue
│ ├── bookFiction.vue
│ ├── movieMoreItem.vue
│ ├── interestedMoreItem.vue
│ └── scroller.vue
├── main.js
├── router
│ └── index.js
└── fetch
│ └── api.js
├── .editorconfig
├── .idea
├── misc.xml
├── vcs.xml
├── inspectionProfiles
│ └── Project_Default.xml
├── modules.xml
├── douban.iml
└── watcherTasks.xml
├── .postcssrc.js
├── .babelrc
├── .eslintrc.js
├── package.json
├── index.html
└── README.md
/README:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/static/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | build/*.js
2 | config/*.js
3 |
--------------------------------------------------------------------------------
/config/prod.env.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | NODE_ENV: '"production"'
3 | }
4 |
--------------------------------------------------------------------------------
/static/images/jdfw.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/static/images/jdfw.gif
--------------------------------------------------------------------------------
/static/images/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/static/images/favicon.ico
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules/
3 | dist/
4 | npm-debug.log*
5 | yarn-debug.log*
6 | yarn-error.log*
7 |
--------------------------------------------------------------------------------
/src/assets/fonts/FontAwesome.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/fonts/FontAwesome.otf
--------------------------------------------------------------------------------
/src/assets/images/main/time1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/main/time1.jpg
--------------------------------------------------------------------------------
/src/pages/mine/images/time1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/pages/mine/images/time1.jpg
--------------------------------------------------------------------------------
/src/assets/images/main/detail1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/main/detail1.jpg
--------------------------------------------------------------------------------
/src/assets/images/banner/banner1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/banner/banner1.jpg
--------------------------------------------------------------------------------
/src/assets/images/banner/banner2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/banner/banner2.jpg
--------------------------------------------------------------------------------
/src/assets/images/banner/banner3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/banner/banner3.jpg
--------------------------------------------------------------------------------
/src/assets/images/common/ic_vote.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/ic_vote.png
--------------------------------------------------------------------------------
/src/assets/images/mine/ic_my_note.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/mine/ic_my_note.png
--------------------------------------------------------------------------------
/src/pages/video/movie/images/star.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/pages/video/movie/images/star.png
--------------------------------------------------------------------------------
/src/assets/fonts/fontawesome-webfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/fonts/fontawesome-webfont.eot
--------------------------------------------------------------------------------
/src/assets/fonts/fontawesome-webfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/fonts/fontawesome-webfont.ttf
--------------------------------------------------------------------------------
/src/assets/images/mine/ic_my_album.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/mine/ic_my_album.png
--------------------------------------------------------------------------------
/src/assets/images/mine/ic_my_books.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/mine/ic_my_books.png
--------------------------------------------------------------------------------
/src/assets/images/mine/ic_my_doulist.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/mine/ic_my_doulist.png
--------------------------------------------------------------------------------
/src/assets/images/mine/ic_my_events.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/mine/ic_my_events.png
--------------------------------------------------------------------------------
/src/assets/images/mine/ic_my_likes.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/mine/ic_my_likes.png
--------------------------------------------------------------------------------
/src/assets/images/mine/ic_my_music.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/mine/ic_my_music.png
--------------------------------------------------------------------------------
/src/assets/images/mine/ic_my_orders.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/mine/ic_my_orders.png
--------------------------------------------------------------------------------
/src/assets/images/mine/ic_my_status.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/mine/ic_my_status.png
--------------------------------------------------------------------------------
/src/assets/images/mine/ic_my_wallet.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/mine/ic_my_wallet.png
--------------------------------------------------------------------------------
/src/pages/video/movie/images/movie.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/pages/video/movie/images/movie.jpg
--------------------------------------------------------------------------------
/src/pages/video/movie/images/star1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/pages/video/movie/images/star1.png
--------------------------------------------------------------------------------
/src/assets/fonts/fontawesome-webfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/fonts/fontawesome-webfont.woff
--------------------------------------------------------------------------------
/src/assets/fonts/fontawesome-webfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/fonts/fontawesome-webfont.woff2
--------------------------------------------------------------------------------
/src/assets/images/common/ic_event_call.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/ic_event_call.png
--------------------------------------------------------------------------------
/src/assets/images/common/loading_green.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/loading_green.gif
--------------------------------------------------------------------------------
/src/assets/images/mine/avatar_male_100.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/mine/avatar_male_100.png
--------------------------------------------------------------------------------
/src/assets/images/mine/live_player_bg.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/mine/live_player_bg.jpg
--------------------------------------------------------------------------------
/src/assets/images/common/ic_action_share.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/ic_action_share.png
--------------------------------------------------------------------------------
/src/assets/images/common/ic_event_message.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/ic_event_message.png
--------------------------------------------------------------------------------
/src/assets/images/common/ic_tag_folder_up.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/ic_tag_folder_up.png
--------------------------------------------------------------------------------
/src/assets/images/common/ic_vendor_others.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/ic_vendor_others.png
--------------------------------------------------------------------------------
/src/assets/images/group/ic_group_banner.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/group/ic_group_banner.png
--------------------------------------------------------------------------------
/src/assets/images/mine/ic_my_movies_tvs.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/mine/ic_my_movies_tvs.png
--------------------------------------------------------------------------------
/src/assets/images/common/ic_arrow_gray_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/ic_arrow_gray_down.png
--------------------------------------------------------------------------------
/src/assets/images/common/ic_tag_folder_down.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/ic_tag_folder_down.png
--------------------------------------------------------------------------------
/src/assets/images/common/notification_more.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/notification_more.png
--------------------------------------------------------------------------------
/src/assets/images/common/rating_star_empty.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/rating_star_empty.png
--------------------------------------------------------------------------------
/src/assets/images/footer/ic_tab_home_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/footer/ic_tab_home_active.png
--------------------------------------------------------------------------------
/src/assets/images/footer/ic_tab_home_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/footer/ic_tab_home_normal.png
--------------------------------------------------------------------------------
/src/assets/images/mine/ic_mine_notification.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/mine/ic_mine_notification.png
--------------------------------------------------------------------------------
/src/assets/images/common/ic_action_share_green.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/ic_action_share_green.png
--------------------------------------------------------------------------------
/src/assets/images/common/ic_search_book_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/ic_search_book_small.png
--------------------------------------------------------------------------------
/src/assets/images/common/ic_subject_event_time.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/ic_subject_event_time.png
--------------------------------------------------------------------------------
/src/assets/images/common/rating_star_xsmall_on.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/rating_star_xsmall_on.png
--------------------------------------------------------------------------------
/src/assets/images/footer/ic_tab_group_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/footer/ic_tab_group_active.png
--------------------------------------------------------------------------------
/src/assets/images/footer/ic_tab_group_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/footer/ic_tab_group_normal.png
--------------------------------------------------------------------------------
/src/assets/images/footer/ic_tab_profile_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/footer/ic_tab_profile_active.png
--------------------------------------------------------------------------------
/src/assets/images/footer/ic_tab_profile_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/footer/ic_tab_profile_normal.png
--------------------------------------------------------------------------------
/src/assets/images/footer/ic_tab_status_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/footer/ic_tab_status_active.png
--------------------------------------------------------------------------------
/src/assets/images/footer/ic_tab_status_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/footer/ic_tab_status_normal.png
--------------------------------------------------------------------------------
/src/assets/images/footer/ic_tab_subject_active.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/footer/ic_tab_subject_active.png
--------------------------------------------------------------------------------
/src/assets/images/footer/ic_tab_subject_normal.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/footer/ic_tab_subject_normal.png
--------------------------------------------------------------------------------
/src/assets/images/group/ic_group_comment_1_50.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/group/ic_group_comment_1_50.png
--------------------------------------------------------------------------------
/src/assets/images/group/ic_group_search_small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/group/ic_group_search_small.png
--------------------------------------------------------------------------------
/src/assets/images/group/ic_rec_group_banner_6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/group/ic_rec_group_banner_6.png
--------------------------------------------------------------------------------
/src/assets/images/mine/ic_latest_group_topics.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/mine/ic_latest_group_topics.png
--------------------------------------------------------------------------------
/src/assets/images/common/ic_more_action_overflow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/ic_more_action_overflow.png
--------------------------------------------------------------------------------
/src/assets/images/common/rating_star_xsmall_half.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/rating_star_xsmall_half.png
--------------------------------------------------------------------------------
/src/assets/images/common/rating_star_xsmall_off.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/rating_star_xsmall_off.png
--------------------------------------------------------------------------------
/src/assets/images/group/ic_group_check_anonymous.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/group/ic_group_check_anonymous.png
--------------------------------------------------------------------------------
/src/assets/images/common/ic_close_status_recommend.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/ic_close_status_recommend.png
--------------------------------------------------------------------------------
/src/assets/images/common/ic_event_nearby_location.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/ic_event_nearby_location.png
--------------------------------------------------------------------------------
/src/assets/images/group/ic_group_checked_anonymous.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/group/ic_group_checked_anonymous.png
--------------------------------------------------------------------------------
/src/assets/images/common/ic_subject_event_ticket_buy.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/ic_subject_event_ticket_buy.png
--------------------------------------------------------------------------------
/src/assets/images/broadcast/ic_status_anonymous_header.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/broadcast/ic_status_anonymous_header.png
--------------------------------------------------------------------------------
/src/assets/images/common/ic_event_action_related_drama.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/liangjilin/douban/HEAD/src/assets/images/common/ic_event_action_related_drama.png
--------------------------------------------------------------------------------
/config/dev.env.js:
--------------------------------------------------------------------------------
1 | var merge = require('webpack-merge')
2 | var prodEnv = require('./prod.env')
3 | module.exports = merge(prodEnv, {
4 | NODE_ENV: '"development"'
5 | })
6 |
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/.idea/misc.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/vcs.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | "plugins": {
5 | // to edit target browsers: use "browserlist" field in package.json
6 | "autoprefixer": {}
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | ["env", { "modules": false }],
4 | "stage-2"
5 | ],
6 | "plugins": ["transform-runtime"],
7 | "comments": false,
8 | "env": {
9 | "test": {
10 | "presets": ["env", "stage-2"],
11 | "plugins": [ "istanbul" ]
12 | }
13 | }
14 | }
15 |
--------------------------------------------------------------------------------
/.idea/inspectionProfiles/Project_Default.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/.idea/modules.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
--------------------------------------------------------------------------------
/src/vuex/modules/home.js:
--------------------------------------------------------------------------------
1 | // import * as types from '../types'
2 |
3 | const state = {
4 |
5 | }
6 |
7 | const getters = {
8 |
9 | }
10 |
11 | const actions = {
12 |
13 | }
14 |
15 | const mutations = {
16 |
17 | }
18 |
19 | export default {
20 | state,
21 | getters,
22 | actions,
23 | mutations
24 | }
25 |
--------------------------------------------------------------------------------
/src/vuex/modules/main.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by Ausu on 2017/5/23.
3 | */
4 | const state = {
5 |
6 | }
7 |
8 | const getters = {
9 |
10 | }
11 |
12 | const actions = {
13 |
14 | }
15 |
16 | const mutations = {
17 |
18 | }
19 |
20 | export default {
21 | state,
22 | getters,
23 | actions,
24 | mutations
25 | }
26 |
--------------------------------------------------------------------------------
/src/vuex/store.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Vuex from 'vuex'
3 |
4 | import main from './modules/main'
5 | import home from './modules/home'
6 | import video from './modules/video'
7 |
8 | Vue.use(Vuex)
9 |
10 | export default new Vuex.Store({
11 | modules: {
12 | main,
13 | home,
14 | video
15 | }
16 | })
17 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
10 |
18 |
19 |
22 |
--------------------------------------------------------------------------------
/.idea/douban.iml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
--------------------------------------------------------------------------------
/src/components/loading.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |

4 |
5 |
6 |
17 |
24 |
--------------------------------------------------------------------------------
/src/components/group.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
10 |
27 |
--------------------------------------------------------------------------------
/src/components/star.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
11 |
26 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | // http://eslint.org/docs/user-guide/configuring
2 |
3 | module.exports = {
4 | root: true,
5 | parser: 'babel-eslint',
6 | parserOptions: {
7 | sourceType: 'module'
8 | },
9 | env: {
10 | browser: true,
11 | },
12 | // https://github.com/feross/standard/blob/master/RULES.md#javascript-standard-style
13 | extends: 'standard',
14 | // required to lint *.vue files
15 | plugins: [
16 | 'html'
17 | ],
18 | // add your custom rules here
19 | 'rules': {
20 | // allow paren-less arrow functions
21 | 'arrow-parens': 0,
22 | // allow async-await
23 | 'generator-star-spacing': 0,
24 | // allow debugger during development
25 | 'no-debugger': process.env.NODE_ENV === 'production' ? 2 : 0
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/static/css/eric-meyer-reset.min.css:
--------------------------------------------------------------------------------
1 | html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{border:0;font-size:100%;font:inherit;vertical-align:baseline;margin:0;padding:0}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:none}table{border-collapse:collapse;border-spacing:0}
--------------------------------------------------------------------------------
/src/components/cityMoreItem.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
{{cityDataList.title}}
6 |
时间:{{cityDataList.begin_time}}
7 |
地点:{{cityDataList.address}}
8 |
费用:{{cityDataList.price_range}}官方售票
9 |
10 |
11 |
12 |
15 |
25 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | // The Vue build version to load with the `import` command
2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
3 | import Vue from 'vue'
4 | import App from './App'
5 | import router from './router'
6 | import MintUi from 'mint-ui'
7 | import 'mint-ui/lib/style.css'
8 | import store from './vuex/store'
9 |
10 | Vue.config.productionTip = false
11 | Vue.use(MintUi)
12 |
13 | /* eslint-disable no-new */
14 | new Vue({
15 | el: '#app',
16 | router,
17 | store,
18 | template: '',
19 | components: { App }
20 | })
21 | // 打包改為-->打包APK時用到
22 | // document.addEventListener('deviceready', () => {
23 | // new Vue({
24 | // el: '#app',
25 | // router,
26 | // store,
27 | // template: '',
28 | // components: { App }
29 | // })
30 | // window.navigator.splashscreen.hide()
31 | // }, false)
32 |
--------------------------------------------------------------------------------
/src/components/musicMoreItem.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
{{music.title}}
6 |
7 |
表演者:{{music.author[0].name}}
8 |
发行时间:{{music.attrs.pubdate[0]}}
9 |
12 |
13 |
14 |
15 |
18 |
32 |
--------------------------------------------------------------------------------
/src/components/tvMoreItem.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
{{television.title}}
6 |
7 |
导演:{{television.directors[0].name}}
8 |
演员:{{item.name}}/
9 |
12 |
13 |
14 |
15 |
17 |
31 |
--------------------------------------------------------------------------------
/src/components/groupItem.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | -
4 |
5 |
6 |
7 |
{{item.title}}
8 |
{{item.group_topic.title}}
9 |
10 |
11 |
{{item.group_member}}人
12 |
13 |
14 |
15 |
16 |
17 |
18 |
21 |
32 |
--------------------------------------------------------------------------------
/src/assets/css/common.styl:
--------------------------------------------------------------------------------
1 | body
2 | width 7.5rem
3 | min-height 100%
4 | margin 0 auto
5 | box-sizing border-box
6 | position relative
7 | overflow-x hidden
8 | font-family "Microsoft Yahei",Arial
9 | font-size 14px
10 | background-color #f0f0f0
11 | color #333
12 | -webkit-overflow-scrolling touch
13 | .color33
14 | color #333!important
15 | .colorAaa
16 | color #aaa!important
17 | .colorRed
18 | color #f94848!important
19 | .colorGreen
20 | color #42bd56!important
21 | .paddingTop50
22 | padding-top 50px
23 | // >右箭头
24 | .fa-angle-right
25 | font-size 18px
26 | color #333
27 | a
28 | text-decoration none
29 | .rating
30 | color #aaa
31 | font-size 14px
32 | margin-top .1rem
33 | text-align left
34 | .borderBottom
35 | border-bottom 1px solid #ddd!important
36 | // 官方售票
37 | .officialTicket
38 | display inline-block
39 | margin-left .2rem
40 | font-size 12px
41 | padding 0 .05rem
42 | color #f94848
43 | border 1px solid #f94848
44 | border-radius 3px
45 |
--------------------------------------------------------------------------------
/.idea/watcherTasks.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/src/assets/css/common.css:
--------------------------------------------------------------------------------
1 | body {
2 | width: 7.5rem;
3 | min-height: 100%;
4 | margin: 0 auto;
5 | box-sizing: border-box;
6 | position: relative;
7 | overflow-x: hidden;
8 | font-family: "Microsoft Yahei", Arial;
9 | font-size: 14px;
10 | background-color: #f0f0f0;
11 | color: #333;
12 | -webkit-overflow-scrolling: touch;
13 | }
14 | .color33 {
15 | color: #333 !important;
16 | }
17 | .colorAaa {
18 | color: #aaa !important;
19 | }
20 | .colorRed {
21 | color: #f94848 !important;
22 | }
23 | .colorGreen {
24 | color: #42bd56 !important;
25 | }
26 | .paddingTop50 {
27 | padding-top: 50px;
28 | }
29 | .fa-angle-right {
30 | font-size: 18px;
31 | color: #333;
32 | }
33 | a {
34 | text-decoration: none;
35 | }
36 | .rating {
37 | color: #aaa;
38 | font-size: 14px;
39 | margin-top: 0.1rem;
40 | text-align: left;
41 | }
42 | .borderBottom {
43 | border-bottom: 1px solid #ddd !important;
44 | }
45 | .officialTicket {
46 | display: inline-block;
47 | margin-left: 0.2rem;
48 | font-size: 12px;
49 | padding: 0 0.05rem;
50 | color: #f94848;
51 | border: 1px solid #f94848;
52 | border-radius: 3px;
53 | }
54 |
--------------------------------------------------------------------------------
/src/components/rating.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | {{rating.average}}
5 | 暂无评分
6 |
7 |
8 |
25 |
45 |
--------------------------------------------------------------------------------
/src/components/bookMoreItem.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
{{book.title}}
6 |
7 |
作者:{{book.author}}
8 |
出版社:{{book.publisher}}
9 |
12 |
13 |
14 |
15 |
35 |
49 |
--------------------------------------------------------------------------------
/src/components/banner.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
48 |
55 |
--------------------------------------------------------------------------------
/src/components/header.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
55 |
69 |
--------------------------------------------------------------------------------
/src/vuex/types.js:
--------------------------------------------------------------------------------
1 | // 创建操作类型(定义常量)
2 |
3 | // 正在热映
4 | export const GET_HOT_MOVIE = 'GET_HOT_MOVIE'
5 | // 即将上映
6 | export const GET_COMING_MOVIE = 'GET_COMING_MOVIE'
7 | // 榜单_top250
8 | export const GET_TOP250_MOVIE = 'GET_TOP250_MOVIE'
9 | // 榜单_口碑
10 | export const GET_REPUTATION_MOVIE = 'GET_REPUTATION_MOVIE'
11 | // 榜单_新片
12 | export const GET_NEW_MOVIE = 'GET_NEW_MOVIE'
13 | // 榜单_北美票房
14 | export const GET_NORTHUSA_MOVIE = 'GET_NORTHUSA_MOVIE'
15 |
16 | // 图书-----新书
17 | export const GET_BOOK_NEW = 'GET_BOOK_NEW'
18 | // 图书-----虚构类
19 | export const GET_BOOK_FICTION = 'GET_BOOK_FICTION'
20 | // 图书-----非虚构类
21 | export const GET_BOOK_NOFICTION = 'GET_BOOK_NOFICTION'
22 | // 图书-----豆瓣书店
23 | export const GET_BOOK_STORE = 'GET_BOOK_STORE'
24 | // 图书-----原创
25 | export const GET_BOOK_ORIGINAL = 'GET_BOOK_ORIGINAL'
26 | // 图书-----特价
27 | export const GET_BOOK_SPECIALPRICE = 'GET_BOOK_SPECIALPRICE'
28 | // 图书-----畅销
29 | export const GET_BOOK_SELLING = 'GET_BOOK_SELLING'
30 |
31 | // 音乐-----华语
32 | export const GET_MUSIC_CHINESE = 'GET_MUSIC_CHINESE'
33 | // 音乐-----欧美
34 | export const GET_MUSIC_USA = 'GET_MUSIC_USA'
35 | // 音乐-----日韩
36 | export const GET_MUSIC_JAPAN_KOREA = 'GET_MUSIC_JAPAN_KOREA'
37 | // 音乐-----热门
38 | export const GET_MUSIC_HOT = 'GET_MUSIC_HOT'
39 |
40 | // 同城-----热门活动
41 | export const GET_CITY_HOT = 'GET_CITY_HOT'
42 | // 同城-----电影
43 | export const GET_CITY_MOVIE = 'GET_CITY_MOVIE'
44 | // 同城-----音乐
45 | export const GET_CITY_MUSIC = 'GET_CITY_MUSIC'
46 | // 同城-----旅行
47 | export const GET_CITY_TRAVEL = 'GET_CITY_TRAVEL'
48 | // 同城-----运动
49 | export const GET_CITY_SPORTS = 'GET_CITY_SPORTS'
50 |
--------------------------------------------------------------------------------
/src/components/bookFiction.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
{{book.title}}
7 |
8 |
作者:{{book.author}}
9 |
出版社:{{book.publisher}}
10 |
11 |
12 |
{{book.author_intro}}
13 |
14 |
15 |
48 |
62 |
--------------------------------------------------------------------------------
/config/index.js:
--------------------------------------------------------------------------------
1 | // see http://vuejs-templates.github.io/webpack for documentation.
2 | var path = require('path')
3 |
4 | module.exports = {
5 | build: {
6 | env: require('./prod.env'),
7 | index: path.resolve(__dirname, '../dist/index.html'),
8 | assetsRoot: path.resolve(__dirname, '../dist'),
9 | assetsSubDirectory: 'static',
10 | assetsPublicPath: '/',
11 | productionSourceMap: true,
12 | // Gzip off by default as many popular static hosts such as
13 | // Surge or Netlify already gzip all static assets for you.
14 | // Before setting to `true`, make sure to:
15 | // npm install --save-dev compression-webpack-plugin
16 | productionGzip: false,
17 | productionGzipExtensions: ['js', 'css'],
18 | // Run the build command with an extra argument to
19 | // View the bundle analyzer report after build finishes:
20 | // `npm run build --report`
21 | // Set to `true` or `false` to always turn it on or off
22 | bundleAnalyzerReport: process.env.npm_config_report
23 | },
24 | dev: {
25 | env: require('./dev.env'),
26 | port: 8070,
27 | autoOpenBrowser: true,
28 | assetsSubDirectory: 'static',
29 | assetsPublicPath: '/',
30 | proxyTable: {
31 | // '/api': {
32 | // target: 'https://api.douban.com',
33 | // changeOrigin: true,
34 | // pathRewrite:{
35 | // '^/api': ''
36 | // }
37 | // }
38 | },
39 | // CSS Sourcemaps off by default because relative paths are "buggy"
40 | // with this option, according to the CSS-Loader README
41 | // (https://github.com/webpack/css-loader#sourcemaps)
42 | // In our experience, they generally work as expected,
43 | // just be aware of this issue when enabling this option.
44 | cssSourceMap: false
45 | }
46 | }
47 |
--------------------------------------------------------------------------------
/src/pages/video/tv/tvMore/tvMore.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
16 |
54 |
--------------------------------------------------------------------------------
/src/pages/video/city/cityMore/cityMore.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
16 |
54 |
--------------------------------------------------------------------------------
/src/pages/video/music/musicMore/musicMore.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
17 |
55 |
--------------------------------------------------------------------------------
/src/pages/video/video.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 电影
5 | 读书
6 | 电视
7 | 同城
8 | 音乐
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
46 |
68 |
--------------------------------------------------------------------------------
/src/pages/video/book/fictionMore/fictionMore.vue:
--------------------------------------------------------------------------------
1 |
2 |
13 |
14 |
19 |
57 |
--------------------------------------------------------------------------------
/src/pages/register/register.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
欢迎加入豆瓣
9 |
20 |
21 |
22 |
23 |
24 |
62 |
77 |
--------------------------------------------------------------------------------
/src/components/movieMoreItem.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
{{movie.title}}
6 |
7 |
导演:{{movie.directors[0].name}}
8 |
主演:{{item.name}}/
9 |
{{movie.collect_count}}人看过
10 |
11 | 购票
12 |
13 |
14 |
66 |
80 |
--------------------------------------------------------------------------------
/src/pages/login/login.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
欢迎来到豆瓣
9 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
83 |
97 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "douban",
3 | "version": "1.0.0",
4 | "description": "豆瓣电影,图书,音乐,广播,小组。",
5 | "author": "jilin",
6 | "private": true,
7 | "scripts": {
8 | "dev": "node build/dev-server.js",
9 | "start": "node build/dev-server.js",
10 | "build": "node build/build.js",
11 | "lint": "eslint --ext .js,.vue src"
12 | },
13 | "dependencies": {
14 | "axios": "^0.16.1",
15 | "mint-ui": "^2.2.6",
16 | "qs": "^6.4.0",
17 | "stylus": "^0.54.5",
18 | "stylus-loader": "^3.0.1",
19 | "vue": "^2.2.6",
20 | "vue-router": "^2.3.1",
21 | "vuex": "^2.3.1"
22 | },
23 | "devDependencies": {
24 | "autoprefixer": "^6.7.2",
25 | "babel-core": "^6.22.1",
26 | "babel-eslint": "^7.1.1",
27 | "babel-loader": "^6.2.10",
28 | "babel-plugin-transform-runtime": "^6.22.0",
29 | "babel-preset-env": "^1.3.2",
30 | "babel-preset-stage-2": "^6.22.0",
31 | "babel-register": "^6.22.0",
32 | "chalk": "^1.1.3",
33 | "connect-history-api-fallback": "^1.3.0",
34 | "copy-webpack-plugin": "^4.0.1",
35 | "css-loader": "^0.28.0",
36 | "eslint": "^3.19.0",
37 | "eslint-friendly-formatter": "^2.0.7",
38 | "eslint-loader": "^1.7.1",
39 | "eslint-plugin-html": "^2.0.0",
40 | "eslint-config-standard": "^6.2.1",
41 | "eslint-plugin-promise": "^3.4.0",
42 | "eslint-plugin-standard": "^2.0.1",
43 | "eventsource-polyfill": "^0.9.6",
44 | "express": "^4.14.1",
45 | "extract-text-webpack-plugin": "^2.0.0",
46 | "file-loader": "^0.11.1",
47 | "friendly-errors-webpack-plugin": "^1.1.3",
48 | "html-webpack-plugin": "^2.28.0",
49 | "http-proxy-middleware": "^0.17.3",
50 | "webpack-bundle-analyzer": "^2.2.1",
51 | "semver": "^5.3.0",
52 | "shelljs": "^0.7.6",
53 | "opn": "^4.0.2",
54 | "optimize-css-assets-webpack-plugin": "^1.3.0",
55 | "ora": "^1.2.0",
56 | "rimraf": "^2.6.0",
57 | "url-loader": "^0.5.8",
58 | "vue-loader": "^11.3.4",
59 | "vue-style-loader": "^2.0.5",
60 | "vue-template-compiler": "^2.2.6",
61 | "webpack": "^2.3.3",
62 | "webpack-dev-middleware": "^1.10.0",
63 | "webpack-hot-middleware": "^2.18.0",
64 | "webpack-merge": "^4.1.0"
65 | },
66 | "engines": {
67 | "node": ">= 4.0.0",
68 | "npm": ">= 3.0.0"
69 | },
70 | "browserslist": [
71 | "> 1%",
72 | "last 2 versions",
73 | "not ie <= 8"
74 | ]
75 | }
76 |
--------------------------------------------------------------------------------
/src/pages/video/interestedMore/interestedMore.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
根据你在豆瓣的历史行为和好友关系,猜你可能对这些电影和影人感兴趣
9 |
根据你在豆瓣的历史行为和好友关系,猜你可能对这些图书感兴趣
10 |
根据你在豆瓣的历史行为和好友关系,猜你可能对这些电视和影人感兴趣
11 |
根据你在豆瓣的历史行为和好友关系,猜你可能对这些唱片感兴趣
12 |
13 |
14 |
15 |
27 |
67 |
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | douban
22 |
23 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
--------------------------------------------------------------------------------
/src/pages/video/book/newBookMore/newBookMore.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
53 |
92 |
--------------------------------------------------------------------------------
/src/pages/video/movie/movieToplist/movieToplist.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
{{index+1}}
12 |
13 |
14 |
15 | {{item.title}}
16 |
17 |
18 |
19 |
20 |
21 | {{item.rating.average}}
22 | 导演:{{item.directors[0].name}}
23 | 演员:{{casts.name}}/
24 |
25 |
26 |
27 |
28 |
29 |
84 |
105 |
--------------------------------------------------------------------------------
/src/pages/main.vue:
--------------------------------------------------------------------------------
1 |
2 |
53 |
54 |
65 |
89 |
--------------------------------------------------------------------------------
/src/router/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Router from 'vue-router'
3 | import Main from '@/pages/main.vue'
4 | import Login from '@/pages/login/login.vue'
5 | import Register from '@/pages/register/register.vue'
6 | import MovieDetail from '@/pages/video/movie/movieDetail/movieDetail.vue'
7 | import MovieSearch from '@/pages/video/movie/movieSearch/movieSearch.vue'
8 | import MovieMore from '@/pages/video/movie/movieMore/movieMore.vue'
9 | import MovieToplist from '@/pages/video/movie/movieToplist/movieToplist.vue'
10 | import BookDetail from '@/pages/video/book/bookDetail/bookDetail.vue'
11 | import NewBookMore from '@/pages/video/book/NewBookMore/newBookMore.vue'
12 | import FictionMore from '@/pages/video/book/fictionMore/fictionMore.vue'
13 | import MusicMore from '@/pages/video/music/musicMore/musicMore.vue'
14 | import MusicDetail from '@/pages/video/music/musicDetail/musicDetail.vue'
15 | import TvMore from '@/pages/video/tv/tvMore/tvMore.vue'
16 | import CityMore from '@/pages/video/city/cityMore/cityMore.vue'
17 | import CityDetail from '@/pages/video/city/cityDetail/cityDetail.vue'
18 |
19 | import InterestedMore from '@/pages/video/interestedMore/interestedMore.vue' // 更多感兴趣
20 |
21 | import BroadcastDetail from '@/pages/broadcast/broadcastDetail/broadcastDetail.vue' // 广播详情
22 | import GroupDetail from '@/pages/group/groupDetail/groupDetail.vue' // 小组详情
23 |
24 | Vue.use(Router)
25 |
26 | export default new Router({
27 | routes: [
28 | {
29 | path: '/',
30 | name: 'main',
31 | component: Main
32 | },
33 | {
34 | path: '/login',
35 | name: 'login',
36 | component: Login
37 | },
38 | {
39 | path: '/register',
40 | name: 'register',
41 | component: Register
42 | },
43 | {
44 | path: '/movieDetail',
45 | name: 'movieDetail',
46 | component: MovieDetail
47 | },
48 | {
49 | path: '/movieMore',
50 | name: 'movieMore',
51 | component: MovieMore
52 | },
53 | {
54 | path: '/movieSearch',
55 | name: 'movieSearch',
56 | component: MovieSearch
57 | },
58 | {
59 | path: '/movieToplist',
60 | name: 'movieToplist',
61 | component: MovieToplist
62 | },
63 | {
64 | path: '/newBookMore',
65 | name: 'newBookMore',
66 | component: NewBookMore
67 | },
68 | {
69 | path: '/fictionMore',
70 | name: 'fictionMore',
71 | component: FictionMore
72 | },
73 | {
74 | path: '/bookDetail',
75 | name: 'bookDetail',
76 | component: BookDetail
77 | },
78 | {
79 | path: '/musicMore',
80 | name: 'musicMore',
81 | component: MusicMore
82 | },
83 | {
84 | path: '/musicDetail',
85 | name: 'musicDetail',
86 | component: MusicDetail
87 | },
88 | {
89 | path: '/tvMore',
90 | name: 'tvMore',
91 | component: TvMore
92 | },
93 | {
94 | path: '/cityMore',
95 | name: 'cityMore',
96 | component: CityMore
97 | },
98 | {
99 | path: '/cityDetail',
100 | name: 'cityDetail',
101 | component: CityDetail
102 | },
103 | {
104 | path: '/broadcastDetail',
105 | name: 'broadcastDetail',
106 | component: BroadcastDetail
107 | },
108 | {
109 | path: '/groupDetail',
110 | name: 'groupDetail',
111 | component: GroupDetail
112 | },
113 | {
114 | path: '/interestedMore',
115 | name: 'interestedMore',
116 | component: InterestedMore
117 | }
118 | ]
119 | })
120 |
--------------------------------------------------------------------------------
/src/pages/video/city/cityDetail/cityDetail.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
![]()
13 |
14 |
15 |
{{cityDetail.title}}
16 |
{{cityDetail.wisher_count}}人感兴趣 / {{cityDetail.participant_count}}要参加 / /
17 |
18 |
19 |
20 |
21 |
22 |
26 |
30 |
34 |
38 |
42 |
48 |
49 |
50 |
51 |
52 |
63 |
64 |
65 |
66 |
68 |
96 |
--------------------------------------------------------------------------------
/src/fetch/api.js:
--------------------------------------------------------------------------------
1 | import axios from 'axios'
2 | import qs from 'qs'
3 |
4 | // axios 配置
5 | axios.defaults.timeout = 5000 // 响应时间
6 | // axios.defaults.headers.common['Authorization'] = AUTH_TOKEN
7 | // axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8' // 配置请求头
8 | axios.defaults.headers = {'X-Requested-With': 'XMLHttpRequest'}
9 | axios.defaults.baseURL = 'https://api.douban.com' // 配置接口地址
10 |
11 | // POST传参序列化(添加请求拦截器)
12 | axios.interceptors.request.use((config) => {
13 | // 在发送请求之前做某件事
14 | if (config.method === 'get') {
15 | config.data = qs.stringify(config.data)
16 | }
17 | return config
18 | }, (error) => {
19 | console.log('错误的传参')
20 | return Promise.reject(error)
21 | })
22 |
23 | // 返回状态判断(添加响应拦截器)
24 | axios.interceptors.response.use((res) => {
25 | // 对响应数据做些事
26 | if (res.statusText !== 'OK') {
27 | // _.toast(res.data.msg)
28 | return Promise.reject(res)
29 | }
30 | return res
31 | }, (error) => {
32 | console.log('网络异常')
33 | return Promise.reject(error)
34 | })
35 |
36 | // 返回一个Promise(发送post请求)
37 | export function fetch (url, params) {
38 | return new Promise((resolve, reject) => {
39 | axios.get(url, params)
40 | .then(response => {
41 | resolve(response.data)
42 | }).catch((error) => {
43 | reject(error)
44 | })
45 | })
46 | }
47 |
48 | export default {
49 | hotMovie () {
50 | return fetch('/v2/movie/in_theaters')
51 | },
52 | comingMovie () {
53 | return fetch('/v2/movie/coming_soon')
54 | },
55 | top250Movie () {
56 | return fetch('/v2/movie/top250')
57 | },
58 | reputationMovie () {
59 | return fetch('/v2/movie/weekly')
60 | },
61 | newMovie () {
62 | return fetch('/v2/movie/new_movies')
63 | },
64 | northUsaMovie () {
65 | return fetch('/v2/movie/us_box')
66 | },
67 | commentsMovie () {
68 | return fetch('/v2/movie/subject/:id/reviews') // 影评
69 | },
70 | movieDetail (id) {
71 | return fetch('/v2/movie/subject/' + id) // 电影详情
72 | },
73 | movieSearch (tagName) {
74 | return fetch('/v2/movie/search?tag=' + tagName) // 电影搜索
75 | },
76 | bookNew () {
77 | return fetch('/v2/book/search?tag=新书&count=10') // 新书
78 | },
79 | bookFiction () {
80 | return fetch('/v2/book/search?q=虚构类&count=10') // 虚构类的图书
81 | },
82 | bookNoFiction () {
83 | return fetch('/v2/book/search?q=非虚构类&count=10') // 非虚构类的图书
84 | },
85 | bookStore () {
86 | return fetch('/v2/book/search?tag=豆瓣&count=10') // 豆瓣书店
87 | },
88 | bookOriginal () {
89 | return fetch('/v2/book/search?tag=原创&count=10') // 原创
90 | },
91 | bookSpecialPrice () {
92 | return fetch('/v2/book/search?tag=电子书&count=10') // 特价电子书
93 | },
94 | bookSelling () {
95 | return fetch('/v2/book/search?tag=畅销&count=10') // 畅销
96 | },
97 | musicChinese () {
98 | return fetch('v2/music/search?tag=华语&count=10') // 华语新碟榜
99 | },
100 | musicUsa () {
101 | return fetch('v2/music/search?tag=欧美&count=10') // 欧美新碟榜
102 | },
103 | musicJapanKorea () {
104 | return fetch('v2/music/search?tag=日韩&count=10') // 日韩新碟榜
105 | },
106 | musicHot () {
107 | return fetch('v2/music/search?tag=热门&count=10') // 热门单曲榜
108 | },
109 | cityHot () {
110 | return fetch('v2/event/list?loc=118282&count=10') // 城市 热门活动
111 | },
112 | cityMovie () {
113 | return fetch('v2/event/list?loc=118282&start=10&count=10') // 城市---电影类
114 | },
115 | cityMusic () {
116 | return fetch('v2/event/list?loc=108288&count=10') // 城市---音乐类
117 | },
118 | cityTravel () {
119 | return fetch('v2/event/list?loc=108296&count=10') // 城市---旅行类
120 | },
121 | citySports () {
122 | return fetch('v2/event/list?loc=118281&count=10') // 城市---运动类
123 | }
124 | }
125 |
--------------------------------------------------------------------------------
/src/pages/video/city/city.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
当前城市:深圳>
6 |
类型 世界 地点>
7 |
8 |
9 |
10 | 更多
11 |
12 |
13 |
14 |
15 |
编辑推荐
16 |
17 |
27 |
28 |
29 | 更多
30 |
31 |
32 | 更多
33 |
34 |
35 | 更多
36 |
37 |
38 | 更多
39 |
40 |
41 |
42 |
75 |
104 |
--------------------------------------------------------------------------------
/src/pages/video/music/musicDetail/musicDetail.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
![]()
13 |
14 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
简介
38 |
39 |
{{musicDetail.summary}}
40 |
展开
41 |
收起
42 |
43 |
44 |
50 |
51 |
52 |
53 |
54 |
65 |
66 |
67 |
68 |
74 |
105 |
106 |
--------------------------------------------------------------------------------
/src/components/interestedMoreItem.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
{{data.title}}
8 |
9 |
导演:{{data.directors[0].name}}
10 |
主演:{{item.name}}/
11 |
12 |
13 |
14 |
15 |
16 |
17 |
{{data.title}}
18 |
19 |
作者:{{data.author[0]}}
20 |
出版社:{{data.publisher}}
21 |
22 |
23 |
24 |
25 |
26 |
27 |
{{data.title}}
28 |
29 |
导演:{{data.directors[0].name}}
30 |
演员:{{item.name}}/
31 |
32 |
33 |
34 |
35 |
36 |
37 |
{{data.title}}
38 |
39 |
表演者:{{data.author[0].name}}
40 |
发行时间:{{data.attrs.pubdate[0]}}
41 |
42 |
43 |
44 |
最近值得看的热门电影
45 |
想看
46 |
47 |
48 |
来自豆瓣读书TOP 250榜单
49 |
想读
50 |
51 |
52 |
最近值得看的热门电视剧
53 |
想看
54 |
55 |
56 |
来自最热新碟榜
57 |
想听
58 |
59 |
60 |
61 |
91 |
111 |
--------------------------------------------------------------------------------
/src/pages/video/book/bookDetail/bookDetail.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
![]()
13 |
14 |
32 |
33 |
34 |
35 |
36 |
37 |
41 |
42 |
其他电商购买
43 |
3个商家
44 |
45 |
46 |
简介
47 |
48 |
{{bookDetail.summary}}
49 |
展开
50 |
收起
51 |
52 |
53 |
54 |
55 |
56 |
57 |
68 |
69 |
70 |
71 |
86 |
117 |
118 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # 豆瓣APP
2 |
3 | > 豆瓣电影,图书,音乐,广播,小组。vue2.0 + vue-router + axios + vuex + mint-ui
4 |
5 | # 运行项目
6 |
7 | ``` bash
8 | # git clone git@github.com:liangjilin/douban.git
9 |
10 | # install dependencies
11 | npm install
12 |
13 | # serve with hot reload at localhost:8080
14 | npm run dev
15 |
16 | ```
17 | # 效果图
18 |
19 | 
20 |
21 | # 项目结构
22 | ```javascript
23 | .
24 | ├── README.md
25 | ├── build // vue-cli 自带的配置文件
26 | │ ├── build.js
27 | │ ├── check-versions.js
28 | │ ├── dev-client.js
29 | │ ├── dev-server.js
30 | │ ├── utils.js
31 | │ ├── webpack.base.conf.js
32 | │ ├── webpack.dev.conf.js
33 | │ └── webpack.prod.conf.js
34 | ├── config // vue-cli 自带的配置文件
35 | │ ├── dev.env.js
36 | │ ├── index.js
37 | │ └── prod.env.js
38 | ├── package.json
39 | ├── src
40 | │ ├── App.vue
41 | │ ├── assets
42 | │ │ ├── css
43 | │ │ │ ├──common.styl
44 | │ │ │ │ ├──common.css
45 | │ │ │ │ ├──cfont-awesome.min
46 | │ │ ├── fonts
47 | │ │ └── images
48 | │ ├── components
49 | │ │ ├── banner.vue //
50 | │ │ ├── bookFiction.vue
51 | │ │ ├── bookMoreItem.vue
52 | │ │ ├── cityMoreItem.vue
53 | │ │ ├── header.vue
54 | │ │ ├── loading.vue
55 | │ │ ├── movieMoreItem.vue
56 | │ │ ├── musicMoreItem.vue
57 | │ │ ├── rating.vue
58 | │ │ ├── scroller.vue
59 | │ │ ├── star.vue
60 | │ │ └── tvMoreItem.vue
61 | │ ├── main.js // 入口文件
62 | │ ├── router // 路由
63 | │ │ ├── index.js
64 | │ ├── data // 自己写的模仿数据
65 | │ │ ├── homeData.json
66 | │ ├── fetch // fetch API
67 | │ │ ├── api.js // axios配置及API封装
68 | │ ├── vuex // 数据管理
69 | │ │ ├── modules
70 | │ │ │ ├── home.js
71 | │ │ │ ├── main.js
72 | │ │ │ └── video.js
73 | │ │ ├── store.js
74 | │ │ └── types.js
75 | │ └── pages
76 | │ ├── main.vue // 底部导航及页面绑定
77 | │ ├── home
78 | │ │ └── home.vue // 首页
79 | │ ├── video // 书影音
80 | │ │ ├── movie // 电影
81 | │ │ │ ├── movie.vue
82 | │ │ │ ├── movieDetail
83 | │ │ │ │ └── movieDetail.vue // 电影详情
84 | │ │ │ ├── movieMore
85 | │ │ │ │ └── movieMore.vue // 正在热映
86 | │ │ │ ├── movieSearch
87 | │ │ │ │ └── movieSearch.vue // 即将上映
88 | │ │ │ └── movieToplist
89 | │ │ │ │ └── movieToplist.vue // 榜单
90 | │ │ ├── book // 图书
91 | │ │ │ ├── book.vue
92 | │ │ │ ├── bookDetail
93 | │ │ │ │ └── bookDetail.vue // 图书详情
94 | │ │ │ ├── fictionMore
95 | │ │ │ │ └── fictionMore.vue // 查看更多图书
96 | │ │ │ └── newBookMore
97 | │ │ │ │ └── newBookMore.vue // 新书速递
98 | │ │ ├── city // 同城
99 | │ │ │ ├── city.vue
100 | │ │ │ ├── cityDetail
101 | │ │ │ │ └── cityDetail.vue // 同城详情
102 | │ │ │ ├── cityMore
103 | │ │ │ │ └── cityMore.vue // 查看更多同城
104 | │ │ ├── tv // 电视
105 | │ │ │ ├── tv.vue
106 | │ │ │ ├── tvMore
107 | │ │ │ │ └── tvMore.vue // 查看更多电视剧
108 | │ │ └── music // 音乐
109 | │ │ │ ├── music.vue
110 | │ │ │ ├── musicDetail
111 | │ │ │ │ └── musicDetail.vue // music详情
112 | │ │ │ ├── musicMore
113 | │ │ │ │ └── musicMore.vue // 查看更多music
114 | │ ├── broadcast
115 | │ │ ├── broadcast.vue
116 | │ │ └── broadcastDetail
117 | │ │ │ └── broadcastDetail.vue // 广播详情
118 | │ ├── group
119 | │ │ └── group.vue // 小组
120 | │ ├── mine
121 | │ │ └── mine.vue // 小组
122 | │ ├── login
123 | │ │ └── login.vue // 登录
124 | │ └── register
125 | │ └── register.vue // 注册
126 | ├── static
127 | │ ├── css
128 | │ │ └──eric-meyer-reset.min.css // css reset
129 | │ └── images
130 | │ └──favicon.ico // icon
131 | └── tree.md
132 | ```
133 | # 豆瓣API
134 | 该应用使用了下面4个api:
135 | * `/v2/book` 图书;
136 | * `/v2/movie` 电影;
137 | * `/v2/music` 音乐;
138 | * `v2/event` 同城。
139 |
140 | >更多关于豆瓣的api可以前往[豆瓣api官网](https://developers.douban.com/wiki/?title=guide)查看。
141 |
142 | 需要注意的是,由于豆瓣api的跨域问题,并不能直接通过ajax请求访问。不过vue-cli提供了代理的配置。
143 | 我们需要在`/config/index.js`中配置代理:
144 | ```javascript
145 | dev: {
146 | env: require('./dev.env'),
147 | port: 8070,
148 | autoOpenBrowser: true,
149 | assetsSubDirectory: 'static',
150 | assetsPublicPath: '/',
151 | proxyTable: {
152 | '/api': {
153 | target: 'https://api.douban.com',
154 | changeOrigin: true,
155 | pathRewrite:{
156 | '^/api': ''
157 | }
158 | }
159 | }
160 | ```
161 | # 关于相关依赖那些事
162 |
163 | vue-router, 请看[vue路由配置](https://router.vuejs.org/zh-cn/)。
164 | axios请求,请用力戳[Axios文档](https://www.npmjs.com/package/axios)。
165 | 亦或你想了解关于页面或跨组件数据通讯等的用法,请点击传送门[Vuex文档](https://vuex.vuejs.org/zh-cn/)。
166 | 还是饿了么移动端组件库mint-ui,[mint-ui官方文档](http://mint-ui.github.io/docs/#/)。
167 |
168 |
--------------------------------------------------------------------------------
/src/pages/group/group.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
418370个有趣的小组
6 |
选择立即加入吧
7 |
8 |
根据兴趣推荐
9 |
10 |
11 | 精选推荐
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
130 |
179 |
--------------------------------------------------------------------------------
/src/pages/video/music/music.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 更多
5 |
6 |
7 | 更多
8 |
9 |
10 | 更多
11 |
12 |
13 | 更多
14 |
15 |
16 |
17 |
18 |
音乐资讯
19 |
更多 >
20 |
21 |
22 |
30 |
31 |
32 |
33 |
44 | 查看更多
45 |
46 |
47 |
48 |
49 |
最受欢迎的剧评
50 |
更多 >
51 |
52 |
53 |
61 |
62 |
63 |
64 |
65 |
66 |
选音乐
67 |
68 |
69 |
70 | -
71 | 流行
72 |
73 | -
74 | 摇滚
75 |
76 | -
77 | 民谣
78 |
79 | -
80 | 独立
81 |
82 |
83 |
84 | -
85 | 华语
86 |
87 | -
88 | 欧美
89 |
90 | -
91 | 日本
92 |
93 | -
94 | 韩国
95 |
96 |
97 |
98 |
99 |
100 |
101 |
106 |
138 |
--------------------------------------------------------------------------------
/src/pages/video/movie/movieSearch/movieSearch.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
50 |
51 |
52 |
53 |
54 |
{{item.title}}
55 |
56 |
57 |
58 |
59 |
60 | {{item.rating.average}}
61 |
62 |
63 |
64 |
导演:{{item.directors[0].name}}
65 |
主演:{{name.name}}/
66 |
67 |
68 |
69 |
70 |
71 |
144 |
194 |
--------------------------------------------------------------------------------
/src/pages/broadcast/broadcastDetail/broadcastDetail.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |

15 |
宋小君
16 |
06-08 21:05
17 |
18 |
19 |
我是发表的内容,很多很多的内容,我是发表的内容,很多很多的内容,我是发表的内容,很多很多的内容
20 |

21 |
22 |
34 |
35 |
63 |
64 |
65 |
66 |
191 |
206 |
--------------------------------------------------------------------------------
/src/pages/mine/mine.vue:
--------------------------------------------------------------------------------
1 |
2 |
131 |
132 |
241 |
248 |
--------------------------------------------------------------------------------
/static/group.json:
--------------------------------------------------------------------------------
1 | {
2 | "object": [
3 | {
4 | "type": "影视",
5 | "data": [
6 | {
7 | "title": "异地恋:爱是最大救赎",
8 | "subtype": "group",
9 | "id": 1234,
10 | "images": {
11 | "small": "https://img3.doubanio.com/icon/g24916-11.jpg"
12 | },
13 | "group_member": 2736,
14 | "group_topic": {
15 | "title": "a7出租老男孩一枚,先到先得。。。。。"
16 | }
17 | },
18 | {
19 | "title": "我要女朋友",
20 | "subtype": "group",
21 | "id": 1234,
22 | "images": {
23 | "small": "https://img3.doubanio.com/icon/g64343-1.jpg"
24 | },
25 | "group_member": 8536,
26 | "group_topic": {
27 | "title": "万水千山总是情 来个真爱行不行"
28 | }
29 | },
30 | {
31 | "title": "加入这个组你就会有男朋友",
32 | "subtype": "group",
33 | "id": 1234,
34 | "images": {
35 | "small": "https://img3.doubanio.com/icon/g233931-6.jpg"
36 | },
37 | "group_member": 245983,
38 | "group_topic": {
39 | "title": "【有图】慢慢来,我不急,反正都等了那么久了"
40 | }
41 | }
42 | ]
43 | },
44 | {
45 | "type": "读书",
46 | "data": [
47 | {
48 | "title": "双鱼座到碗里来(不关注组长进不来)",
49 | "subtype": "group",
50 | "id": 1234,
51 | "images": {
52 | "small": "https://img3.doubanio.com/icon/g10813-13.jpg"
53 | },
54 | "group_member": 64769,
55 | "group_topic": {
56 | "title": "双鱼男感觉像农村里受气的小媳妇"
57 | }
58 | },
59 | {
60 | "title": "我爱我恨水瓶男",
61 | "subtype": "group",
62 | "id": 1234,
63 | "images": {
64 | "small": "https://img3.doubanio.com/icon/g141197-2.jpg"
65 | },
66 | "group_member": 25882,
67 | "group_topic": {
68 | "title": "有经验的姐妹们帮帮我"
69 | }
70 | },
71 | {
72 | "title": "★星译社ATS★",
73 | "subtype": "group",
74 | "id": 1234,
75 | "images": {
76 | "small": "https://img1.doubanio.com/icon/g104169-148.jpg"
77 | },
78 | "group_member": 6679,
79 | "group_topic": {
80 | "title": "(周运)阿莎莉娅每周能量运势6.12-6.18(全待)"
81 | }
82 | }
83 | ]
84 | },
85 | {
86 | "type": "音乐",
87 | "data": [
88 | {
89 | "title": "我们的云南谁的丽江 | 旅行",
90 | "subtype": "group",
91 | "id": 1234,
92 | "images": {
93 | "small": "https://img3.doubanio.com/icon/g116533-6.jpg"
94 | },
95 | "group_member": 128660,
96 | "group_topic": {
97 | "title": "云南丽江七日游"
98 | }
99 | },
100 | {
101 | "title": "台灣自由行",
102 | "subtype": "group",
103 | "id": 1234,
104 | "images": {
105 | "small": "https://img1.doubanio.com/icon/g346974-9.jpg"
106 | },
107 | "group_member": 106565,
108 | "group_topic": {
109 | "title": "6.30-7.7杭州出发台湾自由行~有一起的小伙伴吗?"
110 | }
111 | },
112 | {
113 | "title": "去义工旅行(微信:Yigongtrip)",
114 | "subtype": "group",
115 | "id": 1234,
116 | "images": {
117 | "small": "https://img1.doubanio.com/icon/g312709-19.jpg"
118 | },
119 | "group_member": 86786,
120 | "group_topic": {
121 | "title": "兴坪三十度灰青年旅舍义工招募贴"
122 | }
123 | }
124 | ]
125 | },
126 | {
127 | "type": "同城",
128 | "data": [
129 | {
130 | "title": "成都租房",
131 | "subtype": "group",
132 | "id": 1234,
133 | "images": {
134 | "small": "https://img3.doubanio.com/icon/g117205-2.jpg"
135 | },
136 | "group_member": 43736,
137 | "group_topic": {
138 | "title": "天府四街临江苑套一出租个人 无中介费噢"
139 | }
140 | },
141 | {
142 | "title": "北京租房(非中介)",
143 | "subtype": "group",
144 | "id": 1234,
145 | "images": {
146 | "small": "https://img3.doubanio.com/icon/g279962-3.jpg"
147 | },
148 | "group_member": 53736,
149 | "group_topic": {
150 | "title": "9号线丰台南路站看丹桥新华街四里,次卧出租,押一付一"
151 | }
152 | },
153 | {
154 | "title": "深圳福田租房(个人房源免费推广)",
155 | "subtype": "group",
156 | "id": 1234,
157 | "images": {
158 | "small": "https://img3.doubanio.com/icon/g117205-2.jpg"
159 | },
160 | "group_member": 4373,
161 | "group_topic": {
162 | "title": "福田福民岗厦复式单间整租,2800,可短租"
163 | }
164 | }
165 | ]
166 | },
167 | {
168 | "type": "高校",
169 | "data": [
170 | {
171 | "title": "想不想很多人帮你",
172 | "subtype": "group",
173 | "id": 1234,
174 | "images": {
175 | "small": "https://img1.doubanio.com/icon/g14859-17.jpg"
176 | },
177 | "group_member": 431999,
178 | "group_topic": {
179 | "title": "想转专业去学日语大家有神马建议,想转专业去学日语大家有神马建议"
180 | }
181 | },
182 | {
183 | "title": "我们都有秘密",
184 | "subtype": "group",
185 | "id": 1234,
186 | "images": {
187 | "small": "https://img5.doubanio.com/icon/g399184-6.jpg"
188 | },
189 | "group_member": 96960,
190 | "group_topic": {
191 | "title": "北京 征个女生,要年轻漂亮,心地善良,孝顺"
192 | }
193 | },
194 | {
195 | "title": "文艺青年装逼会",
196 | "subtype": "group",
197 | "id": 1234,
198 | "images": {
199 | "small": "https://img1.doubanio.com/icon/g17947-8.jpg"
200 | },
201 | "group_member": 437361,
202 | "group_topic": {
203 | "title": "文艺青年装逼会,在这里,没人在乎你的出生,你的身份,你的工作,只要你有才华,尽情装B吧"
204 | }
205 | }
206 | ]
207 | },
208 | {
209 | "type": "职场",
210 | "data": [
211 | {
212 | "title": "我爱代购&海淘☺微信号",
213 | "subtype": "group",
214 | "id": 1234,
215 | "images": {
216 | "small": "https://img5.doubanio.com/icon/g37539-6.jpg"
217 | },
218 | "group_member": 43129,
219 | "group_topic": {
220 | "title": "靠谱小日代 薇信直播定位+邮寄单号 可拼邮可直邮 保证品 ~笔芯"
221 | }
222 | },
223 | {
224 | "title": "PiaPia团✿团购",
225 | "subtype": "group",
226 | "id": 1234,
227 | "images": {
228 | "small": "https://img3.doubanio.com/icon/g573696-2.jpg"
229 | },
230 | "group_member": 21960,
231 | "group_topic": {
232 | "title": "【想买】之前团过的包要吗?要就快来吧"
233 | }
234 | },
235 | {
236 | "title": "我们一起海淘",
237 | "subtype": "group",
238 | "id": 1234,
239 | "images": {
240 | "small": "https://img3.doubanio.com/icon/g25704-22.jpg"
241 | },
242 | "group_member": 2361,
243 | "group_topic": {
244 | "title": "靠谱小日代 薇信直播定位+邮寄单号 可拼邮可直邮 保正品~笔芯"
245 | }
246 | }
247 | ]
248 | }
249 | ]
250 | }
251 |
--------------------------------------------------------------------------------
/src/pages/broadcast/broadcast.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |

5 |
发现有趣的人
6 |
关注他们,发现更大的世界
7 |
8 |
9 |
10 | -
11 |
12 |
13 |
14 |
15 |
16 |
西木
17 |
49人关注
18 |
我是发表的内容,很多很多的内容
19 |
27 |
28 |
29 | 33
30 |
31 |
32 |
33 |
34 | -
35 |
36 |
37 |
38 |
39 |
40 |
西木
41 |
49人关注
42 |
我是发表的内容,很多很多的内容
43 |
49 |
50 |
51 | 33
52 |
53 |
54 |
55 |
56 | -
57 |
58 |
59 |
60 |
61 |
62 |
西木
63 |
49人关注
64 |
我是发表的内容,很多很多的内容,我是发表的内容,很多很多的内容,我是发表的内容,很多很多的内容,我是发表的内容,很多很多的内容
65 |
66 |
67 | 33
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
194 |
201 |
--------------------------------------------------------------------------------
/src/pages/video/movie/movieMore/movieMore.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 深圳
9 |
10 |
11 |
12 |
16 |
24 |
{{dateMonth}}月{{dateDate}}日,{{dateDay}}
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
120 |
234 |
--------------------------------------------------------------------------------
/src/pages/video/tv/tv.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
今日更新
7 |
更多 >
8 |
9 |
24 |
25 |
26 | 更多
27 |
28 |
29 | 更多
30 |
31 |
32 | 更多
33 |
34 |
35 | 更多
36 |
37 |
38 |
49 | 查看更多
50 |
51 |
52 |
53 |
54 |
最受欢迎的剧评
55 |
更多 >
56 |
57 |
58 |
66 |
67 |
68 |
76 |
77 |
78 |
86 |
87 |
88 |
89 |
90 |
91 |
选电视剧
92 |
93 |
94 |
95 | -
96 | 美剧
97 |
98 | -
99 | 英剧
100 |
101 | -
102 | 韩剧
103 |
104 | -
105 | 国产剧
106 |
107 | -
108 | 港剧
109 |
110 | -
111 | 日剧
112 |
113 | -
114 | 动画
115 |
116 | -
117 | 综艺
118 |
119 |
120 |
121 |
122 |
123 |
124 |
166 |
201 |
--------------------------------------------------------------------------------
/src/components/scroller.vue:
--------------------------------------------------------------------------------
1 |
2 |
57 |
58 |
203 |
226 |
--------------------------------------------------------------------------------
/src/vuex/modules/video.js:
--------------------------------------------------------------------------------
1 | import api from '../../fetch/api'
2 | import * as types from '../types'
3 |
4 | const state = {
5 | movie_hot: [],
6 | movie_coming: [],
7 | movie_top250: [],
8 | movie_reputation: [],
9 | movie_new: [],
10 | movie_northUsa: [],
11 | movie_search_tag: [{
12 | forms: [
13 | {name: '电影'},
14 | {name: '电视剧'},
15 | {name: '综艺'},
16 | {name: '动画'},
17 | {name: '纪录片'},
18 | {name: '短片'}
19 | ],
20 | regions: [
21 | {name: '大陆'},
22 | {name: '美国'},
23 | {name: '香港'},
24 | {name: '台湾'},
25 | {name: '日本'},
26 | {name: '韩国'},
27 | {name: '英国'},
28 | {name: '法国'},
29 | {name: '德国'},
30 | {name: '意大利'},
31 | {name: '西班牙'},
32 | {name: '印度'},
33 | {name: '泰国'},
34 | {name: '俄罗斯'},
35 | {name: '伊朗'},
36 | {name: '加拿大'},
37 | {name: '澳大利亚'},
38 | {name: '爱尔兰'},
39 | {name: '瑞典'},
40 | {name: '巴西'},
41 | {name: '丹麦'}
42 | ],
43 | types: [
44 | {name: '剧情'},
45 | {name: '爱情'},
46 | {name: '喜剧'},
47 | {name: '科幻'},
48 | {name: '动作'},
49 | {name: '悬疑'},
50 | {name: '犯罪'},
51 | {name: '恐怖'},
52 | {name: '青春'},
53 | {name: '励志'},
54 | {name: '战争'},
55 | {name: '文艺'},
56 | {name: '魔幻'},
57 | {name: '黑色幽默'},
58 | {name: '传记'},
59 | {name: '情色'},
60 | {name: '暴力'},
61 | {name: '音乐'},
62 | {name: '家庭'}
63 | ],
64 | specials: [
65 | {name: '经典'},
66 | {name: '豆瓣高分'},
67 | {name: '冷门佳片'},
68 | {name: '+自定义标签'}
69 | ]
70 | }],
71 | book_new: [],
72 | book_fiction: [],
73 | book_noFiction: [],
74 | book_store: [],
75 | book_Original: [],
76 | book_SpecialPrice: [],
77 | book_Selling: [],
78 | musicChinese: [],
79 | musicUsa: [],
80 | musicJapanKorea: [],
81 | musicHot: [],
82 | cityHot: [],
83 | cityMovie: [],
84 | cityMusic: [],
85 | cityTravel: [],
86 | citySports: []
87 | }
88 |
89 | const getters = {
90 | // 电影
91 | movie_hot_list: state => state.movie_hot,
92 | movie_coming_list: state => state.movie_coming,
93 | movie_top250_list: state => state.movie_top250,
94 | movie_reputation_list: state => state.movie_reputation,
95 | movie_new_list: state => state.movie_new,
96 | movie_northUsa_list: state => state.movie_northUsa,
97 | movie_search_tag: state => state.movie_search_tag,
98 | // 图书类
99 | book_new: state => state.book_new,
100 | book_fiction: state => state.book_fiction,
101 | book_noFiction: state => state.book_noFiction,
102 | book_store: state => state.book_store,
103 | book_Original: state => state.book_Original,
104 | book_SpecialPrice: state => state.book_SpecialPrice,
105 | book_Selling: state => state.book_Selling,
106 | // 音乐
107 | music_Chinese: state => state.musicChinese,
108 | music_Usa: state => state.musicUsa,
109 | music_JapanKorea: state => state.musicJapanKorea,
110 | music_Hot: state => state.musicHot,
111 | // 同城
112 | city_Hot: state => state.cityHot,
113 | city_Movie: state => state.cityMovie,
114 | city_Music: state => state.cityMusic,
115 | city_Travel: state => state.cityTravel,
116 | city_Sports: state => state.citySports
117 | }
118 |
119 | const actions = {
120 | // 电影
121 | getHotMovie ({ commit }) {
122 | api.hotMovie().then(res => {
123 | commit(types.GET_HOT_MOVIE, res)
124 | })
125 | },
126 | getComingMovie ({commit}) {
127 | api.comingMovie().then(res => {
128 | commit(types.GET_COMING_MOVIE, res)
129 | })
130 | },
131 | getTop250Movie ({commit}) {
132 | api.top250Movie().then(res => {
133 | commit(types.GET_TOP250_MOVIE, res)
134 | })
135 | },
136 | getReputationMovie ({commit}) {
137 | api.reputationMovie().then(res => {
138 | commit(types.GET_REPUTATION_MOVIE, res)
139 | })
140 | },
141 | getNewMovie ({commit}) {
142 | api.newMovie().then(res => {
143 | commit(types.GET_NEW_MOVIE, res)
144 | })
145 | },
146 | getNorthUsaMovie ({commit}) {
147 | api.northUsaMovie().then(res => {
148 | commit(types.GET_NORTHUSA_MOVIE, res)
149 | })
150 | },
151 | getCommentsMovie ({commit}) {
152 | api.commentsMovie().then(res => {
153 | console.log(res)
154 | })
155 | },
156 | // 图书
157 | getNewBook ({commit}) {
158 | api.bookNew().then(res => {
159 | commit(types.GET_BOOK_NEW, res)
160 | })
161 | },
162 | getFictionBook ({commit}) {
163 | api.bookFiction().then(res => {
164 | commit(types.GET_BOOK_FICTION, res)
165 | })
166 | },
167 | getNoFictionBook ({commit}) {
168 | api.bookNoFiction().then(res => {
169 | commit(types.GET_BOOK_NOFICTION, res)
170 | })
171 | },
172 | getStoreBook ({commit}) {
173 | api.bookStore().then(res => {
174 | commit(types.GET_BOOK_STORE, res)
175 | })
176 | },
177 | getOriginalBook ({commit}) {
178 | api.bookOriginal().then(res => {
179 | commit(types.GET_BOOK_ORIGINAL, res)
180 | })
181 | },
182 | getSpecialPriceBook ({commit}) {
183 | api.bookSpecialPrice().then(res => {
184 | commit(types.GET_BOOK_SPECIALPRICE, res)
185 | })
186 | },
187 | getSellingBook ({commit}) {
188 | api.bookSelling().then(res => {
189 | commit(types.GET_BOOK_SELLING, res)
190 | })
191 | },
192 | // 音乐
193 | getMusicChinese ({commit}) {
194 | api.musicChinese().then(res => {
195 | commit(types.GET_MUSIC_CHINESE, res)
196 | })
197 | },
198 | getMusicUsa ({commit}) {
199 | api.musicUsa().then(res => {
200 | commit(types.GET_MUSIC_USA, res)
201 | })
202 | },
203 | getMusicJapanKorea ({commit}) {
204 | api.musicJapanKorea().then(res => {
205 | commit(types.GET_MUSIC_JAPAN_KOREA, res)
206 | })
207 | },
208 | getMusicHot ({commit}) {
209 | api.musicHot().then(res => {
210 | commit(types.GET_MUSIC_HOT, res)
211 | })
212 | },
213 | getCityHot ({commit}) {
214 | api.cityHot().then(res => {
215 | commit(types.GET_CITY_HOT, res)
216 | })
217 | },
218 | getCityMovie ({commit}) {
219 | api.cityMovie().then(res => {
220 | commit(types.GET_CITY_MOVIE, res)
221 | })
222 | },
223 | getCityMusic ({commit}) {
224 | api.cityMusic().then(res => {
225 | commit(types.GET_CITY_MUSIC, res)
226 | })
227 | },
228 | getCityTravel ({commit}) {
229 | api.cityTravel().then(res => {
230 | commit(types.GET_CITY_TRAVEL, res)
231 | })
232 | },
233 | getCitySports ({commit}) {
234 | api.citySports().then(res => {
235 | commit(types.GET_CITY_SPORTS, res)
236 | })
237 | }
238 | }
239 |
240 | const mutations = {
241 | // 电影
242 | [types.GET_HOT_MOVIE] (state, res) {
243 | state.movie_hot = res.subjects
244 | },
245 | [types.GET_COMING_MOVIE] (state, res) {
246 | state.movie_coming = res.subjects
247 | },
248 | [types.GET_TOP250_MOVIE] (state, res) {
249 | state.movie_top250 = res.subjects
250 | },
251 | [types.GET_REPUTATION_MOVIE] (state, res) {
252 | state.movie_reputation = res.subjects
253 | },
254 | [types.GET_NEW_MOVIE] (state, res) {
255 | state.movie_new = res.subjects
256 | },
257 | [types.GET_NORTHUSA_MOVIE] (state, res) {
258 | state.movie_northUsa = res.subjects
259 | },
260 | // 图书
261 | [types.GET_BOOK_NEW] (state, res) { // 新书
262 | state.book_new = res.books
263 | },
264 | [types.GET_BOOK_FICTION] (state, res) { // 虚构类
265 | state.book_fiction = res.books
266 | },
267 | [types.GET_BOOK_NOFICTION] (state, res) { // 非虚构类
268 | state.book_noFiction = res.books
269 | },
270 | [types.GET_BOOK_STORE] (state, res) { // 豆瓣书店
271 | state.book_store = res.books
272 | },
273 | [types.GET_BOOK_ORIGINAL] (state, res) { // 原创
274 | state.book_Original = res.books
275 | },
276 | [types.GET_BOOK_SPECIALPRICE] (state, res) { // 特价电子书
277 | state.book_SpecialPrice = res.books
278 | },
279 | [types.GET_BOOK_SELLING] (state, res) { // 畅销图书榜
280 | state.book_Selling = res.books
281 | },
282 | // 音乐
283 | [types.GET_MUSIC_CHINESE] (state, res) { // 华语
284 | state.musicChinese = res.musics
285 | },
286 | [types.GET_MUSIC_USA] (state, res) { // 欧美
287 | state.musicUsa = res.musics
288 | },
289 | [types.GET_MUSIC_JAPAN_KOREA] (state, res) { // 日韩
290 | state.musicJapanKorea = res.musics
291 | },
292 | [types.GET_MUSIC_HOT] (state, res) { // 热门
293 | state.musicHot = res.musics
294 | },
295 | // 同城
296 | [types.GET_CITY_HOT] (state, res) { // 城市---热门活动
297 | state.cityHot = res.events
298 | },
299 | [types.GET_CITY_MOVIE] (state, res) { // 城市---电影
300 | state.cityMovie = res.events
301 | },
302 | [types.GET_CITY_MUSIC] (state, res) { // 城市---音乐
303 | state.cityMusic = res.events
304 | },
305 | [types.GET_CITY_TRAVEL] (state, res) { // 城市---旅行
306 | state.cityTravel = res.events
307 | },
308 | [types.GET_CITY_SPORTS] (state, res) { // 城市---运动
309 | state.citySports = res.events
310 | }
311 | }
312 |
313 | export default {
314 | state,
315 | getters,
316 | actions,
317 | mutations
318 | }
319 |
--------------------------------------------------------------------------------
/src/pages/group/groupDetail/groupDetail.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
![]()
14 |
{{groupData.title}}
15 |
16 |
21 |
22 |
23 |
24 |
这个小组的成员也喜欢去:
25 |
收起 
26 |
展开 
27 |
28 |
36 |
37 |
75 |
76 |
77 |
278 |
322 |
--------------------------------------------------------------------------------
/src/pages/video/book/book.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | 更多
5 |
6 |
7 | 更多
8 |
9 |
10 | 更多
11 |
12 |
13 |
14 |
15 |
图书资讯
16 |
更多 >
17 |
18 |
19 |
20 |
21 |
今晚我有空 | 豆瓣9.2的《白鹿原》复播,能否成为今年国产剧最佳?
22 |
停播一个月《白鹿原》终于回归,豆瓣9.2的高分能否得以保持?最值得推荐的影视内容,都在这里了!
23 |
24 |
25 |
26 |
27 | 作者: 豆瓣
28 |
29 |
30 |
31 |
32 |
46 |
47 |
48 |
63 |
64 |
65 | 更多
66 |
67 |
68 | 更多
69 |
70 |
71 |
82 | 查看更多
83 |
84 |
85 |
86 |
87 |
最受欢迎的影评
88 |
更多 >
89 |
90 |
91 |
99 |
100 |
101 |
102 |
103 |
104 |
选图书
105 |
106 |
107 |
108 | -
109 | 小说
110 |
111 | -
112 | 爱情
113 |
114 | -
115 | 历史
116 |
117 | -
118 | 外国文学
119 |
120 | -
121 | 青春
122 |
123 | -
124 | 励志
125 |
126 | -
127 | 随笔
128 |
129 | -
130 | 传记
131 |
132 | -
133 | 推理
134 |
135 | -
136 | 旅行
137 |
138 | -
139 | 奇幻
140 |
141 | -
142 | 经营
143 |
144 |
145 |
146 |
147 |
148 |
149 |
223 |
263 |
--------------------------------------------------------------------------------
/src/pages/video/movie/movieDetail/movieDetail.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
![]()
14 |
15 |
34 |
35 |
36 |
37 |
38 |
42 |
43 |
简介
44 |
45 |
{{movieDetail.summary}}
46 |
展开
47 |
收起
48 |
49 |
50 |
68 |
80 |
81 |
82 |
83 |
84 |
95 |
96 |
97 |
98 |
99 |
100 |
303 |
344 |
--------------------------------------------------------------------------------
{{music.summary}}
11 |