├── .browserslistrc ├── public ├── favicon.ico └── index.html ├── src ├── assets │ ├── logo.png │ ├── user.png │ ├── images │ │ ├── 333.png │ │ ├── Aa.png │ │ ├── moon.png │ │ ├── mulu.png │ │ ├── sun.png │ │ ├── talk.png │ │ ├── top1.jpg │ │ ├── top2.png │ │ ├── Greate.png │ │ ├── follow.png │ │ ├── leave.png │ │ ├── menu1.png │ │ ├── menu2.png │ │ ├── menu3.png │ │ ├── menu4.png │ │ ├── menu5.png │ │ ├── menu6.png │ │ ├── record.png │ │ ├── return.png │ │ ├── zhui1.jpg │ │ ├── zhui2.jpg │ │ ├── zhui3.jpg │ │ ├── Greate-l.png │ │ ├── Greate-l2.png │ │ ├── account.png │ │ ├── bookList.png │ │ ├── comment.png │ │ ├── mseeage.png │ │ ├── top-book.jpg │ │ ├── Collection.png │ │ ├── passwordpd.png │ │ ├── zhui1 copy.jpg │ │ ├── zhui2 copy.jpg │ │ └── zhui3 copy.jpg │ └── inconfont │ │ ├── iconfont.eot │ │ ├── iconfont.ttf │ │ ├── iconfont.woff │ │ ├── iconfont.woff2 │ │ └── iconfont.css ├── views │ ├── Search.vue │ ├── Sort.vue │ ├── per │ │ ├── personinfo.vue │ │ ├── personre.vue │ │ └── bowerect.vue │ ├── Ranking.vue │ ├── ranks │ │ ├── femalerankDetail.vue │ │ └── malerankDetail.vue │ ├── Shelf.vue │ ├── books │ │ └── Booksearch.vue │ ├── Personal.vue │ ├── Sortbooks.vue │ └── Good.vue ├── main.js ├── store │ └── index.js ├── tools │ └── myaxios.js ├── router │ └── index.js ├── App.vue └── components │ ├── booksInfo │ └── BooksInfo.vue │ └── readbooks │ └── bookContent.vue ├── babel.config.js ├── .gitignore ├── postcss.config.js ├── README.md ├── package.json ├── .eslintrc.js └── vue.config.js /.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/public/favicon.ico -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/logo.png -------------------------------------------------------------------------------- /src/assets/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/user.png -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /src/assets/images/333.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/333.png -------------------------------------------------------------------------------- /src/assets/images/Aa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/Aa.png -------------------------------------------------------------------------------- /src/assets/images/moon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/moon.png -------------------------------------------------------------------------------- /src/assets/images/mulu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/mulu.png -------------------------------------------------------------------------------- /src/assets/images/sun.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/sun.png -------------------------------------------------------------------------------- /src/assets/images/talk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/talk.png -------------------------------------------------------------------------------- /src/assets/images/top1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/top1.jpg -------------------------------------------------------------------------------- /src/assets/images/top2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/top2.png -------------------------------------------------------------------------------- /src/assets/images/Greate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/Greate.png -------------------------------------------------------------------------------- /src/assets/images/follow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/follow.png -------------------------------------------------------------------------------- /src/assets/images/leave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/leave.png -------------------------------------------------------------------------------- /src/assets/images/menu1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/menu1.png -------------------------------------------------------------------------------- /src/assets/images/menu2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/menu2.png -------------------------------------------------------------------------------- /src/assets/images/menu3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/menu3.png -------------------------------------------------------------------------------- /src/assets/images/menu4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/menu4.png -------------------------------------------------------------------------------- /src/assets/images/menu5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/menu5.png -------------------------------------------------------------------------------- /src/assets/images/menu6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/menu6.png -------------------------------------------------------------------------------- /src/assets/images/record.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/record.png -------------------------------------------------------------------------------- /src/assets/images/return.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/return.png -------------------------------------------------------------------------------- /src/assets/images/zhui1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/zhui1.jpg -------------------------------------------------------------------------------- /src/assets/images/zhui2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/zhui2.jpg -------------------------------------------------------------------------------- /src/assets/images/zhui3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/zhui3.jpg -------------------------------------------------------------------------------- /src/assets/images/Greate-l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/Greate-l.png -------------------------------------------------------------------------------- /src/assets/images/Greate-l2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/Greate-l2.png -------------------------------------------------------------------------------- /src/assets/images/account.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/account.png -------------------------------------------------------------------------------- /src/assets/images/bookList.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/bookList.png -------------------------------------------------------------------------------- /src/assets/images/comment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/comment.png -------------------------------------------------------------------------------- /src/assets/images/mseeage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/mseeage.png -------------------------------------------------------------------------------- /src/assets/images/top-book.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/top-book.jpg -------------------------------------------------------------------------------- /src/assets/images/Collection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/Collection.png -------------------------------------------------------------------------------- /src/assets/images/passwordpd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/passwordpd.png -------------------------------------------------------------------------------- /src/assets/images/zhui1 copy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/zhui1 copy.jpg -------------------------------------------------------------------------------- /src/assets/images/zhui2 copy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/zhui2 copy.jpg -------------------------------------------------------------------------------- /src/assets/images/zhui3 copy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/images/zhui3 copy.jpg -------------------------------------------------------------------------------- /src/assets/inconfont/iconfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/inconfont/iconfont.eot -------------------------------------------------------------------------------- /src/assets/inconfont/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/inconfont/iconfont.ttf -------------------------------------------------------------------------------- /src/assets/inconfont/iconfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/inconfont/iconfont.woff -------------------------------------------------------------------------------- /src/assets/inconfont/iconfont.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/smallAntcxq/vue_book/HEAD/src/assets/inconfont/iconfont.woff2 -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | 4 | //autoprefixer 自动补全css前缀的东西 5 | 'autoprefixer': { 6 | 7 | //兼容的机型 8 | browsers: ['Android >= 4.0', 'iOS >= 7'] 9 | }, 10 | 'postcss-pxtorem': { 11 | rootValue: 37.5, //换算基数,一般和html的font-size一致 12 | propList: ['*'] //哪些css属性需要换算 13 | } 14 | } 15 | } -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 读了吗 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/views/Search.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | 28 | 29 | 36 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /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 | 27 | // me 28 | deleate(){ 29 | this.state.books = [] 30 | }, 31 | deleate2(){ 32 | this.state.boot = [] 33 | }, 34 | addTobooks(state, booksinfor){ 35 | let flag = false 36 | state.books.forEach((item, index)=>{ 37 | if(item.id == booksinfor.id){ 38 | flag = true 39 | } 40 | }) 41 | if(flag == false){ 42 | state.books.push(booksinfor) 43 | } 44 | 45 | }, 46 | setbowere(state, booksinto) { 47 | let flag = false 48 | state.boot.forEach((item, index)=>{ 49 | if(item.id == booksinto.id){ 50 | flag = true 51 | } 52 | }) 53 | if(flag == false){ 54 | state.boot.push(booksinto) 55 | } 56 | 57 | } 58 | }, 59 | actions: { 60 | }, 61 | modules: { 62 | }, 63 | getters: { 64 | }, 65 | plugins: [createPersistedState()] 66 | }) 67 | -------------------------------------------------------------------------------- /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 | let 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 | } else if(method == "POST"){ 21 | let params = QS.stringify(params) 22 | return axios.post(url, params) 23 | } 24 | } 25 | 26 | export const staticPath = 'http://statics.zhuishushenqi.com' 27 | export const statistics = "/cats/lv2/statistics" //get 28 | export const sortbooks = "/cats/lv2 " //get 29 | export const booksbrief = "/book/by-categories?" 30 | export const bookDetailURL = '/book/' 31 | export const bookDiscussURL = '/post/review/best-by-book?' 32 | export const rankingGenderURL = "/ranking/gender" 33 | export const rankingURL = "/ranking/" 34 | 35 | export const booksChaptersIdURL = '/atoc/?view=summary&book=' 36 | export const booksChaptersURL = '/btoc/' 37 | export const booksTextURL = '/chapter/' 38 | 39 | //li 40 | export const booksURL = "/book/by-categories?gender=male&type=hot&major=%E7%8E%84%E5%B9%BB&minor=&start=0&limit=20" 41 | export const booksnewURL = "/book/by-categories?gender=male&type=new&major=武侠&minor=&start=0&limit=20" 42 | export const bookgoodURL = "/book/by-categories?gender=female&type=new&major=青春校园&minor=&start=0&limit=20" 43 | export const bookmonthURL = "/book/by-categories?gender=male&type=over&major=都市&minor=&start=0&limit=20" 44 | export const bookmonthsURL = "/book/by-categories?gender=female&type=over&major=现代言情&minor=&start=0&limit=20" 45 | export const bookancientURL = "/book/by-categories?gender=female&type=over&major=古代言情&minor=&start=0&limit=20" 46 | export const hotbookURL = "/book/by-categories?gender=male&type=over&major=科幻&minor=&start=0&limit=20" 47 | export const hotsbookURL = "/book/by-categories?gender=female&type=over&major=青春校园&minor=&start=0&limit=20" 48 | export const bookrankURL = "/book/by-categories?gender=male&type=over&major=军事&minor=&start=0&limit=20" 49 | export const bookranksURL = "/book/by-categories?gender=female&type=reputation&major=现代言情&minor=&start=0&limit=20" 50 | export const booksearchURL = "/book/fuzzy-search?" 51 | 52 | 53 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /src/views/Sort.vue: -------------------------------------------------------------------------------- 1 | 44 | 45 | 83 | 84 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | const Shelf = ()=> import('@/views/Shelf.vue') 4 | 5 | // import Shelf from '@/views/Shelf.vue' 6 | const Sort = ()=>import('@/views/Sort.vue') 7 | 8 | // import Sort from '@/views/Sort.vue' 9 | const Good = () => import('@/views/Good.vue') 10 | 11 | // import Good from '@/views/Good.vue' 12 | const Ranking = ()=> import('@/views/Ranking.vue') 13 | 14 | // import Ranking from '@/views/Ranking.vue' 15 | const Personal = ()=> import('@/views/Personal.vue') 16 | 17 | // import Personal from '@/views/Personal.vue' 18 | const Search = ()=> import('@/views/Search.vue') 19 | 20 | // import Search from '@/views/Search.vue' 21 | const Sortbooks = ()=> import('@/views/Sortbooks.vue') 22 | 23 | // import Sortbooks from '@/views/Sortbooks.vue' 24 | const SortbooksInfo = ()=>import('@/components/booksInfo/BooksInfo.vue') 25 | 26 | // import SortbooksInfo from '@/components/booksInfo/BooksInfo.vue' 27 | // const bookcontent=()=>import('@/components/readbooks/bookContent.vue') 28 | import bookcontent from '@/components/readbooks/bookContent.vue' 29 | import malerankDetail from '@/views/ranks/malerankDetail.vue' 30 | import femalerankDetail from '@/views/ranks/femalerankDetail.vue' 31 | import maleBooksInfo from '@/components/booksInfo/BooksInfo.vue' 32 | import femaleBooksInfo from '@/components/booksInfo/BooksInfo.vue' 33 | import Per from '@/views/per/personre.vue' 34 | import Perinfo from '@/views/per/personinfo.vue' 35 | import Booksearch from '@/views/books/Booksearch.vue' 36 | import BookGoodList from '@/components/booksInfo/BooksInfo.vue' 37 | import BookgirlList from '@/components/booksInfo/BooksInfo.vue' 38 | import Searchbooks from '@/components/booksInfo/BooksInfo.vue' 39 | 40 | import Browere from '@/views/per/bowerect.vue' 41 | import bowerect from '@/components/booksInfo/BooksInfo.vue' 42 | 43 | Vue.use(VueRouter) 44 | 45 | const routes = [ 46 | { 47 | path: '/', 48 | component: Shelf 49 | }, 50 | { 51 | path: '/Shelf', 52 | component: Shelf 53 | }, 54 | { 55 | path: '/Sort', 56 | component: Sort 57 | }, 58 | { 59 | path: '/Good', 60 | component: Good 61 | }, 62 | { 63 | path: '/Ranking', 64 | component: Ranking 65 | }, 66 | { 67 | path: '/Personal', 68 | component: Personal 69 | }, 70 | { 71 | path: '/Search', 72 | component: Search 73 | }, 74 | { 75 | path: '/Sort/books', 76 | component: Sortbooks, 77 | name: Sortbooks 78 | }, 79 | { 80 | path: '/Sortbooks/sortbooksInfo', 81 | component: SortbooksInfo, 82 | }, 83 | { 84 | path: '/booksinfo/bookcontent', 85 | component: bookcontent, 86 | }, 87 | 88 | { 89 | path: "/ranks/malerankDetail/:id", 90 | component: malerankDetail 91 | }, 92 | { 93 | path: "/ranks/femalerankDetail/:id", 94 | component: femalerankDetail 95 | }, 96 | { 97 | path: "/malerankDetail/maleBooksInfo", 98 | component: maleBooksInfo 99 | }, 100 | { 101 | path: "/femalerankDetail/femaleBooksInfo", 102 | component: femaleBooksInfo 103 | }, 104 | { 105 | path: '/Per/personre', 106 | component: Per 107 | }, 108 | { 109 | path: '/Per/personinfo', 110 | component: Perinfo 111 | }, 112 | { 113 | path: '/books/searchbooks', 114 | component: Booksearch 115 | }, 116 | { 117 | path: '/books/gnumbooks/', 118 | component: BookgirlList 119 | }, 120 | { 121 | path: '/books/numbooks/', 122 | component: BookGoodList 123 | }, 124 | { 125 | path: '/books/searchbooks', 126 | component: Searchbooks 127 | }, 128 | { 129 | path: '/Per/browere', 130 | component: Browere 131 | }, 132 | { 133 | path: '/Bowerect/bowerect', 134 | component: bowerect 135 | }, 136 | 137 | ] 138 | 139 | const router = new VueRouter({ 140 | routes 141 | }) 142 | 143 | export default router 144 | -------------------------------------------------------------------------------- /src/views/per/personinfo.vue: -------------------------------------------------------------------------------- 1 | 69 | 134 | 135 | -------------------------------------------------------------------------------- /src/views/Ranking.vue: -------------------------------------------------------------------------------- 1 | 54 | 85 | -------------------------------------------------------------------------------- /src/views/per/personre.vue: -------------------------------------------------------------------------------- 1 | 55 | 120 | 121 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 71 | 72 | 118 | 119 | 182 | -------------------------------------------------------------------------------- /src/views/ranks/femalerankDetail.vue: -------------------------------------------------------------------------------- 1 | 49 | 50 | 95 | 96 | -------------------------------------------------------------------------------- /src/views/ranks/malerankDetail.vue: -------------------------------------------------------------------------------- 1 | 49 | 50 | 94 | 95 | -------------------------------------------------------------------------------- /src/views/per/bowerect.vue: -------------------------------------------------------------------------------- 1 | 60 | 61 | 113 | 114 | -------------------------------------------------------------------------------- /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 | 70 | // 是否修改来源, 为true时会让目标服务器以为是webpack-dev-server发出的请求!服务端和服务端的请求是没有跨域的 71 | //pathRewrite: {'^/api': '/a'} // 将/api开头的请求地址, /api 改为 /, 即 /api/xx 改为 /xx 72 | }, 73 | '/cats': { 74 | target: 'http://api.zhuishushenqi.com', // 目标服务器地址 75 | secure: false, // 目标服务器地址是否是安全协议 76 | changeOrigin: true, 77 | 78 | // 是否修改来源, 为true时会让目标服务器以为是webpack-dev-server发出的请求!服务端和服务端的请求是没有跨域的 79 | //pathRewrite: {'^/api': '/a'} // 将/api开头的请求地址, /api 改为 /, 即 /api/xx 改为 /xx 80 | }, 81 | '/post/*': { 82 | target: 'http://api.zhuishushenqi.com', // 目标服务器地址 83 | secure: false, // 目标服务器地址是否是安全协议 84 | changeOrigin: true, 85 | 86 | // 是否修改来源, 为true时会让目标服务器以为是webpack-dev-server发出的请求!服务端和服务端的请求是没有跨域的 87 | //pathRewrite: {'^/api': '/a'} // 将/api开头的请求地址, /api 改为 /, 即 /api/xx 改为 /xx 88 | }, 89 | '/ranking/*': { 90 | target: 'http://api.zhuishushenqi.com', // 目标服务器地址 91 | secure: false, // 目标服务器地址是否是安全协议 92 | changeOrigin: true, 93 | 94 | // 是否修改来源, 为true时会让目标服务器以为是webpack-dev-server发出的请求!服务端和服务端的请求是没有跨域的 95 | //pathRewrite: {'^/api': '/a'} // 将/api开头的请求地址, /api 改为 /, 即 /api/xx 改为 /xx 96 | }, 97 | '/btoc': { 98 | target: 'http://api.zhuishushenqi.com', // 目标服务器地址 99 | secure: false, // 目标服务器地址是否是安全协议 100 | changeOrigin: true, 101 | 102 | // 是否修改来源, 为true时会让目标服务器以为是webpack-dev-server发出的请求!服务端和服务端的请求是没有跨域的 103 | //pathRewrite: {'^/api': '/a'} // 将/api开头的请求地址, /api 改为 /, 即 /api/xx 改为 /xx 104 | }, 105 | '/atoc': { 106 | target: 'http://api.zhuishushenqi.com', // 目标服务器地址 107 | secure: false, // 目标服务器地址是否是安全协议 108 | changeOrigin: true, 109 | 110 | // 是否修改来源, 为true时会让目标服务器以为是webpack-dev-server发出的请求!服务端和服务端的请求是没有跨域的 111 | //pathRewrite: {'^/api': '/a'} // 将/api开头的请求地址, /api 改为 /, 即 /api/xx 改为 /xx 112 | }, 113 | '/chapter': { 114 | target: 'http://chapter2.zhuishushenqi.com', // 目标服务器地址 115 | secure: false, // 目标服务器地址是否是安全协议 116 | changeOrigin: true, 117 | 118 | // 是否修改来源, 为true时会让目标服务器以为是webpack-dev-server发出的请求!服务端和服务端的请求是没有跨域的 119 | //pathRewrite: {'^/api': '/a'} // 将/api开头的请求地址, /api 改为 /, 即 /api/xx 改为 /xx 120 | }, 121 | 122 | //http://api.zhuishushenqi.com/cats/lv2 123 | } 124 | 125 | //http://127.0.0.1:3000/book/hot-word 126 | 127 | //http://api.zhuishushenqi.com/book/hot-word 128 | }, 129 | 130 | // 第三方插件配置 131 | pluginOptions: {}, 132 | 133 | //调整webpack配置的最简单的方式 134 | configureWebpack: config => { 135 | if (!debug) { 136 | 137 | // 为生产环境修改配置... 138 | config.devtool = '#cheap-module-source-map' 139 | } else { 140 | 141 | // 为开发环境修改配置... 142 | config.devtool = '#cheap-module-eval-source-map' 143 | } 144 | 145 | Object.assign(config, { // 开发生产共同配置 146 | resolve: { 147 | alias: { 148 | '@': path.resolve(__dirname, './src'), 149 | 'vue$': 'vue/dist/vue.js' 150 | } 151 | } 152 | }) 153 | }, 154 | 155 | //webpack的链式编程 156 | chainWebpack: () => { 157 | if (debug) { 158 | 159 | // 本地开发配置 160 | } else { 161 | 162 | // 生产开发配置 163 | } 164 | }, 165 | 166 | /* pages: { 167 | index: { 168 | // page 的入口 169 | entry: 'src/index/main.js', 170 | // 模板来源 171 | template: 'public/index.html', 172 | // 在 dist/index.html 的输出 173 | filename: 'index.html', 174 | // 当使用 title 选项时, 175 | // template 中的 title 标签需要是 <%= htmlWebpackPlugin.options.title %> 176 | title: 'Index Page', 177 | // 在这个页面中包含的块,默认情况下会包含 178 | // 提取出来的通用 chunk 和 vendor chunk。 179 | //chunk参考:https://segmentfault.com/q/1010000016925412/a-1020000016946034 180 | chunks: ['chunk-vendors', 'chunk-common', 'index'] 181 | } 182 | },*/ 183 | lintOnSave: false, 184 | } 185 | -------------------------------------------------------------------------------- /src/views/Shelf.vue: -------------------------------------------------------------------------------- 1 | 66 | 67 | 131 | 132 | -------------------------------------------------------------------------------- /src/views/books/Booksearch.vue: -------------------------------------------------------------------------------- 1 | 78 | 79 | 140 | 141 | -------------------------------------------------------------------------------- /src/views/Personal.vue: -------------------------------------------------------------------------------- 1 | 173 | 309 | -------------------------------------------------------------------------------- /src/components/booksInfo/BooksInfo.vue: -------------------------------------------------------------------------------- 1 | 105 | 106 | 185 | 186 | -------------------------------------------------------------------------------- /src/views/Sortbooks.vue: -------------------------------------------------------------------------------- 1 | 80 | 81 | 272 | 273 | -------------------------------------------------------------------------------- /src/views/Good.vue: -------------------------------------------------------------------------------- 1 | 125 | 126 | 305 | 306 | 423 | 424 | -------------------------------------------------------------------------------- /src/components/readbooks/bookContent.vue: -------------------------------------------------------------------------------- 1 | 129 | 130 | 275 | -------------------------------------------------------------------------------- /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 | --------------------------------------------------------------------------------