└── 追书神器11.19 ├── .gitignore ├── README.md ├── babel.config.js ├── lib ├── images │ ├── pagecolor1.jpg │ ├── top.jpeg │ ├── top1.jpg │ └── top2.jpg └── mui │ ├── css │ ├── iconfont.css │ ├── icons-extra.css │ ├── mui.css │ └── mui.min.css │ ├── fonts │ ├── iconfont.ttf │ ├── mui-icons-extra.ttf │ └── mui.ttf │ └── js │ ├── app.js │ ├── mui.enterfocus.js │ ├── mui.js │ └── mui.min.js ├── package-lock.json ├── package.json ├── public ├── favicon.ico └── index.html ├── src ├── App.vue ├── BookCity │ └── booklist │ │ ├── BookList.vue │ │ └── BookListDetails.vue ├── assets │ └── logo.png ├── components │ ├── HelloWorld.vue │ ├── bottom.vue │ ├── box.vue │ ├── top.vue │ └── top1.vue ├── font │ └── iconfont.js ├── images │ ├── 00.jpg │ ├── 01.jpg │ ├── 02.jpg │ ├── 1.jpg │ ├── 11.jpg │ ├── 2.jpg │ ├── 22.jpg │ ├── 3.jpg │ ├── 33.jpg │ ├── 44.jpg │ ├── 4a.jpg │ ├── 5.jpg │ ├── 6.jpg │ ├── 7.jpg │ ├── 8.jpg │ ├── 9.jpg │ ├── a.jpg │ ├── aa.jpg │ ├── author.png │ ├── b.jpg │ ├── bb.jpg │ ├── booklist1.jpg │ ├── booklist2.jpg │ ├── c.jpg │ ├── cc.jpg │ ├── d.jpg │ ├── dd.jpg │ ├── ee.jpg │ ├── ff.jpg │ ├── g.jpg │ ├── h.jpg │ ├── hh.jpg │ ├── hot.jpg │ ├── k.jpg │ ├── love.jpg │ ├── lunbo11.jpg │ ├── lunbo22.jpg │ ├── lunbo33.jpg │ ├── lunbo4.jpg │ ├── lunbo55.jpg │ ├── m.jpg │ ├── shucheng11.jpg │ ├── shucheng22.jpg │ ├── xx.jpg │ └── yy.jpg ├── main.js ├── router │ └── index.js ├── rules │ └── rules.js ├── store │ └── index.js └── views │ ├── BookCity.vue │ ├── BookCity │ └── booklist │ │ ├── BookList.vue │ │ └── BookListDetails.vue │ ├── Bookcase.vue │ ├── Finding.vue │ ├── PersonalCenter │ ├── Feedback.vue │ ├── Login.vue │ ├── PersonalCenter.vue │ └── Setting.vue │ ├── classification copy │ ├── bookinfo1.vue │ ├── bookinfo2.vue │ ├── bookinfo3.vue │ ├── femaleclass.vue │ ├── maleclass.vue │ ├── pictureclass.vue │ └── pressclass.vue │ ├── classification.vue │ ├── classification │ ├── bookinfo1.vue │ ├── bookinfo2.vue │ ├── bookinfo3.vue │ ├── femaleclass.vue │ ├── maleclass.vue │ ├── pictureclass.vue │ └── pressclass.vue │ ├── ranking.vue │ ├── read │ ├── Catalog.vue │ └── read.vue │ └── search.vue └── vue.config.js /追书神器11.19/.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 | -------------------------------------------------------------------------------- /追书神器11.19/README.md: -------------------------------------------------------------------------------- 1 | # zhuishushenqi 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 | -------------------------------------------------------------------------------- /追书神器11.19/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/cli-plugin-babel/preset' 4 | ], 5 | ignore:["./lib/mui/js/*.js"] 6 | } 7 | -------------------------------------------------------------------------------- /追书神器11.19/lib/images/pagecolor1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/lib/images/pagecolor1.jpg -------------------------------------------------------------------------------- /追书神器11.19/lib/images/top.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/lib/images/top.jpeg -------------------------------------------------------------------------------- /追书神器11.19/lib/images/top1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/lib/images/top1.jpg -------------------------------------------------------------------------------- /追书神器11.19/lib/images/top2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/lib/images/top2.jpg -------------------------------------------------------------------------------- /追书神器11.19/lib/mui/css/iconfont.css: -------------------------------------------------------------------------------- 1 | @font-face {font-family: "iconfont"; 2 | src:url('../fonts/iconfont.ttf') format('truetype'); /* chrome、firefox、opera、Safari, Android, iOS 4.2+*/ 3 | } 4 | .iconfont { 5 | font-family: "iconfont" !important; 6 | font-size: 16px; 7 | font-style: normal; 8 | -webkit-font-smoothing: antialiased; 9 | -moz-osx-font-smoothing: grayscale; 10 | } 11 | 12 | .iconwuguanggao:before { 13 | content: "\e6be"; 14 | } 15 | 16 | .icongouwuche:before { 17 | content: "\e621"; 18 | } 19 | 20 | .icondunpaisuo-tianchong:before { 21 | content: "\e62f"; 22 | } 23 | 24 | .iconhongbao1:before { 25 | content: "\e6f6"; 26 | } 27 | 28 | .iconlihe:before { 29 | content: "\e670"; 30 | } 31 | 32 | .icontubiaozhizuomoban:before { 33 | content: "\e607"; 34 | } 35 | 36 | .icongouwuche1:before { 37 | content: "\e735"; 38 | } 39 | 40 | .iconicon-test:before { 41 | content: "\e6d8"; 42 | } 43 | 44 | .iconshengdan_lihe:before { 45 | content: "\e68c"; 46 | } 47 | 48 | .iconlixianhuancunx:before { 49 | content: "\e60c"; 50 | } 51 | 52 | .iconwuguanggao1:before { 53 | content: "\e69a"; 54 | } 55 | 56 | .iconlixianhuancun:before { 57 | content: "\e637"; 58 | } 59 | 60 | .iconanquanzhongxin:before { 61 | content: "\e64d"; 62 | } 63 | 64 | .icongongsi:before { 65 | content: "\e64e"; 66 | } 67 | 68 | .iconkecheng:before { 69 | content: "\e64f"; 70 | } 71 | 72 | .iconpaibandaka:before { 73 | content: "\e650"; 74 | } 75 | 76 | .iconxitongshezhi:before { 77 | content: "\e652"; 78 | } 79 | 80 | .iconIncome:before { 81 | content: "\e752"; 82 | } 83 | 84 | .iconLock:before { 85 | content: "\e774"; 86 | } 87 | 88 | .iconUser:before { 89 | content: "\e775"; 90 | } 91 | 92 | .iconBookmark:before { 93 | content: "\e776"; 94 | } 95 | 96 | .icon-Clock:before { 97 | content: "\e777"; 98 | } 99 | 100 | .iconTwoChatBubbles:before { 101 | content: "\e77a"; 102 | } 103 | 104 | .iconwode:before { 105 | content: "\e600"; 106 | } 107 | 108 | .iconcaigoushenqing:before { 109 | content: "\e697"; 110 | } 111 | 112 | .iconkefu-mian:before { 113 | content: "\e606"; 114 | } 115 | 116 | .icondingweimian:before { 117 | content: "\e611"; 118 | } 119 | 120 | .iconarrow-right:before { 121 | content: "\e6eb"; 122 | } 123 | 124 | .iconarrow-lift:before { 125 | content: "\e6ed"; 126 | } 127 | 128 | .iconclose:before { 129 | content: "\e6f0"; 130 | } 131 | 132 | .iconatm:before { 133 | content: "\e6ef"; 134 | } 135 | 136 | .icondollar:before { 137 | content: "\e6f4"; 138 | } 139 | 140 | .iconRightarrow:before { 141 | content: "\e702"; 142 | } 143 | 144 | .icondajiaduzaidu-langdu:before { 145 | content: "\e665"; 146 | } 147 | 148 | .icondingwei:before { 149 | content: "\e602"; 150 | } 151 | 152 | .iconhongbao:before { 153 | content: "\e603"; 154 | } 155 | 156 | .iconshezhi:before { 157 | content: "\e604"; 158 | } 159 | 160 | .iconshouji:before { 161 | content: "\e605"; 162 | } 163 | 164 | .iconqingkuangfanying:before { 165 | content: "\e651"; 166 | } 167 | 168 | .icontubiaozhizuomoban1:before { 169 | content: "\e608"; 170 | } 171 | 172 | -------------------------------------------------------------------------------- /追书神器11.19/lib/mui/css/icons-extra.css: -------------------------------------------------------------------------------- 1 | @font-face { 2 | font-family: MuiiconSpread; 3 | font-weight: normal; 4 | font-style: normal; 5 | src: url('../fonts/mui-icons-extra.ttf') format('truetype'); /* iOS 4.1- */ 6 | } 7 | .mui-icon-extra 8 | { 9 | font-family: MuiiconSpread; 10 | font-size: 24px; 11 | font-weight: normal; 12 | font-style: normal; 13 | line-height: 1; 14 | display: inline-block; 15 | text-decoration: none; 16 | -webkit-font-smoothing: antialiased; 17 | } 18 | .mui-icon-extra-cold:before { content: "\e500"; } 19 | .mui-icon-extra-share:before { content: "\e200"; } 20 | .mui-icon-extra-class:before { content: "\e118"; } 21 | .mui-icon-extra-custom:before { content: "\e117"; } 22 | .mui-icon-extra-new:before { content: "\e103"; } 23 | .mui-icon-extra-card:before { content: "\e104"; } 24 | .mui-icon-extra-grech:before { content: "\e105"; } 25 | .mui-icon-extra-trend:before { content: "\e106"; } 26 | .mui-icon-extra-filter:before { content: "\e207"; } 27 | .mui-icon-extra-holiday:before { content: "\e300"; } 28 | .mui-icon-extra-cart:before { content: "\e107"; } 29 | .mui-icon-extra-heart:before { content: "\e180"; } 30 | .mui-icon-extra-computer:before { content: "\e600"; } 31 | .mui-icon-extra-express:before { content: "\e108"; } 32 | .mui-icon-extra-gift:before { content: "\e109"; } 33 | .mui-icon-extra-gold:before { content: "\e102"; } 34 | .mui-icon-extra-lamp:before { content: "\e601"; } 35 | .mui-icon-extra-rank:before { content: "\e110"; } 36 | .mui-icon-extra-notice:before { content: "\e111"; } 37 | .mui-icon-extra-sweep:before { content: "\e202"; } 38 | .mui-icon-extra-arrowleftcricle:before { content: "\e401"; } 39 | .mui-icon-extra-dictionary:before { content: "\e602"; } 40 | .mui-icon-extra-heart-filled:before { content: "\e119"; } 41 | .mui-icon-extra-xiaoshuo:before { content: "\e607"; } 42 | .mui-icon-extra-top:before { content: "\e403"; } 43 | .mui-icon-extra-people:before { content: "\e203"; } 44 | .mui-icon-extra-topic:before { content: "\e603"; } 45 | .mui-icon-extra-hotel:before { content: "\e301"; } 46 | .mui-icon-extra-like:before { content: "\e206"; } 47 | .mui-icon-extra-regist:before { content: "\e201"; } 48 | .mui-icon-extra-order:before { content: "\e113"; } 49 | .mui-icon-extra-alipay:before { content: "\e114"; } 50 | .mui-icon-extra-find:before { content: "\e400"; } 51 | .mui-icon-extra-arrowrightcricle:before { content: "\e402"; } 52 | .mui-icon-extra-calendar:before { content: "\e115"; } 53 | .mui-icon-extra-prech:before { content: "\e116"; } 54 | .mui-icon-extra-cate:before { content: "\e501"; } 55 | .mui-icon-extra-comment:before { content: "\e209"; } 56 | .mui-icon-extra-at:before { content: "\e208"; } 57 | .mui-icon-extra-addpeople:before { content: "\e204"; } 58 | .mui-icon-extra-peoples:before { content: "\e205"; } 59 | .mui-icon-extra-calc:before { content: "\e101"; } 60 | .mui-icon-extra-classroom:before { content: "\e604"; } 61 | .mui-icon-extra-phone:before { content: "\e404"; } 62 | .mui-icon-extra-university:before { content: "\e605"; } 63 | .mui-icon-extra-outline:before { content: "\e606"; } 64 | -------------------------------------------------------------------------------- /追书神器11.19/lib/mui/fonts/iconfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/lib/mui/fonts/iconfont.ttf -------------------------------------------------------------------------------- /追书神器11.19/lib/mui/fonts/mui-icons-extra.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/lib/mui/fonts/mui-icons-extra.ttf -------------------------------------------------------------------------------- /追书神器11.19/lib/mui/fonts/mui.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/lib/mui/fonts/mui.ttf -------------------------------------------------------------------------------- /追书神器11.19/lib/mui/js/app.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 演示程序当前的 “注册/登录” 等操作,是基于 “本地存储” 完成的 3 | * 当您要参考这个演示程序进行相关 app 的开发时, 4 | * 请注意将相关方法调整成 “基于服务端Service” 的实现。 5 | **/ 6 | (function($, owner) { 7 | /** 8 | * 用户登录 9 | **/ 10 | owner.login = function(loginInfo, callback) { 11 | callback = callback || $.noop; 12 | loginInfo = loginInfo || {}; 13 | loginInfo.account = loginInfo.account || ''; 14 | loginInfo.password = loginInfo.password || ''; 15 | if (loginInfo.account.length < 5) { 16 | return callback('账号最短为 5 个字符'); 17 | } 18 | if (loginInfo.password.length < 6) { 19 | return callback('密码最短为 6 个字符'); 20 | } 21 | var users = JSON.parse(localStorage.getItem('$users') || '[]'); 22 | var authed = users.some(function(user) { 23 | return loginInfo.account == user.account && loginInfo.password == user.password; 24 | }); 25 | if (authed) { 26 | return owner.createState(loginInfo.account, callback); 27 | } else { 28 | return callback('用户名或密码错误'); 29 | } 30 | }; 31 | 32 | owner.createState = function(name, callback) { 33 | var state = owner.getState(); 34 | state.account = name; 35 | state.token = "token123456789"; 36 | owner.setState(state); 37 | return callback(); 38 | }; 39 | 40 | /** 41 | * 新用户注册 42 | **/ 43 | owner.reg = function(regInfo, callback) { 44 | callback = callback || $.noop; 45 | regInfo = regInfo || {}; 46 | regInfo.account = regInfo.account || ''; 47 | regInfo.password = regInfo.password || ''; 48 | if (regInfo.account.length < 5) { 49 | return callback('用户名最短需要 5 个字符'); 50 | } 51 | if (regInfo.password.length < 6) { 52 | return callback('密码最短需要 6 个字符'); 53 | } 54 | if (!checkEmail(regInfo.email)) { 55 | return callback('邮箱地址不合法'); 56 | } 57 | var users = JSON.parse(localStorage.getItem('$users') || '[]'); 58 | users.push(regInfo); 59 | localStorage.setItem('$users', JSON.stringify(users)); 60 | return callback(); 61 | }; 62 | 63 | /** 64 | * 获取当前状态 65 | **/ 66 | owner.getState = function() { 67 | var stateText = localStorage.getItem('$state') || "{}"; 68 | return JSON.parse(stateText); 69 | }; 70 | 71 | /** 72 | * 设置当前状态 73 | **/ 74 | owner.setState = function(state) { 75 | state = state || {}; 76 | localStorage.setItem('$state', JSON.stringify(state)); 77 | //var settings = owner.getSettings(); 78 | //settings.gestures = ''; 79 | //owner.setSettings(settings); 80 | }; 81 | 82 | var checkEmail = function(email) { 83 | email = email || ''; 84 | return (email.length > 3 && email.indexOf('@') > -1); 85 | }; 86 | 87 | /** 88 | * 找回密码 89 | **/ 90 | owner.forgetPassword = function(email, callback) { 91 | callback = callback || $.noop; 92 | if (!checkEmail(email)) { 93 | return callback('邮箱地址不合法'); 94 | } 95 | return callback(null, '新的随机密码已经发送到您的邮箱,请查收邮件。'); 96 | }; 97 | 98 | /** 99 | * 获取应用本地配置 100 | **/ 101 | owner.setSettings = function(settings) { 102 | settings = settings || {}; 103 | localStorage.setItem('$settings', JSON.stringify(settings)); 104 | } 105 | 106 | /** 107 | * 设置应用本地配置 108 | **/ 109 | owner.getSettings = function() { 110 | var settingsText = localStorage.getItem('$settings') || "{}"; 111 | return JSON.parse(settingsText); 112 | } 113 | /** 114 | * 获取本地是否安装客户端 115 | **/ 116 | owner.isInstalled = function(id) { 117 | if (id === 'qihoo' && mui.os.plus) { 118 | return true; 119 | } 120 | if (mui.os.android) { 121 | var main = plus.android.runtimeMainActivity(); 122 | var packageManager = main.getPackageManager(); 123 | var PackageManager = plus.android.importClass(packageManager) 124 | var packageName = { 125 | "qq": "com.tencent.mobileqq", 126 | "weixin": "com.tencent.mm", 127 | "sinaweibo": "com.sina.weibo" 128 | } 129 | try { 130 | return packageManager.getPackageInfo(packageName[id], PackageManager.GET_ACTIVITIES); 131 | } catch (e) {} 132 | } else { 133 | switch (id) { 134 | case "qq": 135 | var TencentOAuth = plus.ios.import("TencentOAuth"); 136 | return TencentOAuth.iphoneQQInstalled(); 137 | case "weixin": 138 | var WXApi = plus.ios.import("WXApi"); 139 | return WXApi.isWXAppInstalled() 140 | case "sinaweibo": 141 | var SinaAPI = plus.ios.import("WeiboSDK"); 142 | return SinaAPI.isWeiboAppInstalled() 143 | default: 144 | break; 145 | } 146 | } 147 | } 148 | }(mui, window.app = {})); -------------------------------------------------------------------------------- /追书神器11.19/lib/mui/js/mui.enterfocus.js: -------------------------------------------------------------------------------- 1 | (function($) { 2 | $.enterfocus = function(selector, callback) { 3 | var boxArray = [].slice.call(document.querySelectorAll(selector)); 4 | for (var index in boxArray) { 5 | var box = boxArray[index]; 6 | box.addEventListener('keyup', function(event) { 7 | if (event.keyCode == 13) { 8 | var boxIndex = boxArray.indexOf(this); 9 | if (boxIndex == boxArray.length - 1) { 10 | if (callback) callback(); 11 | } else { 12 | //console.log(boxIndex); 13 | var nextBox = boxArray[++boxIndex]; 14 | nextBox.focus(); 15 | } 16 | } 17 | }, false); 18 | } 19 | }; 20 | }(window.mui = window.mui || {})); -------------------------------------------------------------------------------- /追书神器11.19/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "zhuishushenqi", 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 | "mint-ui": "^2.2.13", 14 | "repl": "^0.1.3", 15 | "sass-loader": "^8.0.0", 16 | "vant": "^2.2.13", 17 | "vue": "^2.6.10", 18 | "vue-router": "^3.1.3", 19 | "vuex": "^3.0.1", 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 | "eslint": "^5.16.0", 28 | "eslint-plugin-vue": "^5.0.0", 29 | "less": "^3.0.4", 30 | "less-loader": "^5.0.0", 31 | "vue-template-compiler": "^2.6.10" 32 | }, 33 | "eslintConfig": { 34 | "root": true, 35 | "env": { 36 | "node": true 37 | }, 38 | "extends": [ 39 | "plugin:vue/essential", 40 | "eslint:recommended" 41 | ], 42 | "rules": {}, 43 | "parserOptions": { 44 | "parser": "babel-eslint" 45 | } 46 | }, 47 | "postcss": { 48 | "plugins": { 49 | "autoprefixer": {} 50 | } 51 | }, 52 | "browserslist": [ 53 | "> 1%", 54 | "last 2 versions" 55 | ] 56 | } 57 | -------------------------------------------------------------------------------- /追书神器11.19/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/public/favicon.ico -------------------------------------------------------------------------------- /追书神器11.19/public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | zhuishushenqi 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /追书神器11.19/src/App.vue: -------------------------------------------------------------------------------- 1 | 58 | 59 | 170 | 232 | -------------------------------------------------------------------------------- /追书神器11.19/src/BookCity/booklist/BookList.vue: -------------------------------------------------------------------------------- 1 | 58 | 201 | 247 | -------------------------------------------------------------------------------- /追书神器11.19/src/BookCity/booklist/BookListDetails.vue: -------------------------------------------------------------------------------- 1 | 28 | 29 | 33 | 34 | -------------------------------------------------------------------------------- /追书神器11.19/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/assets/logo.png -------------------------------------------------------------------------------- /追书神器11.19/src/components/HelloWorld.vue: -------------------------------------------------------------------------------- 1 | 32 | 33 | 41 | 42 | 43 | 59 | -------------------------------------------------------------------------------- /追书神器11.19/src/components/bottom.vue: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /追书神器11.19/src/components/box.vue: -------------------------------------------------------------------------------- 1 | 18 | 19 | 39 | 40 | 112 | -------------------------------------------------------------------------------- /追书神器11.19/src/components/top.vue: -------------------------------------------------------------------------------- 1 | 18 | 62 | -------------------------------------------------------------------------------- /追书神器11.19/src/components/top1.vue: -------------------------------------------------------------------------------- 1 | 8 | 29 | -------------------------------------------------------------------------------- /追书神器11.19/src/images/00.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/00.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/01.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/02.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/02.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/1.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/11.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/2.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/22.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/3.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/33.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/33.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/44.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/44.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/4a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/4a.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/5.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/6.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/6.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/7.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/7.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/8.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/8.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/9.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/a.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/aa.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/aa.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/author.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/author.png -------------------------------------------------------------------------------- /追书神器11.19/src/images/b.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/b.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/bb.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/bb.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/booklist1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/booklist1.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/booklist2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/booklist2.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/c.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/c.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/cc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/cc.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/d.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/dd.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/dd.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/ee.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/ee.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/ff.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/ff.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/g.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/g.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/h.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/h.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/hh.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/hh.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/hot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/hot.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/k.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/k.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/love.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/love.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/lunbo11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/lunbo11.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/lunbo22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/lunbo22.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/lunbo33.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/lunbo33.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/lunbo4.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/lunbo4.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/lunbo55.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/lunbo55.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/m.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/m.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/shucheng11.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/shucheng11.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/shucheng22.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/shucheng22.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/xx.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/xx.jpg -------------------------------------------------------------------------------- /追书神器11.19/src/images/yy.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/zouting0126/vue-app1/79dbdd0fee827a165fe35cbaaa3b2b95d0a8118e/追书神器11.19/src/images/yy.jpg -------------------------------------------------------------------------------- /追书神器11.19/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 VueRouter from 'vue-router' 6 | import top from './components/top.vue' 7 | import top1 from './components/top1.vue' 8 | import bottom from './components/bottom.vue' 9 | import 'mint-ui/lib/style.css' 10 | import { Header } from 'mint-ui'; 11 | import { Search } from 'mint-ui'; 12 | import MintUI from 'mint-ui' 13 | //import { Tabbar, TabbarItem } from 'vant'; 14 | // // import { Popup } from 'vant'; 15 | // import { NavBar } from 'vant'; 16 | // import { Button } from 'vant'; 17 | // import { Swipe, SwipeItem } from 'vant'; 18 | // import { Tab, Tabs } from 'vant'; 19 | // import { Sidebar, SidebarItem } from 'vant'; 20 | // import { Icon } from 'vant'; 21 | // import { Rate } from 'vant'; 22 | // import { Tag } from 'vant'; 23 | // import { Row, Col } from 'vant'; 24 | // Vue.use(NavBar) 25 | // Vue.use(Popup); 26 | // Vue.use(Tabbar).use(TabbarItem); 27 | // Vue.use(Button); 28 | // Vue.use(Swipe).use(SwipeItem); 29 | Vue.component(Search.name, Search); 30 | // Vue.component(Swipe.name, Swipe); 31 | // Vue.component(SwipeItem.name, SwipeItem); 32 | Vue.component('top', top); 33 | Vue.component('top1', top1); 34 | Vue.component('bottom', {bottom}) 35 | Vue.config.productionTip = false 36 | // Vue.use(Sidebar); 37 | // Vue.use(SidebarItem); 38 | // Vue.use(Tab).use(Tabs); 39 | //Vue.use(Icon); 40 | // Vue.use(Rate); 41 | // Vue.use(Tag); 42 | // Vue.use(Row).use(Col); 43 | Vue.use(MintUI) 44 | Vue.use(VueRouter) 45 | Vue.component(Search.name, Search); 46 | Vue.component(Header.name, Header); 47 | 48 | 49 | 50 | 51 | import { Swipe, SwipeItem } from 'mint-ui'; 52 | import { TabContainer, TabContainerItem } from 'mint-ui'; 53 | import { Actionsheet } from 'mint-ui'; 54 | import "../lib/mui/css/mui.css" 55 | import "../lib/mui/css/iconfont.css" 56 | import "./font/iconfont.js" 57 | import Vant from 'vant' 58 | import 'vant/lib/index.css' 59 | Vue.use(Vant) 60 | Vue.component(Actionsheet.name, Actionsheet); 61 | Vue.component(Swipe.name, Swipe); 62 | Vue.component(SwipeItem.name, SwipeItem); 63 | Vue.config.productionTip = false 64 | Vue.use(MintUI) 65 | Vue.use(VueRouter) 66 | Vue.component(Search.name, Search); 67 | 68 | Vue.component(Header.name, Header); 69 | 70 | 71 | Vue.filter('wordParseInt', function (value) { 72 | if (!value) return '' 73 | 74 | return parseInt(value/1000) 75 | }) 76 | Vue.filter('wordToFixed', function (value) { 77 | if (!value) return '' 78 | 79 | return value.toFixed(1) 80 | }) 81 | Vue.filter('wordCeil', function (value) { 82 | if (!value) return '' 83 | 84 | return Math.ceil(value); 85 | }) 86 | new Vue({ 87 | router, 88 | store, 89 | render: h => h(App), 90 | router:router 91 | }).$mount('#app') 92 | 93 | 94 | 95 | -------------------------------------------------------------------------------- /追书神器11.19/src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import VueRouter from 'vue-router' 3 | // import Home from '../views/Home.vue' 4 | import BookCity from '../views/BookCity.vue' 5 | import Bookcase from '../views/Bookcase.vue' 6 | import search from '../views/search.vue' 7 | import classification from '../views/classification.vue' 8 | import femaleclass from '../views/classification/femaleclass.vue' 9 | import maleclass from '../views/classification/maleclass.vue' 10 | import pictureclass from '../views/classification/pictureclass.vue' 11 | import pressclass from '../views/classification/pressclass.vue' 12 | import bookinfo1 from '../views/classification/bookinfo1.vue' 13 | import bookinfo2 from '../views/classification/bookinfo2.vue' 14 | // import bookinfo3 from '../views/classification/bookinfo3.vue' 15 | import read from '../views/read/read.vue' 16 | import ranking from '../views/ranking.vue' 17 | import BookList from '../views/BookCity/booklist/BookList.vue' 18 | import BookListDetails from '../views/BookCity/booklist/BookListDetails.vue' 19 | import PersonalCenter from '../views/PersonalCenter/PersonalCenter.vue' 20 | import Login from '../views/PersonalCenter/Login.vue' 21 | import Setting from '../views/PersonalCenter/Setting.vue' 22 | import Feedback from '../views/PersonalCenter/Feedback.vue' 23 | import Finding from '../views/Finding.vue' 24 | 25 | 26 | 27 | 28 | 29 | 30 | import bookinfo3 from '../views/classification/bookinfo3.vue' 31 | import catalog from '../views/read/Catalog.vue' 32 | 33 | Vue.use(VueRouter) 34 | 35 | const routes = [ 36 | { 37 | path: '/BookCity', 38 | // name: 'home', 39 | component:BookCity 40 | }, 41 | { 42 | path: '/Bookcase', 43 | name: 'Bookcase', 44 | component:Bookcase 45 | }, 46 | { 47 | path: '/Bookcase/search', 48 | name: 'search', 49 | component:search 50 | }, 51 | { 52 | path: '/classification', 53 | name: 'classification', 54 | component:classification 55 | }, 56 | { 57 | path: '/femaleclass/:id/:num', 58 | name: '/femaleclass', 59 | component:femaleclass 60 | }, 61 | { 62 | path: '/maleclass/:id/:num', 63 | name: '/maleclass', 64 | component:maleclass 65 | }, 66 | { 67 | path: '/pictureclass/:id/:num', 68 | name: '/pictureclass', 69 | component:pictureclass 70 | }, 71 | { 72 | path: '/pressclass/:id/:num', 73 | name: '/pressclass', 74 | component:pressclass 75 | }, 76 | { 77 | path: '/bookinfo1/:id/:author', 78 | name: '/bookinfo1', 79 | component:bookinfo1 80 | }, 81 | { 82 | path: '/bookinfo2/:id/:author', 83 | name: '/bookinfo2', 84 | component:bookinfo2 85 | }, 86 | { 87 | path: '/read/:id', 88 | name: 'read', 89 | component:read 90 | }, 91 | { 92 | path: '/ranking', 93 | name: 'ranking', 94 | component:ranking 95 | }, 96 | { 97 | path:'/booklist', 98 | name: 'BookList', 99 | component: BookList 100 | }, 101 | // { 102 | // path: '/bookinfo3/:id/:author/:idx', 103 | // name: '/bookinfo3', 104 | // component:bookinfo3 105 | // }, 106 | { 107 | path:'/BookListDetails/:id', 108 | name:'BookListDetails', 109 | component:BookListDetails 110 | }, 111 | { 112 | path:'/PersonalCenter', 113 | name:'PersonalCenter', 114 | component:PersonalCenter 115 | }, 116 | { 117 | path:'/Login', 118 | name:'Login', 119 | component:Login 120 | }, 121 | { 122 | path:'/Setting', 123 | name:'Setting', 124 | component:Setting 125 | }, 126 | { 127 | path:'/Feedback', 128 | name:'Feedback', 129 | component:Feedback 130 | }, 131 | { 132 | path:'/Finding', 133 | name:'Finding', 134 | component:Finding 135 | }, 136 | { 137 | path: '/bookinfo3/:id/:author/:idx', 138 | name: '/bookinfo3', 139 | component:bookinfo3 140 | }, 141 | { 142 | path: '/catalog/:id', 143 | name: 'catalog', 144 | component:catalog 145 | }, 146 | 147 | // { 148 | // path: '/', 149 | // name: 'home', 150 | // component: Home 151 | // }, 152 | // { 153 | // path: '/about', 154 | // name: 'about', 155 | // // route level code-splitting 156 | // // this generates a separate chunk (about.[hash].js) for this route 157 | // // which is lazy-loaded when the route is visited. 158 | // component: () => import(/* webpackChunkName: "about" */ '../views/About.vue') 159 | // } 160 | ] 161 | 162 | const router = new VueRouter({ 163 | routes 164 | }) 165 | 166 | export default router 167 | -------------------------------------------------------------------------------- /追书神器11.19/src/rules/rules.js: -------------------------------------------------------------------------------- 1 | 2 | 3 | export default { 4 | //必填项手动加星号(input) 5 | requiredStar(msg, trg) { 6 | let obj = { required: true, validator: checkPermission, trigger: 'blur' } 7 | return result(obj, msg, trg) 8 | }, 9 | //必填项手动加星号(select) 10 | requiredStars(msg, trg) { 11 | let obj = { required: true, validator: checkPermission, trigger: 'change' } 12 | return result(obj, msg, trg) 13 | }, 14 | //必填 15 | required(msg, trg) { 16 | let obj = { required: true, message: '该信息必填', trigger: 'blur' } 17 | return result(obj, msg, trg) 18 | }, 19 | //长度约束 min>0, max>min 20 | len(min, max, msg, trg) { 21 | let rmsg = '' 22 | if (min) rmsg += ' 最短长度为' + min 23 | if (max) rmsg += ' 最长长度为' + max 24 | let obj = { min: min, max: max, message: rmsg, trigger: 'blur' } 25 | return result(obj, msg, trg) 26 | }, 27 | //汉字字母 28 | cwd(msg, trg) { 29 | let obj = { 30 | pattern: /^[\u4E00-\u9FA5A-Za-z0-9_]+$/, 31 | message: '只能输入汉字、字母、数字、下划线', 32 | trigger: 'blur' 33 | } 34 | return result(obj, msg, trg) 35 | }, 36 | //数字字母 37 | wd(msg, trg) { 38 | let obj = { 39 | pattern: /^[A-Za-z0-9]*$/, 40 | message: '只能输入数字、字母', 41 | trigger: 'blur' 42 | } 43 | return result(obj, msg, trg) 44 | }, 45 | //数字字母下划线 46 | word(msg, trg) { 47 | let obj = { 48 | pattern: /^[A-Za-z0-9_]*$/, 49 | message: '只能输入数字、字母和下划线', 50 | trigger: 'blur' 51 | } 52 | return result(obj, msg, trg) 53 | }, 54 | code(msg, trg) { 55 | let obj = { 56 | pattern: /^((?!_)(?!.*?_$)[a-zA-Z0-9_]|_(?!_))+$/, 57 | message: '编码错误', 58 | trigger: 'blur' 59 | } 60 | return result(obj, msg, trg) 61 | }, 62 | //只允许输入英文、数字、汉子、下划线、小括号! 63 | name(msg, trg) { 64 | let obj = { 65 | pattern: /^[\u4E00-\u9FA5A-Za-z0-9_()()]+$/, 66 | message: '只允许输入英文、数字、汉子、下划线、小括号!', 67 | trigger: 'blur' 68 | } 69 | return result(obj, msg, trg) 70 | }, 71 | //用户名只允许输入数字、字母、下划线,必须以字母开头! 72 | userName(msg, trg) { 73 | let obj = { 74 | pattern: /^[a-zA-Z][a-zA-Z0-9_]*$/, 75 | message: '只允许输入数字、字母、下划线,必须以字母开头!', 76 | trigger: 'blur' 77 | } 78 | return result(obj, msg, trg) 79 | }, 80 | //固定电话 81 | fixed(msg, trg) { 82 | let obj = { 83 | pattern: /^([\d]{3,4}|[\d]{3,4}-)?[\d]{7,8}$/, 84 | message: '固定电话格式不正确!', 85 | trigger: 'blur' 86 | } 87 | return result(obj, msg, trg) 88 | }, 89 | //qq 90 | qq(msg, trg) { 91 | let obj = { 92 | pattern: /^[1-9][0-9]{4,9}$/, 93 | message: 'qq格式不正确!', 94 | trigger: 'blur' 95 | } 96 | return result(obj, msg, trg) 97 | }, 98 | //email 99 | email(msg, trg) { 100 | let obj = { 101 | pattern: /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/, 102 | message: 'email格式错误', 103 | trigger: 'blur' 104 | } 105 | return result(obj, msg, trg) 106 | }, 107 | //移动电话 108 | mobilePhone(msg, trg) { 109 | let obj = { 110 | pattern: /^1[34578]\d{9}$/, 111 | message: '手机号码格式错误', 112 | trigger: 'blur' 113 | } 114 | return result(obj, msg, trg) 115 | }, 116 | mobile(msg, trg) { 117 | let obj = { 118 | pattern: /^13[0-9]{9}|15[012356789][0-9]{8}|18[0256789][0-9]{8}|147[0-9]{8}$/, 119 | message: '手机号码格式错误', 120 | trigger: 'blur' 121 | } 122 | return result(obj, msg, trg) 123 | }, 124 | //邮政编码 125 | postalCode(msg, trg) { 126 | let obj = { 127 | pattern: /^[1-9]{1}(\d+){5}$/, 128 | message: '邮政编码格式错误', 129 | trigger: 'blur' 130 | } 131 | return result(obj, msg, trg) 132 | }, 133 | 134 | //汉字 135 | chineseVerify(msg, trg) { 136 | let obj = { 137 | pattern: /^[\u4e00-\u9fa5]+$/, 138 | message: '汉字格式错误', 139 | trigger: 'blur' 140 | } 141 | return result(obj, msg, trg) 142 | }, 143 | 144 | //英文 145 | englishVerify(msg, trg) { 146 | let obj = { 147 | pattern: /^[a-zA-Z]+$/, 148 | message: '英文格式错误', 149 | trigger: 'blur' 150 | } 151 | return result(obj, msg, trg) 152 | }, 153 | //特殊字符 154 | commonWord(msg, trg) { 155 | let obj = { 156 | pattern: /^[a-zA-z_\+\-\*/=!@#$%^&:;'",\.<>\?\|\\:“‘;,。?!¥《》~`·…—{}\[\]\d\(\)\u4E00-\u9FA5 \n]*$/, 157 | message: '不允许输入特殊字符', 158 | trigger: 'blur' 159 | } 160 | return result(obj, msg, trg) 161 | }, 162 | //小数 int>0, flo>=0 163 | float(int, flo, msg, trg) { 164 | let regstr = 165 | '^\\-?(([1-9]\\d{0,' + (int - 1) + '})|0)(\\.\\d{0,' + flo + '})?$' 166 | let reg = new RegExp(regstr) 167 | let obj = { 168 | pattern: reg, 169 | message: '输入不合法', 170 | trigger: 'blur' 171 | } 172 | return result(obj, msg, trg) 173 | }, 174 | //非负小数 int>0, flo>=0 175 | usFloat(int, flo, msg, trg) { 176 | let regstr = '^(([1-9]\\d{0,' + (int - 1) + '})|0)(\\.\\d{0,' + flo + '})?$' 177 | let reg = new RegExp(regstr) 178 | let obj = { 179 | pattern: reg, 180 | message: '输入不合法', 181 | trigger: 'blur' 182 | } 183 | return result(obj, msg, trg) 184 | }, 185 | //大于0的数 186 | plusFloat(int, flo, msg, trg) { 187 | let regstr = 188 | '^(([1-9]\\d{0,' + 189 | (int - 1) + 190 | '})(\\.\\d{0,' + 191 | flo + 192 | '})?)|((0)(\\.\\d{0,' + 193 | flo + 194 | '}))?$' 195 | let reg = new RegExp(regstr) 196 | let obj = { 197 | pattern: reg, 198 | message: '输入不合法', 199 | trigger: 'blur' 200 | } 201 | return result(obj, msg, trg) 202 | }, 203 | //整数 int>0 204 | int(int, msg, trg) { 205 | let regstr = '^\\-?(([1-9]\\d{0,' + (int - 1) + '})|0)$' 206 | let reg = new RegExp(regstr) 207 | let obj = { 208 | pattern: reg, 209 | message: '输入不合法', 210 | trigger: 'blur' 211 | } 212 | return result(obj, msg, trg) 213 | }, 214 | //非负整数 int>0 215 | usInt(int, msg, trg) { 216 | let regstr = '^(([1-9]\\d{0,' + (int - 1) + '})|0)$' 217 | let reg = new RegExp(regstr) 218 | let obj = { 219 | pattern: reg, 220 | message: '输入不合法', 221 | trigger: 'blur' 222 | } 223 | return result(obj, msg, trg) 224 | }, 225 | //正整数 int>0 226 | plusInt(int, msg, trg) { 227 | let regstr = '^[1-9]\\d{0,' + (int - 1) + '}$' 228 | let reg = new RegExp(regstr) 229 | let obj = { 230 | pattern: reg, 231 | message: '输入不合法', 232 | trigger: 'blur' 233 | } 234 | return result(obj, msg, trg) 235 | }, 236 | //身份证 237 | idNumber(trg) { 238 | let obj = { 239 | validator: idNumberValidator, 240 | trigger: 'blur' 241 | } 242 | return result(obj, null, trg) 243 | }, 244 | //护照 245 | passportNbr(str) { 246 | return /^(^[a-zA-Z0-9]{5,17}$)|(^1[45][0-9]{7}|([P|p|S|s]\\d{7})|([S|s|G|g]\\d{8})|([Gg|Tt|Ss|Ll|Qq|Dd|Aa|Ff]\\d{8})|([H|h|M|m]\\d{8,10})$)/.test( 247 | str 248 | ) 249 | }, 250 | //驾驶证 251 | driverLience(str) { 252 | return /^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}(\d|x|X)$/.test( 253 | str 254 | ) 255 | }, 256 | //同时验证手机号码和固定电话 257 | number(msg, trg) { 258 | let obj = { 259 | pattern: /^((0\d{2,3}-\d{7,8})|(1[3584]\d{9}))$/, 260 | message: '手机号码或固定电话格式不对,请重新输入!', 261 | trigger: 'blur' 262 | } 263 | return result(obj, msg, trg) 264 | }, 265 | //编号 266 | num(msg, trg) { 267 | let obj = { 268 | pattern: /^[0-9]+$/, 269 | message: '编号只允许输入数字', 270 | trigger: 'blur' 271 | } 272 | return result(obj, msg, trg) 273 | }, 274 | //自定义正则 275 | pattern(pat, msg, trg) { 276 | let obj = { 277 | pattern: pat, 278 | message: '输入不合法', 279 | trigger: 'blur' 280 | } 281 | return result(obj, msg, trg) 282 | }, 283 | //自定义方法 284 | validator(fun, trg) { 285 | let obj = { 286 | validator: fun, 287 | trigger: 'blur' 288 | } 289 | return result(obj, null, trg) 290 | }, 291 | //手机号码 292 | telephone(msg, trg) { 293 | let obj = { 294 | pattern: /^1[0-9]{10}$/, 295 | message: '手机号码格式错误', 296 | trigger: 'blur' 297 | } 298 | return result(obj, msg, trg) 299 | } 300 | } 301 | -------------------------------------------------------------------------------- /追书神器11.19/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 | show:false, 10 | num:1, 11 | bookId:"", 12 | bookSourceId:"", 13 | bookCatalogList:[], 14 | idx:[], 15 | bookcase:[], 16 | bookcasearr:[], 17 | 18 | }, 19 | mutations: { 20 | addcase(state,bcase) { 21 | var flag=false 22 | console.log(state.bookcase,"pppppppppppppppppppp") 23 | // state.bookcase.push("ppp") 24 | state.bookcase.forEach((item,indx)=>{ 25 | if(item._id==bcase._id){ 26 | // state.bookcase.push("bcase") 27 | console.log(1) 28 | item.idx=bcase.idx 29 | flag=true 30 | } 31 | }) 32 | if (flag==false){ 33 | state.bookcase.push(bcase) 34 | } 35 | console.log(state.bookcase,"sdsadsadsad") 36 | 37 | // state.bookcase.push(bcase) 38 | 39 | 40 | }, 41 | 42 | getIdx (state,objidx) { 43 | var flag = false 44 | state.idx.forEach((item,index)=>{ 45 | if(item.objbookId=objidx.objbookId){ 46 | item.objidx =objidx.objidx; 47 | flag=true 48 | } 49 | }) 50 | if (flag == false) { 51 | state.idx.push(objidx) 52 | } 53 | 54 | }, 55 | 56 | getBookId (state,Id) { 57 | state.bookId=Id 58 | 59 | }, 60 | getBookSourceId (state,Id) { 61 | state.bookSourceId=Id 62 | 63 | }, 64 | getBookCatalogList(state,List) { 65 | state.bookCatalogList=List 66 | 67 | }, 68 | setShow(state,e){ 69 | state.show=e 70 | } 71 | }, 72 | actions: { 73 | }, 74 | modules: { 75 | }, 76 | plugins: [createPersistedState()] //加上这个就可以了 77 | }) 78 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/BookCity.vue: -------------------------------------------------------------------------------- 1 | 234 | 235 | 415 | 437 | 438 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/BookCity/booklist/BookList.vue: -------------------------------------------------------------------------------- 1 | 61 | 217 | 263 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/BookCity/booklist/BookListDetails.vue: -------------------------------------------------------------------------------- 1 | 59 | 60 | 202 | 203 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/Bookcase.vue: -------------------------------------------------------------------------------- 1 | 23 | 54 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/Finding.vue: -------------------------------------------------------------------------------- 1 | 72 | 162 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/PersonalCenter/Feedback.vue: -------------------------------------------------------------------------------- 1 | 38 | 42 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/PersonalCenter/Login.vue: -------------------------------------------------------------------------------- 1 | 46 | 162 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/PersonalCenter/PersonalCenter.vue: -------------------------------------------------------------------------------- 1 | 152 | 179 | 180 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/PersonalCenter/Setting.vue: -------------------------------------------------------------------------------- 1 | 60 | 113 | 152 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/classification copy/bookinfo3.vue: -------------------------------------------------------------------------------- 1 | 13 | 15 | 143 | 144 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/classification copy/femaleclass.vue: -------------------------------------------------------------------------------- 1 | 55 | 56 | 198 | 199 | 260 | 261 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/classification copy/maleclass.vue: -------------------------------------------------------------------------------- 1 | 50 | 51 | 192 | 193 | 254 | 255 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/classification copy/pictureclass.vue: -------------------------------------------------------------------------------- 1 | 50 | 51 | 192 | 193 | 254 | 255 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/classification copy/pressclass.vue: -------------------------------------------------------------------------------- 1 | 50 | 51 | 192 | 193 | 254 | 255 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/classification.vue: -------------------------------------------------------------------------------- 1 | 2 | 88 | 89 | 90 | 91 | 158 | 159 | 160 | 161 | 211 | 212 | 213 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/classification/bookinfo3.vue: -------------------------------------------------------------------------------- 1 | 13 | 15 | 143 | 144 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/classification/femaleclass.vue: -------------------------------------------------------------------------------- 1 | 50 | 51 | 192 | 193 | 254 | 255 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/classification/maleclass.vue: -------------------------------------------------------------------------------- 1 | 50 | 51 | 192 | 193 | 254 | 255 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/classification/pictureclass.vue: -------------------------------------------------------------------------------- 1 | 50 | 51 | 192 | 193 | 254 | 255 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/classification/pressclass.vue: -------------------------------------------------------------------------------- 1 | 50 | 51 | 192 | 193 | 254 | 255 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/ranking.vue: -------------------------------------------------------------------------------- 1 | 160 | 235 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/read/Catalog.vue: -------------------------------------------------------------------------------- 1 | 8 | 14 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/read/read.vue: -------------------------------------------------------------------------------- 1 | 112 | 113 | 309 | -------------------------------------------------------------------------------- /追书神器11.19/src/views/search.vue: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /追书神器11.19/vue.config.js: -------------------------------------------------------------------------------- 1 | 2 | //官网配置: https://cli.vuejs.org/zh/config/#filenamehashing 3 | 4 | const path = require('path'); 5 | const debug = process.env.NODE_ENV !== 'production' 6 | 7 | module.exports = { 8 | //部署应用包时的基本URL,如果是生产环境,部署到 /cli-study/dist 路径;如果是开发环境,部署到根路径 9 | publicPath: process.env.NODE_ENV === 'production' 10 | ? '/cli-study/dist' 11 | : '/', 12 | //输出文件路径 13 | outputDir: 'dist', 14 | //放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录。 15 | assetsDir: 'static', 16 | //默认情况下,生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存 17 | filenameHashing: true, 18 | 19 | //多页面配置(单页面应用下无需配置) 20 | /* pages: { 21 | index: { 22 | // page 的入口 23 | entry: 'src/index/main.js', 24 | // 模板来源 25 | template: 'public/index.html', 26 | // 在 dist/index.html 的输出 27 | filename: 'index.html', 28 | // 当使用 title 选项时, 29 | // template 中的 title 标签需要是 <%= htmlWebpackPlugin.options.title %> 30 | title: 'Index Page', 31 | // 在这个页面中包含的块,默认情况下会包含 32 | // 提取出来的通用 chunk 和 vendor chunk。 33 | //chunk参考:https://segmentfault.com/q/1010000016925412/a-1020000016946034 34 | chunks: ['chunk-vendors', 'chunk-common', 'index'] 35 | } 36 | },*/ 37 | 38 | // eslint-loader 是否在保存的时候检查 39 | lintOnSave: false, 40 | // 是否使用包含运行时编译器的Vue构建版本,设置为 true 后你就可以在 Vue 组件中使用 template 选项了,但是这会让你的应用额外增加 10kb 左右。 41 | runtimeCompiler: true, 42 | // 默认情况下 babel-loader 会忽略所有 node_modules 中的文件。如果你想要通过 Babel 显式转译一个依赖,可以在这个选项中列出来。 43 | transpileDependencies: [], 44 | // 生产环境不需要sourceMap 45 | productionSourceMap: false, 46 | 47 | // 官网:https://cli.vuejs.org/zh/guide/webpack.html#%E7%AE%80%E5%8D%95%E7%9A%84%E9%85%8D%E7%BD%AE%E6%96%B9%E5%BC%8F 48 | // 更多配置参考:https://www.jb51.net/article/150844.htm 49 | configureWebpack: config => { 50 | if (debug) { 51 | // 开发环境配置 52 | // sourcemap 参考:https://www.cnblogs.com/hhhyaaon/p/5657469.html 53 | config.devtool = '#cheap-module-eval-source-map' 54 | } 55 | else { // 生产环境配置 56 | } 57 | Object.assign(config, { // 开发生产共同配置 58 | resolve: { 59 | alias: { 60 | '@': path.resolve(__dirname, './src'), 61 | 'vue$': 'vue/dist/vue.esm.js' 62 | } 63 | } 64 | }) 65 | }, 66 | 67 | // webpack的链式操作,允许对内部的 webpack 配置进行更细粒度的修改 68 | // 参考: https://cli.vuejs.org/zh/guide/webpack.html#%E9%93%BE%E5%BC%8F%E6%93%8D%E4%BD%9C-%E9%AB%98%E7%BA%A7 69 | chainWebpack: (config) => { 70 | if (debug) { 71 | // 本地开发配置 72 | } 73 | else { 74 | // 生产开发配置 75 | } 76 | }, 77 | 78 | // css的相关配置 79 | css: { 80 | // 默认情况下,只有 *.module.[ext] 结尾的文件才会被视作 CSS Modules 模块。设置为 true 后你就可以去掉文件名中的 . 81 | // module 并将所有的 *.(css|scss|sass|less|styl(us)?) 文件视为 CSS Modules 模块。 82 | modules: false, 83 | // 是否将组件中的 CSS 提取至一个独立的 CSS 文件中 (而不是动态注入到 JavaScript 中的 inline 代码)。 84 | extract: true, 85 | // 是否构建样式地图,false 将提高构建速度 86 | sourceMap: false, 87 | // css预设器配置项 88 | loaderOptions: { 89 | css: { 90 | //这里的选项会传递给 css-loader 91 | }, 92 | postcss: { 93 | // 这里的选项会传递给 postcss-loader 94 | } 95 | } 96 | }, 97 | //所有 webpack-dev-server 的选项都支持 98 | devServer: { 99 | open: true, 100 | host: '127.0.0.1', 101 | port: 3000, 102 | https: false, 103 | hotOnly: false, 104 | proxy: { 105 | //凡是请求以api开头的都会使用下面的代理服务器 106 | '/api/*': { 107 | target: 'https://novel.juhe.im/', // 目标服务器地址 108 | secure: false, // 目标服务器地址是否是安全协议 109 | changeOrigin: true, // 是否修改来源, 为true时会让目标服务器以为是webpack-dev-server发出的请求!服务端和服务端的请求是没有跨域的 110 | //pathRewrite: {'^/api': '/a'} // 将/api开头的请求地址, /api 改为 /, 即 /api/xx 改为 /xx 111 | }, 112 | '/booklists':{ 113 | target: 'https://novel.juhe.im/', // 目标服务器地址 114 | secure: false, // 目标服务器地址是否是安全协议 115 | changeOrigin: true, 116 | } 117 | } 118 | }, 119 | // 第三方插件配置 120 | pluginOptions: {} 121 | }; --------------------------------------------------------------------------------