├── .browserslistrc
├── .eslintrc.js
├── .gitignore
├── README.md
├── babel.config.js
├── package-lock.json
├── package.json
├── postcss.config.js
├── public
├── favicon.ico
└── index.html
├── src
├── App.vue
├── assets
│ ├── images
│ │ ├── 333.png
│ │ ├── Aa.png
│ │ ├── Collection.png
│ │ ├── Greate-l.png
│ │ ├── Greate-l2.png
│ │ ├── Greate.png
│ │ ├── account.png
│ │ ├── bookList.png
│ │ ├── comment.png
│ │ ├── follow.png
│ │ ├── leave.png
│ │ ├── menu1.png
│ │ ├── menu2.png
│ │ ├── menu3.png
│ │ ├── menu4.png
│ │ ├── menu5.png
│ │ ├── menu6.png
│ │ ├── moon.png
│ │ ├── mseeage.png
│ │ ├── mulu.png
│ │ ├── passwordpd.png
│ │ ├── record.png
│ │ ├── return.png
│ │ ├── sun.png
│ │ ├── talk.png
│ │ ├── top-book.jpg
│ │ ├── top1.jpg
│ │ ├── top2.png
│ │ ├── zhui1 copy.jpg
│ │ ├── zhui1.jpg
│ │ ├── zhui2 copy.jpg
│ │ ├── zhui2.jpg
│ │ ├── zhui3 copy.jpg
│ │ └── zhui3.jpg
│ ├── inconfont
│ │ ├── iconfont.css
│ │ ├── iconfont.eot
│ │ ├── iconfont.js
│ │ ├── iconfont.json
│ │ ├── iconfont.svg
│ │ ├── iconfont.ttf
│ │ ├── iconfont.woff
│ │ └── iconfont.woff2
│ ├── logo.png
│ └── user.png
├── components
│ ├── booksInfo
│ │ └── BooksInfo.vue
│ └── readbooks
│ │ └── bookContent.vue
├── main.js
├── router
│ └── index.js
├── store
│ └── index.js
├── tools
│ └── myaxios.js
└── views
│ ├── Good.vue
│ ├── Personal.vue
│ ├── Ranking.vue
│ ├── Search.vue
│ ├── Shelf.vue
│ ├── Sort.vue
│ ├── Sortbooks.vue
│ ├── books
│ └── Booksearch.vue
│ ├── per
│ ├── bowerect.vue
│ ├── personinfo.vue
│ └── personre.vue
│ └── ranks
│ ├── femalerankDetail.vue
│ └── malerankDetail.vue
└── vue.config.js
/.browserslistrc:
--------------------------------------------------------------------------------
1 | > 1%
2 | last 2 versions
3 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | env: {
4 | node: true
5 | },
6 | 'extends': [
7 | 'plugin:vue/recommended',
8 | 'eslint:recommended'
9 | ],
10 | rules: {
11 |
12 | // 关闭必须使用单引号
13 | 'quotes': [0, 'single'],
14 | 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
15 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
16 | 'prefer-promise-reject-errors': 0,
17 | 'space-unary-ops': 0,
18 | 'no-unused-expressions': 0,
19 | 'no-useless-return': 0,
20 | 'standard/no-callback-literal': 0,
21 | 'import/first': 0,
22 | 'import/export': 0,
23 | 'no-mixed-operators': 0,
24 | 'no-use-before-define': 0,
25 |
26 | // 不允许使用分号
27 | 'semi': [2, 'never'],
28 |
29 | // 允许使用==
30 | 'eqeqeq': 0,
31 |
32 | // 缩进使用不做限制
33 | 'indent': 2,
34 |
35 | // 允许使用tab
36 | 'no-tabs': 0,
37 |
38 | // 函数圆括号之前没有空格
39 | 'space-before-function-paren': [2, 'never'],
40 |
41 | // 不要求块内空格填充格式
42 | 'padded-blocks': 0,
43 |
44 | // 不限制变量一起声明
45 | 'one-var': 0,
46 |
47 | // 条件语句中复制操作符需要用圆括号括起来
48 | 'no-cond-assign': [2, 'except-parens'],
49 |
50 | // 允许使用条件表达式使用常量
51 | 'no-constant-condition': 2,
52 |
53 | // 单行可忽略大括号,多行不可忽略
54 | 'curly': [2, 'multi-line'],
55 |
56 | // 不允许使用var变量
57 | 'no-var': 2,
58 |
59 | 'no-unused-vars': 0,
60 |
61 | // 不允许出现多个空格
62 | 'no-multi-spaces': ['error', { ignoreEOLComments: true }],
63 | 'camelcase': 0,
64 |
65 | // 对象字面量的键值空格风格
66 | 'key-spacing': 2,
67 |
68 | // if语句包含一个return语句, else就多余
69 | 'no-else-return': 2,
70 |
71 | // 建议将经常出现的数字提取为变量
72 | 'no-magic-numbers': [0, { ignoreArrayIndexes: true }],
73 |
74 | // 不允许重复声明变量
75 | 'no-redeclare': [2, { builtinGlobals: true }],
76 |
77 | // 立即执行函数风格
78 | 'wrap-iife': [2, 'inside'],
79 |
80 | // 不允许圆括号中出现空格
81 | 'space-in-parens': [2, 'never'],
82 |
83 | // 确保运算符周围有空格
84 | 'space-infix-ops': 2,
85 |
86 | // 强制点号与属性同一行
87 | 'dot-location': [2, 'property'],
88 |
89 | // 强制单行代码使用空格
90 | 'block-spacing': [2, 'always'],
91 |
92 | // 约束for-in使用hasOwnProperty判断
93 | 'guard-for-in': 0,
94 |
95 | // 采用one true brace style大括号风格
96 | 'brace-style': [2, '1tbs', { 'allowSingleLine': true }],
97 |
98 | // 统一逗号周围空格风格
99 | 'comma-spacing': [2, { 'before': false, 'after': true }],
100 |
101 | // 禁止出现多个空行
102 | 'no-multiple-empty-lines': [2, { 'max': 1, 'maxEOF': 2 }],
103 |
104 | // 允许箭头函数不使用圆括号
105 | 'arrow-parens': 0,
106 |
107 | // 规范generator函数的使用
108 | 'generator-star-spacing': [2, { 'before': false, 'after': true }],
109 |
110 | // 要求在块级
111 | 'lines-around-comment': [2, { 'beforeBlockComment': true, 'afterBlockComment': false, 'beforeLineComment': true, 'afterLineComment': false }]
112 | },
113 | parserOptions: {
114 | parser: 'babel-eslint'
115 | }
116 | }
117 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | node_modules
3 | /dist
4 |
5 | # local env files
6 | .env.local
7 | .env.*.local
8 |
9 | # Log files
10 | npm-debug.log*
11 | yarn-debug.log*
12 | yarn-error.log*
13 |
14 | # Editor directories and files
15 | .idea
16 | .vscode
17 | *.suo
18 | *.ntvs*
19 | *.njsproj
20 | *.sln
21 | *.sw?
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # vue_cm1
2 |
3 | ## Project setup
4 | ```
5 | npm install
6 | ```
7 |
8 | ### Compiles and hot-reloads for development
9 | ```
10 | npm run serve
11 | ```
12 |
13 | ### Compiles and minifies for production
14 | ```
15 | npm run build
16 | ```
17 |
18 | ### Run your tests
19 | ```
20 | npm run test
21 | ```
22 |
23 | ### Lints and fixes files
24 | ```
25 | npm run lint
26 | ```
27 |
28 | ### Customize configuration
29 | See [Configuration Reference](https://cli.vuejs.org/config/).
30 |
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [
3 | '@vue/cli-plugin-babel/preset'
4 | ]
5 | }
6 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue_cm1",
3 | "version": "0.1.0",
4 | "private": true,
5 | "scripts": {
6 | "serve": "vue-cli-service serve",
7 | "build": "vue-cli-service build",
8 | "lint": "vue-cli-service lint"
9 | },
10 | "dependencies": {
11 | "axios": "^0.19.0",
12 | "core-js": "^3.3.2",
13 | "jquery": "^3.4.1",
14 | "lib-flexible": "^0.3.2",
15 | "mint-ui": "^2.2.13",
16 | "moment": "^2.24.0",
17 | "vue": "^2.6.10",
18 | "vue-router": "^3.1.3",
19 | "vuex": "^3.1.2",
20 | "vuex-persistedstate": "^2.7.0"
21 | },
22 | "devDependencies": {
23 | "@vue/cli-plugin-babel": "^4.0.0",
24 | "@vue/cli-plugin-eslint": "^4.0.0",
25 | "@vue/cli-service": "^4.0.0",
26 | "babel-eslint": "^10.0.3",
27 | "css-loader": "^3.2.0",
28 | "eslint": "^5.16.0",
29 | "eslint-plugin-vue": "^5.0.0",
30 | "less": "^3.0.4",
31 | "less-loader": "^5.0.0",
32 | "lint-staged": "^9.4.2",
33 | "postcss-pxtorem": "^4.0.1",
34 | "vue-template-compiler": "^2.6.10"
35 | },
36 | "gitHooks": {
37 | "pre-commit": "lint-staged"
38 | },
39 | "lint-staged": {
40 | "*.{js,vue}": [
41 | "vue-cli-service lint",
42 | "git add"
43 | ]
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | //autoprefixer 自动补全css前缀的东西
4 | 'autoprefixer': {
5 | //兼容的机型
6 | browsers: ['Android >= 4.0', 'iOS >= 7']
7 | },
8 | 'postcss-pxtorem': {
9 | rootValue: 37.5, //换算基数,一般和html的font-size一致
10 | propList: ['*'] //哪些css属性需要换算
11 | }
12 | }
13 | };
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/public/favicon.ico
--------------------------------------------------------------------------------
/public/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 | 读了吗
9 |
10 |
11 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/src/App.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 |
30 |
31 |
32 |
33 |
34 | 我的
35 |
36 |
37 |
38 |
39 |
40 |
41 |
86 |
87 |
150 |
--------------------------------------------------------------------------------
/src/assets/images/333.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/333.png
--------------------------------------------------------------------------------
/src/assets/images/Aa.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/Aa.png
--------------------------------------------------------------------------------
/src/assets/images/Collection.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/Collection.png
--------------------------------------------------------------------------------
/src/assets/images/Greate-l.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/Greate-l.png
--------------------------------------------------------------------------------
/src/assets/images/Greate-l2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/Greate-l2.png
--------------------------------------------------------------------------------
/src/assets/images/Greate.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/Greate.png
--------------------------------------------------------------------------------
/src/assets/images/account.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/account.png
--------------------------------------------------------------------------------
/src/assets/images/bookList.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/bookList.png
--------------------------------------------------------------------------------
/src/assets/images/comment.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/comment.png
--------------------------------------------------------------------------------
/src/assets/images/follow.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/follow.png
--------------------------------------------------------------------------------
/src/assets/images/leave.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/leave.png
--------------------------------------------------------------------------------
/src/assets/images/menu1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/menu1.png
--------------------------------------------------------------------------------
/src/assets/images/menu2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/menu2.png
--------------------------------------------------------------------------------
/src/assets/images/menu3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/menu3.png
--------------------------------------------------------------------------------
/src/assets/images/menu4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/menu4.png
--------------------------------------------------------------------------------
/src/assets/images/menu5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/menu5.png
--------------------------------------------------------------------------------
/src/assets/images/menu6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/menu6.png
--------------------------------------------------------------------------------
/src/assets/images/moon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/moon.png
--------------------------------------------------------------------------------
/src/assets/images/mseeage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/mseeage.png
--------------------------------------------------------------------------------
/src/assets/images/mulu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/mulu.png
--------------------------------------------------------------------------------
/src/assets/images/passwordpd.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/passwordpd.png
--------------------------------------------------------------------------------
/src/assets/images/record.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/record.png
--------------------------------------------------------------------------------
/src/assets/images/return.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/return.png
--------------------------------------------------------------------------------
/src/assets/images/sun.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/sun.png
--------------------------------------------------------------------------------
/src/assets/images/talk.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/talk.png
--------------------------------------------------------------------------------
/src/assets/images/top-book.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/top-book.jpg
--------------------------------------------------------------------------------
/src/assets/images/top1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/top1.jpg
--------------------------------------------------------------------------------
/src/assets/images/top2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/top2.png
--------------------------------------------------------------------------------
/src/assets/images/zhui1 copy.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/zhui1 copy.jpg
--------------------------------------------------------------------------------
/src/assets/images/zhui1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/zhui1.jpg
--------------------------------------------------------------------------------
/src/assets/images/zhui2 copy.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/zhui2 copy.jpg
--------------------------------------------------------------------------------
/src/assets/images/zhui2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/zhui2.jpg
--------------------------------------------------------------------------------
/src/assets/images/zhui3 copy.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/zhui3 copy.jpg
--------------------------------------------------------------------------------
/src/assets/images/zhui3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/images/zhui3.jpg
--------------------------------------------------------------------------------
/src/assets/inconfont/iconfont.css:
--------------------------------------------------------------------------------
1 | @font-face {font-family: "iconfont";
2 | src: url('iconfont.eot?t=1572765666339'); /* IE9 */
3 | src: url('iconfont.eot?t=1572765666339#iefix') format('embedded-opentype'), /* IE6-IE8 */
4 | url('data:application/x-font-woff2;charset=utf-8;base64,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') format('woff2'),
5 | url('iconfont.woff?t=1572765666339') format('woff'),
6 | url('iconfont.ttf?t=1572765666339') format('truetype'), /* chrome, firefox, opera, Safari, Android, iOS 4.2+ */
7 | url('iconfont.svg?t=1572765666339#iconfont') format('svg'); /* iOS 4.1- */
8 | }
9 |
10 | .iconfont {
11 | font-family: "iconfont" !important;
12 | font-size: 16px;
13 | font-style: normal;
14 | -webkit-font-smoothing: antialiased;
15 | -moz-osx-font-smoothing: grayscale;
16 | }
17 |
18 | .icon-fenlei:before {
19 | content: "\e61d";
20 | }
21 |
22 | .icon-jiarushujia:before {
23 | content: "\e697";
24 | }
25 |
26 | .icon-wodeshujia:before {
27 | content: "\e618";
28 | }
29 |
30 | .icon-jiarushujia1:before {
31 | content: "\e60e";
32 | }
33 |
34 | .icon-paihang:before {
35 | content: "\e613";
36 | }
37 |
38 | .icon-paihang1:before {
39 | content: "\e60f";
40 | }
41 |
42 | .icon-user:before {
43 | content: "\e600";
44 | }
45 |
46 | .icon-fenlei1:before {
47 | content: "\e682";
48 | }
49 |
50 | .icon-jiarushujia2:before {
51 | content: "\e609";
52 | }
53 |
54 | .icon-shucheng-paihang:before {
55 | content: "\e628";
56 | }
57 |
58 | .icon-shucheng-fenlei:before {
59 | content: "\e629";
60 | }
61 |
62 | .icon-shucheng-mulu:before {
63 | content: "\e630";
64 | }
65 |
66 | .icon-jingxuan:before {
67 | content: "\e64b";
68 | }
69 |
70 | .icon-jiarushujia3:before {
71 | content: "\e61a";
72 | }
73 |
74 | .icon-jingxuan1:before {
75 | content: "\e669";
76 | }
77 |
78 | .icon-top:before {
79 | content: "\e601";
80 | }
81 |
82 | .icon-jingxuan2:before {
83 | content: "\e610";
84 | }
85 |
86 | .icon-shujia:before {
87 | content: "\e70c";
88 | }
89 |
90 | .icon-fenlei2:before {
91 | content: "\e602";
92 | }
93 |
94 | .icon-fenlei3:before {
95 | content: "\e60d";
96 | }
97 |
98 | .icon-tubiaozhizuomoban:before {
99 | content: "\e603";
100 | }
101 |
102 | .icon-paihang2:before {
103 | content: "\e604";
104 | }
105 |
106 | .icon-leimupinleifenleileibie--:before {
107 | content: "\e60b";
108 | }
109 |
110 | .icon-tianjiashuji:before {
111 | content: "\e61e";
112 | }
113 |
114 | .icon-shujia1:before {
115 | content: "\e658";
116 | }
117 |
118 | .icon-geren:before {
119 | content: "\e68a";
120 | }
121 |
122 | .icon-icontab_company_sel:before {
123 | content: "\e605";
124 | }
125 |
126 | .icon-jiarushujia4:before {
127 | content: "\e61f";
128 | }
129 |
130 | .icon-fenlei4:before {
131 | content: "\e611";
132 | }
133 |
134 | .icon-sousuo:before {
135 | content: "\e608";
136 | }
137 |
138 | .icon-shujia2:before {
139 | content: "\e6a6";
140 | }
141 |
142 | .icon-qitajingxuan:before {
143 | content: "\e614";
144 | }
145 |
146 | .icon-huaban:before {
147 | content: "\e606";
148 | }
149 |
150 | .icon-shujiachangtai:before {
151 | content: "\e607";
152 | }
153 |
154 | .icon-paihang3:before {
155 | content: "\e65c";
156 | }
157 |
158 | .icon-shujia3:before {
159 | content: "\e60c";
160 | }
161 |
162 |
--------------------------------------------------------------------------------
/src/assets/inconfont/iconfont.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/inconfont/iconfont.eot
--------------------------------------------------------------------------------
/src/assets/inconfont/iconfont.json:
--------------------------------------------------------------------------------
1 | {
2 | "id": "1489722",
3 | "name": "vue",
4 | "font_family": "iconfont",
5 | "css_prefix_text": "icon-",
6 | "description": "",
7 | "glyphs": [
8 | {
9 | "icon_id": "1380843",
10 | "name": "分类",
11 | "font_class": "fenlei",
12 | "unicode": "e61d",
13 | "unicode_decimal": 58909
14 | },
15 | {
16 | "icon_id": "1640040",
17 | "name": "加入书架",
18 | "font_class": "jiarushujia",
19 | "unicode": "e697",
20 | "unicode_decimal": 59031
21 | },
22 | {
23 | "icon_id": "1667711",
24 | "name": "我的书架",
25 | "font_class": "wodeshujia",
26 | "unicode": "e618",
27 | "unicode_decimal": 58904
28 | },
29 | {
30 | "icon_id": "2153760",
31 | "name": "加入书架",
32 | "font_class": "jiarushujia1",
33 | "unicode": "e60e",
34 | "unicode_decimal": 58894
35 | },
36 | {
37 | "icon_id": "2380649",
38 | "name": "排行",
39 | "font_class": "paihang",
40 | "unicode": "e613",
41 | "unicode_decimal": 58899
42 | },
43 | {
44 | "icon_id": "2538540",
45 | "name": "排行",
46 | "font_class": "paihang1",
47 | "unicode": "e60f",
48 | "unicode_decimal": 58895
49 | },
50 | {
51 | "icon_id": "2665594",
52 | "name": "个人",
53 | "font_class": "user",
54 | "unicode": "e600",
55 | "unicode_decimal": 58880
56 | },
57 | {
58 | "icon_id": "2718444",
59 | "name": "分类",
60 | "font_class": "fenlei1",
61 | "unicode": "e682",
62 | "unicode_decimal": 59010
63 | },
64 | {
65 | "icon_id": "2811220",
66 | "name": "加入书架",
67 | "font_class": "jiarushujia2",
68 | "unicode": "e609",
69 | "unicode_decimal": 58889
70 | },
71 | {
72 | "icon_id": "3086010",
73 | "name": "书城-排行",
74 | "font_class": "shucheng-paihang",
75 | "unicode": "e628",
76 | "unicode_decimal": 58920
77 | },
78 | {
79 | "icon_id": "3086011",
80 | "name": "书城-分类",
81 | "font_class": "shucheng-fenlei",
82 | "unicode": "e629",
83 | "unicode_decimal": 58921
84 | },
85 | {
86 | "icon_id": "3275520",
87 | "name": "书城-目录",
88 | "font_class": "shucheng-mulu",
89 | "unicode": "e630",
90 | "unicode_decimal": 58928
91 | },
92 | {
93 | "icon_id": "3553432",
94 | "name": "精选",
95 | "font_class": "jingxuan",
96 | "unicode": "e64b",
97 | "unicode_decimal": 58955
98 | },
99 | {
100 | "icon_id": "3605711",
101 | "name": "加入书架",
102 | "font_class": "jiarushujia3",
103 | "unicode": "e61a",
104 | "unicode_decimal": 58906
105 | },
106 | {
107 | "icon_id": "5074596",
108 | "name": "精选",
109 | "font_class": "jingxuan1",
110 | "unicode": "e669",
111 | "unicode_decimal": 58985
112 | },
113 | {
114 | "icon_id": "6197058",
115 | "name": "排行",
116 | "font_class": "top",
117 | "unicode": "e601",
118 | "unicode_decimal": 58881
119 | },
120 | {
121 | "icon_id": "6382924",
122 | "name": "精选",
123 | "font_class": "jingxuan2",
124 | "unicode": "e610",
125 | "unicode_decimal": 58896
126 | },
127 | {
128 | "icon_id": "6625193",
129 | "name": "书架 ",
130 | "font_class": "shujia",
131 | "unicode": "e70c",
132 | "unicode_decimal": 59148
133 | },
134 | {
135 | "icon_id": "6906261",
136 | "name": "分类",
137 | "font_class": "fenlei2",
138 | "unicode": "e602",
139 | "unicode_decimal": 58882
140 | },
141 | {
142 | "icon_id": "6932993",
143 | "name": "分类",
144 | "font_class": "fenlei3",
145 | "unicode": "e60d",
146 | "unicode_decimal": 58893
147 | },
148 | {
149 | "icon_id": "7030960",
150 | "name": "个人",
151 | "font_class": "tubiaozhizuomoban",
152 | "unicode": "e603",
153 | "unicode_decimal": 58883
154 | },
155 | {
156 | "icon_id": "7578152",
157 | "name": "排行",
158 | "font_class": "paihang2",
159 | "unicode": "e604",
160 | "unicode_decimal": 58884
161 | },
162 | {
163 | "icon_id": "8068494",
164 | "name": "类目 品类 分类 类别-2-01",
165 | "font_class": "leimupinleifenleileibie--",
166 | "unicode": "e60b",
167 | "unicode_decimal": 58891
168 | },
169 | {
170 | "icon_id": "8770130",
171 | "name": "添加书籍",
172 | "font_class": "tianjiashuji",
173 | "unicode": "e61e",
174 | "unicode_decimal": 58910
175 | },
176 | {
177 | "icon_id": "8962605",
178 | "name": "书架",
179 | "font_class": "shujia1",
180 | "unicode": "e658",
181 | "unicode_decimal": 58968
182 | },
183 | {
184 | "icon_id": "9438274",
185 | "name": "个人",
186 | "font_class": "geren",
187 | "unicode": "e68a",
188 | "unicode_decimal": 59018
189 | },
190 | {
191 | "icon_id": "9464395",
192 | "name": "我 的",
193 | "font_class": "icontab_company_sel",
194 | "unicode": "e605",
195 | "unicode_decimal": 58885
196 | },
197 | {
198 | "icon_id": "9735949",
199 | "name": "加入书架",
200 | "font_class": "jiarushujia4",
201 | "unicode": "e61f",
202 | "unicode_decimal": 58911
203 | },
204 | {
205 | "icon_id": "9868854",
206 | "name": "分类",
207 | "font_class": "fenlei4",
208 | "unicode": "e611",
209 | "unicode_decimal": 58897
210 | },
211 | {
212 | "icon_id": "9936696",
213 | "name": "搜索",
214 | "font_class": "sousuo",
215 | "unicode": "e608",
216 | "unicode_decimal": 58888
217 | },
218 | {
219 | "icon_id": "10004002",
220 | "name": "书架",
221 | "font_class": "shujia2",
222 | "unicode": "e6a6",
223 | "unicode_decimal": 59046
224 | },
225 | {
226 | "icon_id": "10090222",
227 | "name": "精选",
228 | "font_class": "qitajingxuan",
229 | "unicode": "e614",
230 | "unicode_decimal": 58900
231 | },
232 | {
233 | "icon_id": "10662612",
234 | "name": "书城-高亮",
235 | "font_class": "huaban",
236 | "unicode": "e606",
237 | "unicode_decimal": 58886
238 | },
239 | {
240 | "icon_id": "10755397",
241 | "name": "书架常态",
242 | "font_class": "shujiachangtai",
243 | "unicode": "e607",
244 | "unicode_decimal": 58887
245 | },
246 | {
247 | "icon_id": "10841161",
248 | "name": "排行",
249 | "font_class": "paihang3",
250 | "unicode": "e65c",
251 | "unicode_decimal": 58972
252 | },
253 | {
254 | "icon_id": "11265173",
255 | "name": "书架",
256 | "font_class": "shujia3",
257 | "unicode": "e60c",
258 | "unicode_decimal": 58892
259 | }
260 | ]
261 | }
262 |
--------------------------------------------------------------------------------
/src/assets/inconfont/iconfont.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/inconfont/iconfont.ttf
--------------------------------------------------------------------------------
/src/assets/inconfont/iconfont.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/inconfont/iconfont.woff
--------------------------------------------------------------------------------
/src/assets/inconfont/iconfont.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/inconfont/iconfont.woff2
--------------------------------------------------------------------------------
/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/logo.png
--------------------------------------------------------------------------------
/src/assets/user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Dzx-y/vue_readmore/705fedb7dd3e2ac455aa7c67f1d465548f2aaee4/src/assets/user.png
--------------------------------------------------------------------------------
/src/components/booksInfo/BooksInfo.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |

7 |
8 | 书籍详情
9 |
10 |
11 |
12 |
13 |
![]()
14 |
15 |
16 |
17 |
{{detaiInfo.title}}
18 |
19 | {{detaiInfo.author}} |
20 | {{detaiInfo.minorCate}} |
21 | {{parseInt(detaiInfo.wordCount/10000)}}万字
22 |
23 |
{{serial}}
24 |
{{detaiInfo.lastChapter}}
25 |
26 |
27 |
28 |
{{flag ? '已加入书架' : '加入书架'}}
29 |
开始阅读
30 |
31 |
32 |
33 | 追人气
34 | {{detaiInfo.latelyFollower}}
35 |
36 |
37 | 读者存留率
38 | {{detaiInfo.retentionRatio}}%
39 |
40 |
41 | 日更字数/天
42 | {{detaiInfo.serializeWordCount}}
43 |
44 |
45 |
{{detaiInfo.longIntro}}
46 |
66 |
67 |
68 |
69 |
70 |
71 |
150 |
151 |
--------------------------------------------------------------------------------
/src/components/readbooks/bookContent.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
14 |
{{this.booksTexttitle}}
15 |
{{this.booksTextContent}}
16 |
17 |
18 |
19 |
{{this.bookName}}
20 |
27 |
28 |
29 |
34 |
{{con}}
35 |
中
36 |
70 |
71 |
72 |
73 |
207 |
--------------------------------------------------------------------------------
/src/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './App.vue'
3 | import router from './router'
4 | import store from './store'
5 | import './assets/inconfont/iconfont.css'
6 |
7 | Vue.config.productionTip = false
8 |
9 | import 'mui/css/mui.css'
10 | import 'mui/css/icons-extra.css'
11 |
12 | import MintUI from 'mint-ui'
13 | import 'mint-ui/lib/style.css'
14 | Vue.use(MintUI)
15 |
16 | import 'lib-flexible'
17 | import moment from 'moment'
18 | Vue.filter('dateFormat',function(msg, pattern = "YYYY-MM-DD HH:mm:ss"){
19 | return moment(msg).format(pattern)
20 | })
21 |
22 | new Vue({
23 | router,
24 | store,
25 | render: h => h(App)
26 | }).$mount('#app')
27 |
28 |
--------------------------------------------------------------------------------
/src/router/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import VueRouter from 'vue-router'
3 | const Shelf = ()=> import('@/views/Shelf.vue')
4 | // import Shelf from '@/views/Shelf.vue'
5 | const Sort = ()=>import('@/views/Sort.vue')
6 | // import Sort from '@/views/Sort.vue'
7 | const Good = () => import('@/views/Good.vue')
8 | // import Good from '@/views/Good.vue'
9 | const Ranking =()=> import('@/views/Ranking.vue')
10 | // import Ranking from '@/views/Ranking.vue'
11 | const Personal =()=> import('@/views/Personal.vue')
12 | // import Personal from '@/views/Personal.vue'
13 | const Search =()=> import('@/views/Search.vue')
14 | // import Search from '@/views/Search.vue'
15 | const Sortbooks=()=> import('@/views/Sortbooks.vue')
16 | // import Sortbooks from '@/views/Sortbooks.vue'
17 | const SortbooksInfo=()=>import('@/components/booksInfo/BooksInfo.vue')
18 | // import SortbooksInfo from '@/components/booksInfo/BooksInfo.vue'
19 | // const bookcontent=()=>import('@/components/readbooks/bookContent.vue')
20 | import bookcontent from '@/components/readbooks/bookContent.vue'
21 | import malerankDetail from '@/views/ranks/malerankDetail.vue'
22 | import femalerankDetail from '@/views/ranks/femalerankDetail.vue'
23 | import maleBooksInfo from '@/components/booksInfo/BooksInfo.vue'
24 | import femaleBooksInfo from '@/components/booksInfo/BooksInfo.vue'
25 | import Per from '@/views/per/personre.vue'
26 | import Perinfo from '@/views/per/personinfo.vue'
27 | import Booksearch from '@/views/books/Booksearch.vue'
28 | import BookGoodList from '@/components/booksInfo/BooksInfo.vue'
29 | import BookgirlList from '@/components/booksInfo/BooksInfo.vue'
30 | import Searchbooks from '@/components/booksInfo/BooksInfo.vue'
31 |
32 | import Browere from '@/views/per/bowerect.vue'
33 | import bowerect from '@/components/booksInfo/BooksInfo.vue'
34 |
35 |
36 | Vue.use(VueRouter)
37 |
38 | const routes = [
39 | {
40 | path: '/',
41 | component: Shelf
42 | },
43 | {
44 | path: '/Shelf',
45 | component: Shelf
46 | },
47 | {
48 | path: '/Sort',
49 | component: Sort
50 | },
51 | {
52 | path: '/Good',
53 | component: Good
54 | },
55 | {
56 | path: '/Ranking',
57 | component: Ranking
58 | },
59 | {
60 | path: '/Personal',
61 | component: Personal
62 | },
63 | {
64 | path: '/Search',
65 | component: Search
66 | },
67 | {
68 | path: '/Sort/books',
69 | component: Sortbooks,
70 | name:Sortbooks
71 | },
72 | {
73 | path: '/Sortbooks/sortbooksInfo',
74 | component: SortbooksInfo,
75 | },
76 | {
77 | path: '/booksinfo/bookcontent',
78 | component: bookcontent,
79 | },
80 |
81 | {
82 | path: "/ranks/malerankDetail/:id",
83 | component: malerankDetail
84 | },
85 | {
86 | path: "/ranks/femalerankDetail/:id",
87 | component: femalerankDetail
88 | },
89 | {
90 | path: "/malerankDetail/maleBooksInfo",
91 | component: maleBooksInfo
92 | },
93 | {
94 | path: "/femalerankDetail/femaleBooksInfo",
95 | component: femaleBooksInfo
96 | },
97 | {
98 | path: '/Per/personre',
99 | component: Per
100 | },
101 | {
102 | path: '/Per/personinfo',
103 | component: Perinfo
104 | },
105 | {
106 | path: '/books/searchbooks',
107 | component: Booksearch
108 | },
109 | {
110 | path: '/books/gnumbooks/',
111 | component: BookgirlList
112 | },
113 | {
114 | path: '/books/numbooks/',
115 | component: BookGoodList
116 | },
117 | {
118 | path: '/books/searchbooks',
119 | component: Searchbooks
120 | },
121 | {
122 | path: '/Per/browere',
123 | component: Browere
124 | },
125 | {
126 | path: '/Bowerect/bowerect',
127 | component: bowerect
128 | },
129 |
130 |
131 | ]
132 |
133 | const router = new VueRouter({
134 | routes
135 | })
136 |
137 | export default router
138 |
--------------------------------------------------------------------------------
/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Vuex from 'vuex'
3 | import createPersistedState from 'vuex-persistedstate'
4 |
5 | Vue.use(Vuex)
6 |
7 | export default new Vuex.Store({
8 | state: {
9 | count:0,
10 | books:[],
11 | boot: []
12 | },
13 | mutations: {
14 | increment(state) {
15 | state.count+=500
16 | },
17 | increment2(state) {
18 | state.count+=1000
19 | },
20 | increment3(state) {
21 | state.count+=3000
22 | },
23 | increment4(state) {
24 | state.count+=5000
25 | },
26 | // me
27 | deleate(){
28 | this.state.books=[]
29 | },
30 | deleate2(){
31 | this.state.boot=[]
32 | },
33 | addTobooks(state,booksinfor){
34 | var flag = false;
35 | state.books.forEach((item,index)=>{
36 | if(item.id == booksinfor.id){
37 | flag = ture;
38 | }
39 | })
40 | if(flag == false){
41 | state.books.push(booksinfor);
42 | }
43 |
44 | },
45 | setbowere(state, booksinto) {
46 | var flag = false;
47 | state.boot.forEach((item,index)=>{
48 | if(item.id == booksinto.id){
49 | flag = ture;
50 | }
51 | })
52 | if(flag == false){
53 | state.boot.push(booksinto);
54 | }
55 |
56 | }
57 | },
58 | actions: {
59 | },
60 | modules: {
61 | },
62 | getters:{
63 | },
64 | plugins: [createPersistedState()]
65 | })
66 |
--------------------------------------------------------------------------------
/src/tools/myaxios.js:
--------------------------------------------------------------------------------
1 | import axios from 'axios'
2 | import QS from 'qs';
3 | import { Indicator } from 'mint-ui';
4 |
5 | axios.defaults.timeout = 10000;
6 | axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';
7 |
8 | var ishow = false;
9 | axios.interceptors.request.use(function(config) { // 拦截请求前的状态
10 | return config; //添加这一行
11 | })
12 |
13 | axios.interceptors.response.use(function(response) { // 拦截请求后的状态
14 | return response;
15 | })
16 |
17 | export default function myaxios(method,url,params){
18 | if(method == "GET"){
19 | return axios.get(url,{params:params})
20 | }
21 | else if(method == "POST"){
22 | var params = QS.stringify(params);
23 | return axios.post(url,params)
24 | }
25 | }
26 |
27 | export const staticPath = 'http://statics.zhuishushenqi.com';
28 | export const statistics ="/cats/lv2/statistics" //get
29 | export const sortbooks = "/cats/lv2 " //get
30 | export const booksbrief = "/book/by-categories?"
31 | export const bookDetailURL = '/book/'
32 | export const bookDiscussURL = '/post/review/best-by-book?'
33 | export const rankingGenderURL = "/ranking/gender"
34 | export const rankingURL = "/ranking/"
35 |
36 | export const booksChaptersIdURL = '/atoc/?view=summary&book='
37 | export const booksChaptersURL = '/btoc/'
38 | export const booksTextURL = '/chapter/'
39 |
40 |
41 | //li
42 | export const booksURL = "/book/by-categories?gender=male&type=hot&major=%E7%8E%84%E5%B9%BB&minor=&start=0&limit=20"
43 | export const booksnewURL = "/book/by-categories?gender=male&type=new&major=武侠&minor=&start=0&limit=20"
44 | export const bookgoodURL = "/book/by-categories?gender=female&type=new&major=青春校园&minor=&start=0&limit=20"
45 | export const bookmonthURL = "/book/by-categories?gender=male&type=over&major=都市&minor=&start=0&limit=20"
46 | export const bookmonthsURL = "/book/by-categories?gender=female&type=over&major=现代言情&minor=&start=0&limit=20"
47 | export const bookancientURL = "/book/by-categories?gender=female&type=over&major=古代言情&minor=&start=0&limit=20"
48 | export const hotbookURL = "/book/by-categories?gender=male&type=over&major=科幻&minor=&start=0&limit=20"
49 | export const hotsbookURL = "/book/by-categories?gender=female&type=over&major=青春校园&minor=&start=0&limit=20"
50 | export const bookrankURL = "/book/by-categories?gender=male&type=over&major=军事&minor=&start=0&limit=20"
51 | export const bookranksURL = "/book/by-categories?gender=female&type=reputation&major=现代言情&minor=&start=0&limit=20"
52 | export const booksearchURL = "/book/fuzzy-search?"
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/src/views/Good.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 | | 男生频道
29 |
30 |
31 |
32 |
33 |
34 |
35 |
![]()
36 |
37 |
38 |
{{item.title}}
39 |
{{item.shortIntro}}
40 |
41 |
42 |

43 |
44 |
{{item.author}}
45 |
{{item.minorCate}}
46 |
留存率:{{item.retentionRatio}}%
47 |
48 |
49 |
50 |
51 |
52 |
53 | | 女生频道
54 |
55 |
56 |
57 |
58 |
64 |
65 |
![]()
66 |
67 |
68 |
{{item.title}}
69 |
{{item.shortIntro}}
70 |
71 |
72 |

73 |
74 |
{{item.author}}
75 |
{{item.minorCate}}
76 |
留存率:{{item.retentionRatio}}%
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
263 |
264 |
265 |
266 |
382 |
383 |
--------------------------------------------------------------------------------
/src/views/Personal.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 |
余额 {{$store.state.count}}书币 + 0书币
28 |
29 | 充值
30 |
31 |
32 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |

53 |
54 |
消息
55 |
56 |
57 |

58 |
59 |
60 |
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 |

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 |
276 |
--------------------------------------------------------------------------------
/src/views/Ranking.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
11 |
12 |
13 |
14 |
15 |
--------------- 男生 ---------------
16 |
17 | {{item.title}}
18 |
19 |
20 |
21 |
22 |
--------------- 女生 ---------------
23 |
24 | {{item.title}}
25 |
26 |
27 |
28 |
29 |
30 |
31 |
61 |
--------------------------------------------------------------------------------
/src/views/Search.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
{{item}}
9 |
10 |
11 |
12 |
14 |
15 |
22 |
--------------------------------------------------------------------------------
/src/views/Shelf.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
![]()
17 |
18 |
19 |
{{item.title}}
20 |
{{item.longIntro}}
21 |
22 |
23 |
24 |
25 |
{{item.author}}
26 |
{{item.majorCate}}
27 |
留存率:{{item.retentionRatio}}%
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
104 |
105 |
--------------------------------------------------------------------------------
/src/views/Sort.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
{{listType.male.name}}
7 |
8 | -
14 |
15 |
{{item.name}}
16 |
{{item.bookCount}}本
17 |
18 |
19 |
20 |
21 |
22 |
23 |
{{listType.female.name}}
24 |
36 |
37 |
38 |
39 |
40 |
78 |
79 |
80 |
--------------------------------------------------------------------------------
/src/views/Sortbooks.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |

6 |
7 | 书籍详情
8 |
9 |
27 |
28 |
31 |
32 |
33 |
34 |
![]()
35 |
36 |
37 |
{{item.title}}
38 |
{{item.shortIntro}}
39 |
40 |
41 |

42 |
43 |
{{item.author}}
44 |
{{item.majorCate}}
45 |
留存率:{{item.retentionRatio}}%
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
244 |
245 |
--------------------------------------------------------------------------------
/src/views/books/Booksearch.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
9 |
10 |
11 |
12 |
13 |
14 |
大家都在搜
15 |
16 | {{item.name}}
22 |
23 |
24 |
25 |
26 |
32 |
33 |
![]()
34 |
35 |
36 |
{{item.title}}
37 |
{{item.shortIntro}}
38 |
39 |
40 |

41 |
42 |
{{item.author}}
43 |
{{item.cat}}
44 |
留存率:{{item.retentionRatio}}%
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
112 |
113 |
--------------------------------------------------------------------------------
/src/views/per/bowerect.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 浏览记录
6 | 全部清空
7 |
8 |
9 |
10 |
11 |
12 |
![]()
13 |
14 |
15 |
{{item.title}}
16 |
{{item.longIntro}}
17 |
18 |
19 |

20 |
21 |
{{item.author}}
22 |
{{item.majorCate}}
23 |
留存率:{{item.retentionRatio}}%
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
82 |
83 |
--------------------------------------------------------------------------------
/src/views/per/personinfo.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |

7 |
8 |
书币充值
9 |
10 |
11 |

12 |
13 |
14 |
18 |
19 |
20 |
1000书币
21 |
¥10
22 |
23 |
24 |
25 |
3000书币
26 |
¥30
27 |
28 |
29 |
30 |
5000书币
31 |
¥50
32 |
33 |
34 |
35 |
36 |
37 |
102 |
103 |
--------------------------------------------------------------------------------
/src/views/per/personre.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
8 |
9 |
10 |

11 |
12 |
13 |
20 |
21 |
22 |
23 |
24 |
25 |

26 |
27 |
28 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
110 |
111 |
--------------------------------------------------------------------------------
/src/views/ranks/femalerankDetail.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
12 |
![]()
13 |
14 |
15 |
{{booksList[idx].title}}
16 |
{{booksList[idx].shortIntro}}
17 |
18 |
19 |
{{booksList[idx].author}}
20 |
{{booksList[idx].majorCate}}
21 |
留存率:{{booksList[idx].retentionRatio}}%
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
71 |
72 |
--------------------------------------------------------------------------------
/src/views/ranks/malerankDetail.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
12 |
![]()
13 |
14 |
15 |
{{booksList[idx].title}}
16 |
{{booksList[idx].shortIntro}}
17 |
18 |
19 |
{{booksList[idx].author}}
20 |
{{booksList[idx].majorCate}}
21 |
留存率:{{booksList[idx].retentionRatio}}%
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
73 |
74 |
--------------------------------------------------------------------------------
/vue.config.js:
--------------------------------------------------------------------------------
1 | const path = require('path'),
2 |
3 | //debug是判断当前是开发环境还是发布环境
4 | debug = process.env.NODE_ENV !== 'production'
5 |
6 | module.exports = {
7 |
8 | //部署应用包时的基本URL,如果是生产环境,部署到 /cli-study/dist 路径;如果是开发环境,部署到根路径
9 | publicPath: process.env.NODE_ENV === 'production'
10 | ? './'
11 | : './',
12 |
13 | //输出文件路径
14 | outputDir: 'dist',
15 |
16 | //放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录。
17 | assetsDir: 'static',
18 |
19 | //默认情况下,生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存
20 | filenameHashing: true,
21 |
22 | // 是否使用包含运行时编译器的Vue构建版本,设置为 true 后你就可以在 Vue 组件中使用 template 选项了,但是这会让你的应用额外增加 10kb 左右。
23 | runtimeCompiler: true,
24 |
25 | // 默认情况下 babel-loader 会忽略所有 node_modules 中的文件。如果你想要通过 Babel 显式转译一个依赖,可以在这个选项中列出来。
26 | transpileDependencies: [],
27 |
28 | // 发布环境不需要sourceMap
29 | productionSourceMap: false,
30 |
31 | css: {
32 |
33 | // 默认情况下,只有 *.module.[ext] 结尾的文件才会被视作 CSS Modules 模块。设置为 true 后你就可以去掉文件名中的 .module 并将所有的 *.(css|scss|sass|less|styl(us)?) 文件视为 CSS Modules 模块。
34 | modules: false,
35 |
36 | // 是否将组件中的 CSS 提取至一个独立的 CSS 文件中 (而不是动态注入到 JavaScript 中的 inline 代码)。
37 | extract: true,
38 |
39 | // 是否构建样式地图,false 将提高构建速度
40 | sourceMap: true,
41 |
42 | // css预设器配置项
43 | loaderOptions: {
44 | css: {
45 |
46 | //这里的选项会传递给 css-loader
47 | },
48 | postcss: {
49 |
50 | // 这里的选项会传递给 postcss-loader
51 | }
52 | },
53 | },
54 |
55 | //所有 webpack-dev-server 的选项都支持
56 | devServer: {
57 | open: true,
58 | host: '127.0.0.1',
59 | port: 3000,
60 | https: false,
61 | hotOnly: false,
62 | proxy: {
63 |
64 | //凡是请求以api开头的都会使用下面的代理服务器
65 | '/book': {
66 | target: 'http://api.zhuishushenqi.com', // 目标服务器地址
67 | secure: false, // 目标服务器地址是否是安全协议
68 | changeOrigin: true,
69 | // 是否修改来源, 为true时会让目标服务器以为是webpack-dev-server发出的请求!服务端和服务端的请求是没有跨域的
70 | //pathRewrite: {'^/api': '/a'} // 将/api开头的请求地址, /api 改为 /, 即 /api/xx 改为 /xx
71 | },
72 | '/cats': {
73 | target: 'http://api.zhuishushenqi.com', // 目标服务器地址
74 | secure: false, // 目标服务器地址是否是安全协议
75 | changeOrigin: true,
76 | // 是否修改来源, 为true时会让目标服务器以为是webpack-dev-server发出的请求!服务端和服务端的请求是没有跨域的
77 | //pathRewrite: {'^/api': '/a'} // 将/api开头的请求地址, /api 改为 /, 即 /api/xx 改为 /xx
78 | },
79 | '/post/*': {
80 | target: 'http://api.zhuishushenqi.com', // 目标服务器地址
81 | secure: false, // 目标服务器地址是否是安全协议
82 | changeOrigin: true,
83 | // 是否修改来源, 为true时会让目标服务器以为是webpack-dev-server发出的请求!服务端和服务端的请求是没有跨域的
84 | //pathRewrite: {'^/api': '/a'} // 将/api开头的请求地址, /api 改为 /, 即 /api/xx 改为 /xx
85 | },
86 | '/ranking/*': {
87 | target: 'http://api.zhuishushenqi.com', // 目标服务器地址
88 | secure: false, // 目标服务器地址是否是安全协议
89 | changeOrigin: true,
90 | // 是否修改来源, 为true时会让目标服务器以为是webpack-dev-server发出的请求!服务端和服务端的请求是没有跨域的
91 | //pathRewrite: {'^/api': '/a'} // 将/api开头的请求地址, /api 改为 /, 即 /api/xx 改为 /xx
92 | },
93 | '/btoc': {
94 | target: 'http://api.zhuishushenqi.com', // 目标服务器地址
95 | secure: false, // 目标服务器地址是否是安全协议
96 | changeOrigin: true,
97 | // 是否修改来源, 为true时会让目标服务器以为是webpack-dev-server发出的请求!服务端和服务端的请求是没有跨域的
98 | //pathRewrite: {'^/api': '/a'} // 将/api开头的请求地址, /api 改为 /, 即 /api/xx 改为 /xx
99 | },
100 | '/atoc': {
101 | target: 'http://api.zhuishushenqi.com', // 目标服务器地址
102 | secure: false, // 目标服务器地址是否是安全协议
103 | changeOrigin: true,
104 | // 是否修改来源, 为true时会让目标服务器以为是webpack-dev-server发出的请求!服务端和服务端的请求是没有跨域的
105 | //pathRewrite: {'^/api': '/a'} // 将/api开头的请求地址, /api 改为 /, 即 /api/xx 改为 /xx
106 | },
107 | '/chapter': {
108 | target: 'http://chapter2.zhuishushenqi.com', // 目标服务器地址
109 | secure: false, // 目标服务器地址是否是安全协议
110 | changeOrigin: true,
111 | // 是否修改来源, 为true时会让目标服务器以为是webpack-dev-server发出的请求!服务端和服务端的请求是没有跨域的
112 | //pathRewrite: {'^/api': '/a'} // 将/api开头的请求地址, /api 改为 /, 即 /api/xx 改为 /xx
113 | },
114 |
115 |
116 |
117 | //http://api.zhuishushenqi.com/cats/lv2
118 | }
119 |
120 | //http://127.0.0.1:3000/book/hot-word
121 |
122 | //http://api.zhuishushenqi.com/book/hot-word
123 | },
124 |
125 | // 第三方插件配置
126 | pluginOptions: {},
127 |
128 | //调整webpack配置的最简单的方式
129 | configureWebpack: config => {
130 | if (!debug) {
131 |
132 | // 为生产环境修改配置...
133 | config.devtool = '#cheap-module-source-map'
134 | } else {
135 |
136 | // 为开发环境修改配置...
137 | config.devtool = '#cheap-module-eval-source-map'
138 | }
139 |
140 | Object.assign(config, { // 开发生产共同配置
141 | resolve: {
142 | alias: {
143 | '@': path.resolve(__dirname, './src'),
144 | 'vue$': 'vue/dist/vue.js'
145 | }
146 | }
147 | })
148 | },
149 |
150 | //webpack的链式编程
151 | chainWebpack: () => {
152 | if (debug) {
153 |
154 | // 本地开发配置
155 | } else {
156 |
157 | // 生产开发配置
158 | }
159 | },
160 |
161 | /* pages: {
162 | index: {
163 | // page 的入口
164 | entry: 'src/index/main.js',
165 | // 模板来源
166 | template: 'public/index.html',
167 | // 在 dist/index.html 的输出
168 | filename: 'index.html',
169 | // 当使用 title 选项时,
170 | // template 中的 title 标签需要是 <%= htmlWebpackPlugin.options.title %>
171 | title: 'Index Page',
172 | // 在这个页面中包含的块,默认情况下会包含
173 | // 提取出来的通用 chunk 和 vendor chunk。
174 | //chunk参考:https://segmentfault.com/q/1010000016925412/a-1020000016946034
175 | chunks: ['chunk-vendors', 'chunk-common', 'index']
176 | }
177 | },*/
178 | lintOnSave: false,
179 | }
180 |
--------------------------------------------------------------------------------
热门评论
48 |49 |-
50 |
51 |
52 |
53 |
54 |
55 | {{reviews[idx].content}}
61 |
62 |
63 |
64 |
65 |56 | {{reviews[idx].author.nickname}} 57 | LV{{reviews[idx].author.lv}} 58 |
59 |{{reviews[idx].title}}
60 |