├── src ├── libs │ ├── icons.js │ ├── bus.js │ ├── BMap.js │ ├── iviewTool.js │ ├── elementTool.js │ ├── password_regexp.js │ ├── tools.js │ └── coversionPoint.js ├── assets │ ├── logo.png │ └── carimg │ │ ├── sf.png │ │ ├── load.gif │ │ ├── logo.png │ │ ├── logo2.png │ │ ├── 1552881955657.jpg │ │ ├── 1552882300675.jpg │ │ ├── app.1969d960.png │ │ ├── car1.01eb86f8.png │ │ ├── car2.4286778f.png │ │ ├── car3.b2f7e8e6.png │ │ ├── car4.91dccff8.png │ │ ├── car5.eae72ca1.png │ │ ├── car6.6c1551c2.png │ │ ├── car7.4cdd553d.png │ │ ├── car8.bd8a4b18.png │ │ ├── car9.71fbe309.png │ │ ├── luyi.81be19be.jpg │ │ ├── banner.c5e07275.jpg │ │ ├── owner02.3d770358.jpg │ │ ├── owner03.29ad19bc.jpg │ │ ├── owner04.40705290.jpg │ │ ├── owner05.335a919e.jpg │ │ ├── story1.17c61c0b.png │ │ ├── story2.31bf03b4.png │ │ ├── story3.81130e7d.png │ │ ├── caoqitai.8fb8692e.jpg │ │ ├── chenglei.47246153.jpg │ │ ├── panshiyi.a681c060.jpg │ │ ├── rentway1.b5621f1a.png │ │ ├── rentway2.e61c20e7.png │ │ ├── rentway3.15796cae.png │ │ ├── become-back.a82c677d.jpg │ │ ├── caizhisong.dff3bcfc.jpg │ │ ├── image-panel1.885fbac7.png │ │ ├── image-panel2.33387385.png │ │ ├── image-panel3.0c271272.png │ │ ├── image-panel4.3c6985bf.png │ │ ├── jiangyiyan.ccfd2a68.jpg │ │ ├── liuqingyang.d6560643.jpg │ │ ├── owner_text01.15be5b89.png │ │ ├── owner_text02.67df3827.png │ │ ├── point-three.a782973d.png │ │ ├── signup-back.a22bc70d.jpg │ │ ├── xuxiaoping.94c6ae75.jpg │ │ ├── zhangliangying.3e0eb35a.jpg │ │ └── zhangliangying_s.714c7189.jpg ├── views │ ├── interlayer │ │ └── interlayer.js │ ├── user_message │ │ ├── balanceEnquiry.vue │ │ ├── userinfo.vue │ │ ├── message_main.vue │ │ ├── userChangePassword.vue │ │ └── ownerOrderInformation.vue │ ├── backstage │ │ ├── audit │ │ │ ├── audit.vue │ │ │ └── auditcar.vue │ │ ├── order │ │ │ ├── changeCar.vue │ │ │ └── disposeCar.vue │ │ ├── car_assessment │ │ │ ├── delete_assessment.vue │ │ │ ├── add_assessment.vue │ │ │ └── update_assessment.vue │ │ ├── backmain.vue │ │ ├── carrental │ │ │ ├── delete_carrental.vue │ │ │ ├── update_carrental.vue │ │ │ └── add_carrental.vue │ │ └── ownercaraudit │ │ │ └── ownercaraudit.vue │ ├── ownerManagement │ │ ├── owner_main.vue │ │ └── state_management.vue │ ├── home │ │ └── home.vue │ ├── main │ │ ├── collect.vue │ │ ├── main.vue │ │ ├── carRental.vue │ │ └── owner.vue │ ├── login │ │ └── login.vue │ └── register │ │ └── register.vue ├── App.vue ├── components │ └── footer.vue ├── main.js └── router │ └── index.js ├── static ├── .gitkeep ├── favicon.ico └── img │ ├── logo.png │ ├── logo2.png │ ├── timg.jpg │ ├── 1552881955657.jpg │ ├── 1552882300675.jpg │ ├── car1.01eb86f8.png │ ├── car2.4286778f.png │ ├── car3.b2f7e8e6.png │ ├── car4.91dccff8.png │ ├── car5.eae72ca1.png │ ├── car6.6c1551c2.png │ ├── luyi.81be19be.jpg │ ├── story1.17c61c0b.png │ ├── story2.31bf03b4.png │ ├── story3.81130e7d.png │ ├── caoqitai.8fb8692e.jpg │ ├── chenglei.47246153.jpg │ ├── panshiyi.a681c060.jpg │ ├── become-back.a82c677d.jpg │ ├── caizhisong.dff3bcfc.jpg │ ├── jiangyiyan.ccfd2a68.jpg │ ├── liuqingyang.d6560643.jpg │ ├── xuxiaoping.94c6ae75.jpg │ ├── image-panel1.885fbac7.png │ ├── image-panel2.33387385.png │ ├── image-panel3.0c271272.png │ ├── image-panel4.3c6985bf.png │ ├── zhangliangying.3e0eb35a.jpg │ ├── zhangliangying_s.714c7189.jpg │ ├── 717c50ce5dc7655311f37c47242c7a7e.jpg │ └── aa28feb20b07799fc7335cfc68e0971f.jpg ├── config ├── prod.env.js ├── dev.env.js └── index.js ├── .editorconfig ├── .gitignore ├── .babelrc ├── .postcssrc.js ├── index.html ├── README.md ├── package.json └── nginx.conf /src/libs/icons.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /static/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/libs/bus.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | export default new Vue -------------------------------------------------------------------------------- /config/prod.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | module.exports = { 3 | NODE_ENV: '"production"' 4 | } 5 | -------------------------------------------------------------------------------- /static/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/favicon.ico -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/logo.png -------------------------------------------------------------------------------- /static/img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/logo.png -------------------------------------------------------------------------------- /static/img/logo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/logo2.png -------------------------------------------------------------------------------- /static/img/timg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/timg.jpg -------------------------------------------------------------------------------- /src/assets/carimg/sf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/sf.png -------------------------------------------------------------------------------- /src/assets/carimg/load.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/load.gif -------------------------------------------------------------------------------- /src/assets/carimg/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/logo.png -------------------------------------------------------------------------------- /src/assets/carimg/logo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/logo2.png -------------------------------------------------------------------------------- /static/img/1552881955657.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/1552881955657.jpg -------------------------------------------------------------------------------- /static/img/1552882300675.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/1552882300675.jpg -------------------------------------------------------------------------------- /static/img/car1.01eb86f8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/car1.01eb86f8.png -------------------------------------------------------------------------------- /static/img/car2.4286778f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/car2.4286778f.png -------------------------------------------------------------------------------- /static/img/car3.b2f7e8e6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/car3.b2f7e8e6.png -------------------------------------------------------------------------------- /static/img/car4.91dccff8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/car4.91dccff8.png -------------------------------------------------------------------------------- /static/img/car5.eae72ca1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/car5.eae72ca1.png -------------------------------------------------------------------------------- /static/img/car6.6c1551c2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/car6.6c1551c2.png -------------------------------------------------------------------------------- /static/img/luyi.81be19be.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/luyi.81be19be.jpg -------------------------------------------------------------------------------- /src/views/interlayer/interlayer.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | let interlayer = new Vue() 3 | export default interlayer 4 | -------------------------------------------------------------------------------- /static/img/story1.17c61c0b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/story1.17c61c0b.png -------------------------------------------------------------------------------- /static/img/story2.31bf03b4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/story2.31bf03b4.png -------------------------------------------------------------------------------- /static/img/story3.81130e7d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/story3.81130e7d.png -------------------------------------------------------------------------------- /static/img/caoqitai.8fb8692e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/caoqitai.8fb8692e.jpg -------------------------------------------------------------------------------- /static/img/chenglei.47246153.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/chenglei.47246153.jpg -------------------------------------------------------------------------------- /static/img/panshiyi.a681c060.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/panshiyi.a681c060.jpg -------------------------------------------------------------------------------- /src/assets/carimg/1552881955657.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/1552881955657.jpg -------------------------------------------------------------------------------- /src/assets/carimg/1552882300675.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/1552882300675.jpg -------------------------------------------------------------------------------- /src/assets/carimg/app.1969d960.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/app.1969d960.png -------------------------------------------------------------------------------- /src/assets/carimg/car1.01eb86f8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/car1.01eb86f8.png -------------------------------------------------------------------------------- /src/assets/carimg/car2.4286778f.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/car2.4286778f.png -------------------------------------------------------------------------------- /src/assets/carimg/car3.b2f7e8e6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/car3.b2f7e8e6.png -------------------------------------------------------------------------------- /src/assets/carimg/car4.91dccff8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/car4.91dccff8.png -------------------------------------------------------------------------------- /src/assets/carimg/car5.eae72ca1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/car5.eae72ca1.png -------------------------------------------------------------------------------- /src/assets/carimg/car6.6c1551c2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/car6.6c1551c2.png -------------------------------------------------------------------------------- /src/assets/carimg/car7.4cdd553d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/car7.4cdd553d.png -------------------------------------------------------------------------------- /src/assets/carimg/car8.bd8a4b18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/car8.bd8a4b18.png -------------------------------------------------------------------------------- /src/assets/carimg/car9.71fbe309.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/car9.71fbe309.png -------------------------------------------------------------------------------- /src/assets/carimg/luyi.81be19be.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/luyi.81be19be.jpg -------------------------------------------------------------------------------- /src/libs/BMap.js: -------------------------------------------------------------------------------- 1 | function Map(key,object){ 2 | const url = `http://api.map.baidu.com/api?v=3.0&ak=${key}&callback=init`; 3 | } -------------------------------------------------------------------------------- /static/img/become-back.a82c677d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/become-back.a82c677d.jpg -------------------------------------------------------------------------------- /static/img/caizhisong.dff3bcfc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/caizhisong.dff3bcfc.jpg -------------------------------------------------------------------------------- /static/img/jiangyiyan.ccfd2a68.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/jiangyiyan.ccfd2a68.jpg -------------------------------------------------------------------------------- /static/img/liuqingyang.d6560643.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/liuqingyang.d6560643.jpg -------------------------------------------------------------------------------- /static/img/xuxiaoping.94c6ae75.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/xuxiaoping.94c6ae75.jpg -------------------------------------------------------------------------------- /src/assets/carimg/banner.c5e07275.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/banner.c5e07275.jpg -------------------------------------------------------------------------------- /src/assets/carimg/owner02.3d770358.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/owner02.3d770358.jpg -------------------------------------------------------------------------------- /src/assets/carimg/owner03.29ad19bc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/owner03.29ad19bc.jpg -------------------------------------------------------------------------------- /src/assets/carimg/owner04.40705290.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/owner04.40705290.jpg -------------------------------------------------------------------------------- /src/assets/carimg/owner05.335a919e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/owner05.335a919e.jpg -------------------------------------------------------------------------------- /src/assets/carimg/story1.17c61c0b.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/story1.17c61c0b.png -------------------------------------------------------------------------------- /src/assets/carimg/story2.31bf03b4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/story2.31bf03b4.png -------------------------------------------------------------------------------- /src/assets/carimg/story3.81130e7d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/story3.81130e7d.png -------------------------------------------------------------------------------- /static/img/image-panel1.885fbac7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/image-panel1.885fbac7.png -------------------------------------------------------------------------------- /static/img/image-panel2.33387385.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/image-panel2.33387385.png -------------------------------------------------------------------------------- /static/img/image-panel3.0c271272.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/image-panel3.0c271272.png -------------------------------------------------------------------------------- /static/img/image-panel4.3c6985bf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/image-panel4.3c6985bf.png -------------------------------------------------------------------------------- /static/img/zhangliangying.3e0eb35a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/zhangliangying.3e0eb35a.jpg -------------------------------------------------------------------------------- /src/assets/carimg/caoqitai.8fb8692e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/caoqitai.8fb8692e.jpg -------------------------------------------------------------------------------- /src/assets/carimg/chenglei.47246153.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/chenglei.47246153.jpg -------------------------------------------------------------------------------- /src/assets/carimg/panshiyi.a681c060.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/panshiyi.a681c060.jpg -------------------------------------------------------------------------------- /src/assets/carimg/rentway1.b5621f1a.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/rentway1.b5621f1a.png -------------------------------------------------------------------------------- /src/assets/carimg/rentway2.e61c20e7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/rentway2.e61c20e7.png -------------------------------------------------------------------------------- /src/assets/carimg/rentway3.15796cae.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/rentway3.15796cae.png -------------------------------------------------------------------------------- /static/img/zhangliangying_s.714c7189.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/zhangliangying_s.714c7189.jpg -------------------------------------------------------------------------------- /src/assets/carimg/become-back.a82c677d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/become-back.a82c677d.jpg -------------------------------------------------------------------------------- /src/assets/carimg/caizhisong.dff3bcfc.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/caizhisong.dff3bcfc.jpg -------------------------------------------------------------------------------- /src/assets/carimg/image-panel1.885fbac7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/image-panel1.885fbac7.png -------------------------------------------------------------------------------- /src/assets/carimg/image-panel2.33387385.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/image-panel2.33387385.png -------------------------------------------------------------------------------- /src/assets/carimg/image-panel3.0c271272.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/image-panel3.0c271272.png -------------------------------------------------------------------------------- /src/assets/carimg/image-panel4.3c6985bf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/image-panel4.3c6985bf.png -------------------------------------------------------------------------------- /src/assets/carimg/jiangyiyan.ccfd2a68.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/jiangyiyan.ccfd2a68.jpg -------------------------------------------------------------------------------- /src/assets/carimg/liuqingyang.d6560643.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/liuqingyang.d6560643.jpg -------------------------------------------------------------------------------- /src/assets/carimg/owner_text01.15be5b89.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/owner_text01.15be5b89.png -------------------------------------------------------------------------------- /src/assets/carimg/owner_text02.67df3827.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/owner_text02.67df3827.png -------------------------------------------------------------------------------- /src/assets/carimg/point-three.a782973d.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/point-three.a782973d.png -------------------------------------------------------------------------------- /src/assets/carimg/signup-back.a22bc70d.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/signup-back.a22bc70d.jpg -------------------------------------------------------------------------------- /src/assets/carimg/xuxiaoping.94c6ae75.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/xuxiaoping.94c6ae75.jpg -------------------------------------------------------------------------------- /src/assets/carimg/zhangliangying.3e0eb35a.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/zhangliangying.3e0eb35a.jpg -------------------------------------------------------------------------------- /src/assets/carimg/zhangliangying_s.714c7189.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/src/assets/carimg/zhangliangying_s.714c7189.jpg -------------------------------------------------------------------------------- /static/img/717c50ce5dc7655311f37c47242c7a7e.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/717c50ce5dc7655311f37c47242c7a7e.jpg -------------------------------------------------------------------------------- /static/img/aa28feb20b07799fc7335cfc68e0971f.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Roommain/CarRentalPlatform/HEAD/static/img/aa28feb20b07799fc7335cfc68e0971f.jpg -------------------------------------------------------------------------------- /config/dev.env.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | const merge = require('webpack-merge') 3 | const prodEnv = require('./prod.env') 4 | 5 | module.exports = merge(prodEnv, { 6 | NODE_ENV: '"development"' 7 | }) 8 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | root = true 2 | 3 | [*] 4 | charset = utf-8 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | insert_final_newline = true 9 | trim_trailing_whitespace = true 10 | -------------------------------------------------------------------------------- /src/libs/iviewTool.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import iview from 'iView'; 3 | Vue.use(iview); 4 | // 全局提示配置 5 | new Vue().$Message.config({ 6 | top:260, 7 | duration:1.5, 8 | closable:true 9 | }); 10 | 11 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules/ 3 | /dist/ 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Editor directories and files 9 | .idea 10 | .vscode 11 | *.suo 12 | *.ntvs* 13 | *.njsproj 14 | *.sln 15 | -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["env", { 4 | "modules": false, 5 | "targets": { 6 | "browsers": ["> 1%", "last 2 versions", "not ie <= 8"] 7 | } 8 | }], 9 | "stage-2" 10 | ], 11 | "plugins": ["transform-vue-jsx", "transform-runtime"] 12 | } 13 | -------------------------------------------------------------------------------- /.postcssrc.js: -------------------------------------------------------------------------------- 1 | // https://github.com/michael-ciniawsky/postcss-load-config 2 | 3 | module.exports = { 4 | "plugins": { 5 | "postcss-import": {}, 6 | "postcss-url": {}, 7 | // to edit target browsers: use "browserslist" field in package.json 8 | "autoprefixer": {} 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /src/libs/elementTool.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue'; 2 | import { Table, Checkbox,TableColumn,Button,Tree} from 'element-ui'; 3 | 4 | 5 | Vue.component(Table.name, Table); 6 | Vue.component(Checkbox.name, Checkbox); 7 | Vue.component(TableColumn.name, TableColumn); 8 | Vue.component(Button.name, Button); 9 | Vue.component(Tree.name, Tree); -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 易行租车—你的出行伙伴 9 | 10 | 11 | 12 |
13 | 14 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 27 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # car-rental-platform 2 | 3 | > 汽车在线租借平台 4 | 5 | ## Build Setup 6 | 7 | ``` bash 8 | # install dependencies 9 | npm install 10 | 11 | # serve with hot reload at localhost:8080 12 | npm run dev 13 | 14 | # build for production with minification 15 | npm run build 16 | 17 | # build for production and view the bundle analyzer report 18 | npm run build --report 19 | ``` 20 | ## 使用技术 21 | ``` bash 22 | # "axios": "^0.18.0", 23 | # "element-ui": "^2.6.1", 24 | # "iview": "^3.3.3", 25 | # "js-cookie": "^2.2.0", 26 | # "js-md5": "^0.7.3", 27 | # "less": "^3.9.0", 28 | # "less-loader": "^4.1.0", 29 | # "vue": "^2.5.2", 30 | # "vue-resource": "^1.5.1", 31 | # "vue-router": "^3.0.1" 32 | 33 | For a detailed explanation on how things work, check out the [guide](http://vuejs-templates.github.io/webpack/) and [docs for vue-loader](http://vuejs.github.io/vue-loader). 34 | -------------------------------------------------------------------------------- /src/libs/password_regexp.js: -------------------------------------------------------------------------------- 1 | const rule = { 2 | /** 3 | * 验证密码强度,-1位不合格,1为最低,依次递增 4 | * @param {string,number} value 密码 5 | */ 6 | strength (value) { 7 | if (!value) { 8 | return; 9 | } 10 | var strengthCount = 0; 11 | if (/[a-zA-Z]/.test(value)) { 12 | strengthCount++; 13 | } 14 | if (/[0-9]/.test(value)) { 15 | strengthCount++; 16 | } 17 | if (/[`~!@#$%^&*()_+<>?:"{},./;'[\]\\ ]/g.test(value)) { 18 | strengthCount++; 19 | } 20 | if (value.length < 6 || value.length > 30) { 21 | strengthCount = -1; 22 | } 23 | return strengthCount; 24 | }, 25 | /** 26 | * 清除不匹配的字符,必须传入event事件,规则不传则默认清除特殊字符 27 | * 如果该数据绑定v-model则无效 28 | * @param {string,number} e 密码 29 | * *@param {RegExp} regExp 正则 30 | */ 31 | replaceStr(e, regExp) { 32 | var regexpStr = regExp || /[`~!@#$%^&*()_+<>?:"{}\\,\s.\ /,'[\]]/g; 33 | e.target.value = e.target.value.replace(regexpStr, ''); 34 | return this; 35 | } 36 | }; 37 | 38 | export default rule; 39 | 40 | 41 | 42 | 43 | -------------------------------------------------------------------------------- /src/components/footer.vue: -------------------------------------------------------------------------------- 1 | 21 | 22 | 36 | 37 | 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /src/main.js: -------------------------------------------------------------------------------- 1 | // The Vue build version to load with the `import` command 2 | // (runtime-only or standalone) has been set in webpack.base.conf with an alias. 3 | import Vue from 'vue' 4 | import App from './App' 5 | import router from './router' 6 | import axios from 'axios' //引入axios 7 | import VueResource from 'vue-resource' 8 | import Cookies from 'js-cookie' 9 | import iView from 'iview' 10 | import 'iview/dist/styles/iview.css' 11 | import rule from './libs/password_regexp';//引入密码验证强弱 12 | import ElementUI from 'element-ui'; 13 | import 'element-ui/lib/theme-chalk/index.css'; 14 | 15 | Vue.config.productionTip = false 16 | Vue.prototype.$axios = axios //把axios添加到vue原型 17 | Vue.prototype.$cookie = Cookies;//cookie操作 18 | Vue.use(VueResource) 19 | Vue.use(ElementUI) 20 | Vue.use(iView) 21 | Vue.prototype.$rule = rule; //统一验证规则 22 | 23 | /* eslint-disable no-new */ 24 | new Vue({ 25 | el: '#app', 26 | router, 27 | components: { App }, 28 | template: '' 29 | }) 30 | 31 | // 32 | // 33 | // _oo0oo_ 34 | // o8888888o 35 | // 88" . "88 36 | // (| -_- |) 37 | // 0\ = /0 38 | // ___/`---'\___ 39 | // .' \\| |// '. 40 | // / \\||| : |||// \ 41 | // / _||||| -:- |||||- \ 42 | // | | \\\ - /// | | 43 | // | \_| ''\---/'' |_/ | 44 | // \ .-\__ '-' ___/-. / 45 | // ___'. .' /--.--\ `. .'___ 46 | // ."" '< `.___\_<|>_/___.' >' "". 47 | // | | : `- \`.;`\ _ /`;.`/ - ` : | | 48 | // \ \ `_. \_ __\ /__ _/ .-` / / 49 | // =====`-.____`.___ \_____/___.-`___.-'===== 50 | // `=---=' 51 | // 52 | // 53 | // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 54 | // 55 | // 佛祖保佑 永无BUG 56 | // 57 | // -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "car-rental-platform", 3 | "version": "1.0.0", 4 | "description": "A Vue.js project", 5 | "author": "Roommain <1182930079@qq.com>", 6 | "private": true, 7 | "scripts": { 8 | "dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js", 9 | "start": "npm run dev", 10 | "build": "node build/build.js" 11 | }, 12 | "dependencies": { 13 | "axios": "^0.18.0", 14 | "element-ui": "^2.6.1", 15 | "iview": "^3.3.3", 16 | "js-cookie": "^2.2.0", 17 | "js-md5": "^0.7.3", 18 | "less": "^3.9.0", 19 | "less-loader": "^4.1.0", 20 | "vue": "^2.5.2", 21 | "vue-resource": "^1.5.1", 22 | "vue-router": "^3.0.1" 23 | }, 24 | "devDependencies": { 25 | "autoprefixer": "^7.1.2", 26 | "babel-core": "^6.22.1", 27 | "babel-helper-vue-jsx-merge-props": "^2.0.3", 28 | "babel-loader": "^7.1.1", 29 | "babel-plugin-syntax-jsx": "^6.18.0", 30 | "babel-plugin-transform-runtime": "^6.22.0", 31 | "babel-plugin-transform-vue-jsx": "^3.5.0", 32 | "babel-preset-env": "^1.3.2", 33 | "babel-preset-stage-2": "^6.22.0", 34 | "chalk": "^2.0.1", 35 | "copy-webpack-plugin": "^4.0.1", 36 | "css-loader": "^0.28.0", 37 | "extract-text-webpack-plugin": "^3.0.0", 38 | "file-loader": "^1.1.4", 39 | "friendly-errors-webpack-plugin": "^1.6.1", 40 | "html-webpack-plugin": "^2.30.1", 41 | "node-notifier": "^5.1.2", 42 | "optimize-css-assets-webpack-plugin": "^3.2.0", 43 | "ora": "^1.2.0", 44 | "portfinder": "^1.0.13", 45 | "postcss-import": "^11.0.0", 46 | "postcss-loader": "^2.0.8", 47 | "postcss-url": "^7.2.1", 48 | "rimraf": "^2.6.0", 49 | "semver": "^5.3.0", 50 | "shelljs": "^0.7.6", 51 | "uglifyjs-webpack-plugin": "^1.1.1", 52 | "url-loader": "^0.5.8", 53 | "vue-loader": "^13.3.0", 54 | "vue-style-loader": "^3.0.1", 55 | "vue-template-compiler": "^2.5.2", 56 | "webpack": "^3.6.0", 57 | "webpack-bundle-analyzer": "^2.9.0", 58 | "webpack-dev-server": "^2.9.1", 59 | "webpack-merge": "^4.1.0" 60 | }, 61 | "engines": { 62 | "node": ">= 6.0.0", 63 | "npm": ">= 3.0.0" 64 | }, 65 | "browserslist": [ 66 | "> 1%", 67 | "last 2 versions", 68 | "not ie <= 8" 69 | ] 70 | } 71 | -------------------------------------------------------------------------------- /config/index.js: -------------------------------------------------------------------------------- 1 | 'use strict' 2 | // Template version: 1.3.1 3 | // see http://vuejs-templates.github.io/webpack for documentation. 4 | 5 | const path = require('path') 6 | 7 | module.exports = { 8 | dev: { 9 | 10 | // Paths 11 | assetsSubDirectory: 'static', 12 | assetsPublicPath: '/', 13 | proxyTable: { 14 | '/api': { 15 | target: 'http://39.108.253.80:1125', //目标接口域名 16 | changeOrigin: true, //是否跨域 17 | pathRewrite: { 18 | '^/api': '/' //重写接口 19 | } 20 | }, 21 | }, 22 | 23 | // Various Dev Server settings 24 | host: 'localhost', // can be overwritten by process.env.HOST 25 | port: 9090, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined 26 | autoOpenBrowser: true, 27 | errorOverlay: true, 28 | notifyOnErrors: true, 29 | poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions- 30 | 31 | 32 | /** 33 | * Source Maps 34 | */ 35 | 36 | // https://webpack.js.org/configuration/devtool/#development 37 | devtool: 'cheap-module-eval-source-map', 38 | 39 | // If you have problems debugging vue-files in devtools, 40 | // set this to false - it *may* help 41 | // https://vue-loader.vuejs.org/en/options.html#cachebusting 42 | cacheBusting: true, 43 | 44 | cssSourceMap: true 45 | }, 46 | 47 | build: { 48 | // Template for index.html 49 | index: path.resolve(__dirname, '../dist/index.html'), 50 | 51 | // Paths 52 | assetsRoot: path.resolve(__dirname, '../dist'), 53 | assetsSubDirectory: 'static', 54 | assetsPublicPath: './', 55 | 56 | /** 57 | * Source Maps 58 | */ 59 | 60 | productionSourceMap: true, 61 | // https://webpack.js.org/configuration/devtool/#production 62 | devtool: '#source-map', 63 | 64 | // Gzip off by default as many popular static hosts such as 65 | // Surge or Netlify already gzip all static assets for you. 66 | // Before setting to `true`, make sure to: 67 | // npm install --save-dev compression-webpack-plugin 68 | productionGzip: false, 69 | productionGzipExtensions: ['js', 'css'], 70 | 71 | // Run the build command with an extra argument to 72 | // View the bundle analyzer report after build finishes: 73 | // `npm run build --report` 74 | // Set to `true` or `false` to always turn it on or off 75 | bundleAnalyzerReport: process.env.npm_config_report 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /src/views/user_message/balanceEnquiry.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 84 | 85 | -------------------------------------------------------------------------------- /src/views/backstage/audit/audit.vue: -------------------------------------------------------------------------------- 1 | 24 | 70 | 71 | -------------------------------------------------------------------------------- /src/views/backstage/audit/auditcar.vue: -------------------------------------------------------------------------------- 1 | 24 | 25 | 71 | 72 | -------------------------------------------------------------------------------- /src/views/ownerManagement/owner_main.vue: -------------------------------------------------------------------------------- 1 | 26 | 27 | 62 | 63 | 120 | 121 | -------------------------------------------------------------------------------- /nginx.conf: -------------------------------------------------------------------------------- 1 | # For more information on configuration, see: 2 | # * Official English Documentation: http://nginx.org/en/docs/ 3 | # * Official Russian Documentation: http://nginx.org/ru/docs/ 4 | 5 | user nginx; 6 | worker_processes auto; 7 | error_log /var/log/nginx/error.log; 8 | pid /run/nginx.pid; 9 | 10 | # Load dynamic modules. See /usr/share/nginx/README.dynamic. 11 | include /usr/share/nginx/modules/*.conf; 12 | 13 | events { 14 | worker_connections 1024; 15 | } 16 | 17 | http { 18 | log_format main '$remote_addr - $remote_user [$time_local] "$request" ' 19 | '$status $body_bytes_sent "$http_referer" ' 20 | '"$http_user_agent" "$http_x_forwarded_for"'; 21 | 22 | access_log /var/log/nginx/access.log main; 23 | 24 | sendfile on; 25 | tcp_nopush on; 26 | tcp_nodelay on; 27 | keepalive_timeout 65; 28 | types_hash_max_size 2048; 29 | 30 | include /etc/nginx/mime.types; 31 | default_type application/octet-stream; 32 | 33 | # Load modular configuration files from the /etc/nginx/conf.d directory. 34 | # See http://nginx.org/en/docs/ngx_core_module.html#include 35 | # for more information. 36 | include /etc/nginx/conf.d/*.conf; 37 | 38 | server { 39 | listen 80; 40 | server_name _; 41 | root /home/dist; 42 | 43 | # Load configuration files for the default server block. 44 | include /etc/nginx/default.d/*.conf; 45 | 46 | location / { 47 | } 48 | location /api { 49 | proxy_pass http://120.79.66.215:9190/; 50 | } 51 | location /wea { 52 | proxy_pass http://v.juhe.cn/weather/; 53 | } 54 | error_page 404 /404.html; 55 | location = /40x.html { 56 | } 57 | 58 | error_page 500 502 503 504 /50x.html; 59 | location = /50x.html { 60 | } 61 | } 62 | server { 63 | listen 9090; 64 | server_name http://120.79.66.215:9090; 65 | root /home/car/dist; 66 | 67 | # Load configuration files for the default server block. 68 | include /etc/nginx/default.d/*.conf; 69 | 70 | location / { 71 | } 72 | location /api { 73 | proxy_pass http://39.108.253.80:1125/; 74 | } 75 | error_page 404 /404.html; 76 | location = /40x.html { 77 | } 78 | 79 | error_page 500 502 503 504 /50x.html; 80 | location = /50x.html { 81 | } 82 | } 83 | # 重启nginx service nginx restart 84 | # Settings for a TLS enabled server. 85 | # 86 | # server { 87 | # listen 443 ssl http2 default_server; 88 | # listen [::]:443 ssl http2 default_server; 89 | # server_name _; 90 | # root /usr/share/nginx/html; 91 | # 92 | # ssl_certificate "/etc/pki/nginx/server.crt"; 93 | # ssl_certificate_key "/etc/pki/nginx/private/server.key"; 94 | # ssl_session_cache shared:SSL:1m; 95 | # ssl_session_timeout 10m; 96 | # ssl_ciphers HIGH:!aNULL:!MD5; 97 | # ssl_prefer_server_ciphers on; 98 | # 99 | # # Load configuration files for the default server block. 100 | # include /etc/nginx/default.d/*.conf; 101 | # 102 | # location / { 103 | # } 104 | # 105 | # error_page 404 /404.html; 106 | # location = /40x.html { 107 | # } 108 | # 109 | # error_page 500 502 503 504 /50x.html; 110 | # location = /50x.html { 111 | # } 112 | # } 113 | 114 | } 115 | 116 | -------------------------------------------------------------------------------- /src/views/backstage/order/changeCar.vue: -------------------------------------------------------------------------------- 1 | 23 | 24 | 68 | 69 | -------------------------------------------------------------------------------- /src/views/backstage/order/disposeCar.vue: -------------------------------------------------------------------------------- 1 | 17 | 18 | 76 | 77 | -------------------------------------------------------------------------------- /src/views/backstage/car_assessment/delete_assessment.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | 134 | 135 | -------------------------------------------------------------------------------- /src/views/home/home.vue: -------------------------------------------------------------------------------- 1 | 51 | 52 | 72 | 73 | 160 | -------------------------------------------------------------------------------- /src/views/backstage/backmain.vue: -------------------------------------------------------------------------------- 1 | 59 | 60 | 94 | 95 | 153 | 154 | -------------------------------------------------------------------------------- /src/views/main/collect.vue: -------------------------------------------------------------------------------- 1 | 21 | 22 | 126 | 127 | 190 | -------------------------------------------------------------------------------- /src/views/user_message/userinfo.vue: -------------------------------------------------------------------------------- 1 | 39 | 40 | 123 | 124 | -------------------------------------------------------------------------------- /src/views/user_message/message_main.vue: -------------------------------------------------------------------------------- 1 | 31 | 32 | 105 | 106 | 163 | 164 | -------------------------------------------------------------------------------- /src/views/backstage/car_assessment/add_assessment.vue: -------------------------------------------------------------------------------- 1 | 37 | 38 | 170 | 171 | 182 | -------------------------------------------------------------------------------- /src/views/main/main.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | 77 | 78 | 176 | -------------------------------------------------------------------------------- /src/views/backstage/car_assessment/update_assessment.vue: -------------------------------------------------------------------------------- 1 | 33 | 34 | 157 | 158 | -------------------------------------------------------------------------------- /src/views/main/carRental.vue: -------------------------------------------------------------------------------- 1 | 36 | 37 | 141 | 142 | 205 | -------------------------------------------------------------------------------- /src/views/backstage/carrental/delete_carrental.vue: -------------------------------------------------------------------------------- 1 | 12 | 13 | 190 | 191 | -------------------------------------------------------------------------------- /src/views/ownerManagement/state_management.vue: -------------------------------------------------------------------------------- 1 | 45 | 134 | 135 | 178 | -------------------------------------------------------------------------------- /src/views/login/login.vue: -------------------------------------------------------------------------------- 1 | 33 | 34 | 141 | 142 | 143 | 180 | 181 | -------------------------------------------------------------------------------- /src/views/main/owner.vue: -------------------------------------------------------------------------------- 1 | 69 | 70 | 168 | 169 | -------------------------------------------------------------------------------- /src/views/register/register.vue: -------------------------------------------------------------------------------- 1 | 32 | 33 | 146 | 147 | 148 | 198 | 199 | -------------------------------------------------------------------------------- /src/libs/tools.js: -------------------------------------------------------------------------------- 1 | export const forEach = (arr, fn) => { 2 | if (!arr.length || !fn) return; 3 | let i = -1; 4 | let len = arr.length; 5 | while (++i < len) { 6 | let item = arr[i]; 7 | fn(item, i, arr); 8 | } 9 | }; 10 | 11 | /** 12 | * @param {Array} arr1 13 | * @param {Array} arr2 14 | * @description 得到两个数组的交集, 两个数组的元素为数值或字符串 15 | */ 16 | export const getIntersection = (arr1, arr2) => { 17 | let len = Math.min(arr1.length, arr2.length); 18 | let i = -1; 19 | let res = []; 20 | while (++i < len) { 21 | const item = arr2[i]; 22 | if (arr1.indexOf(item) > -1) res.push(item); 23 | } 24 | return res; 25 | }; 26 | 27 | /** 28 | * @param {Array} arr1 29 | * @param {Array} arr2 30 | * @description 得到两个数组的并集, 两个数组的元素为数值或字符串 31 | */ 32 | export const getUnion = (arr1, arr2) => { 33 | return Array.from(new Set([...arr1, ...arr2])); 34 | }; 35 | 36 | /** 37 | * @param {Array} target 目标数组 38 | * @param {Array} arr 需要查询的数组 39 | * @description 判断要查询的数组是否至少有一个元素包含在目标数组中 40 | */ 41 | export const hasOneOf = (targetarr, arr) => { 42 | return targetarr.some(_ => arr.indexOf(_) > -1); 43 | }; 44 | 45 | /** 46 | * @param {String|Number} value 要验证的字符串或数值 47 | * @param {*} validList 用来验证的列表 48 | */ 49 | export function oneOf (value, validList) { 50 | for (let i = 0; i < validList.length; i++) { 51 | if (value === validList[i]) { 52 | return true; 53 | } 54 | } 55 | return false; 56 | } 57 | 58 | /** 59 | * @param {Number} timeStamp 判断时间戳格式是否是毫秒 60 | * @returns {Boolean} 61 | */ 62 | const isMillisecond = timeStamp => { 63 | const timeStr = String(timeStamp); 64 | return timeStr.length > 10; 65 | }; 66 | 67 | /** 68 | * @param {Number} timeStamp 传入的时间戳 69 | * @param {Number} currentTime 当前时间时间戳 70 | * @returns {Boolean} 传入的时间戳是否早于当前时间戳 71 | */ 72 | const isEarly = (timeStamp, currentTime) => { 73 | return timeStamp < currentTime; 74 | }; 75 | 76 | /** 77 | * @param {Number} num 数值 78 | * @returns {String} 处理后的字符串 79 | * @description 如果传入的数值小于10,即位数只有1位,则在前面补充0 80 | */ 81 | const getHandledValue = num => { 82 | return num < 10 ? '0' + num : num; 83 | }; 84 | 85 | /** 86 | * @param {Number} timeStamp 传入的时间戳 87 | * @param {Number} startType 要返回的时间字符串的格式类型,传入'year'则返回年开头的完整时间 88 | */ 89 | const getDate = (timeStamp, startType) => { 90 | const d = new Date(timeStamp * 1000); 91 | const year = d.getFullYear(); 92 | const month = getHandledValue(d.getMonth() + 1); 93 | const date = getHandledValue(d.getDate()); 94 | const hours = getHandledValue(d.getHours()); 95 | const minutes = getHandledValue(d.getMinutes()); 96 | const second = getHandledValue(d.getSeconds()); 97 | let resStr = ''; 98 | if (startType === 'year') resStr = year + '-' + month + '-' + date + ' ' + hours + ':' + minutes + ':' + second; 99 | else resStr = month + '-' + date + ' ' + hours + ':' + minutes; 100 | return resStr; 101 | }; 102 | 103 | /** 104 | * @param {Number} timeStamp 传入的时间戳 105 | * @param {Number} startType 要返回的时间字符串的格式类型,传入'year'则返回年开头的完整时间 106 | */ 107 | export const getFullDate = (timeStamp, startType) => { 108 | const d = new Date(timeStamp); 109 | const year = d.getFullYear(); 110 | const month = getHandledValue(d.getMonth() + 1); 111 | const date = getHandledValue(d.getDate()); 112 | const hours = getHandledValue(d.getHours()); 113 | const minutes = getHandledValue(d.getMinutes()); 114 | const second = getHandledValue(d.getSeconds()); 115 | let resStr = ''; 116 | if (startType === 'year') resStr = year + '-' + month + '-' + date + ' ' + hours + ':' + minutes + ':' + second; 117 | else resStr = month + '-' + date + ' ' + hours + ':' + minutes; 118 | return resStr; 119 | }; 120 | 121 | /** 122 | * @param {String|Number} timeStamp 时间戳 123 | * @returns {String} 相对时间字符串 124 | */ 125 | export const getRelativeTime = timeStamp => { 126 | // 判断当前传入的时间戳是秒格式还是毫秒 127 | const IS_MILLISECOND = isMillisecond(timeStamp); 128 | // 如果是毫秒格式则转为秒格式 129 | if (IS_MILLISECOND) Math.floor(timeStamp /= 1000); 130 | // 传入的时间戳可以是数值或字符串类型,这里统一转为数值类型 131 | timeStamp = Number(timeStamp); 132 | // 获取当前时间时间戳 133 | const currentTime = Math.floor(Date.parse(new Date()) / 1000); 134 | // 判断传入时间戳是否早于当前时间戳 135 | const IS_EARLY = isEarly(timeStamp, currentTime); 136 | // 获取两个时间戳差值 137 | let diff = currentTime - timeStamp; 138 | // 如果IS_EARLY为false则差值取反 139 | if (!IS_EARLY) diff = -diff; 140 | let resStr = ''; 141 | const dirStr = IS_EARLY ? '前' : '后'; 142 | // 少于等于59秒 143 | if (diff <= 59) resStr = diff + '秒' + dirStr; 144 | // 多于59秒,少于等于59分钟59秒 145 | else if (diff > 59 && diff <= 3599) resStr = Math.floor(diff / 60) + '分钟' + dirStr; 146 | // 多于59分钟59秒,少于等于23小时59分钟59秒 147 | else if (diff > 3599 && diff <= 86399) resStr = Math.floor(diff / 3600) + '小时' + dirStr; 148 | // 多于23小时59分钟59秒,少于等于29天59分钟59秒 149 | else if (diff > 86399 && diff <= 2623859) resStr = Math.floor(diff / 86400) + '天' + dirStr; 150 | // 多于29天59分钟59秒,少于364天23小时59分钟59秒,且传入的时间戳早于当前 151 | else if (diff > 2623859 && diff <= 31567859 && IS_EARLY) resStr = getDate(timeStamp); 152 | else resStr = getDate(timeStamp, 'year'); 153 | return resStr; 154 | }; 155 | 156 | /** 157 | * @returns {String} 当前浏览器名称 158 | */ 159 | export const getExplorer = () => { 160 | const ua = window.navigator.userAgent; 161 | const isExplorer = (exp) => { 162 | return ua.indexOf(exp) > -1; 163 | }; 164 | if (isExplorer('MSIE')) return 'IE'; 165 | else if (isExplorer('Firefox')) return 'Firefox'; 166 | else if (isExplorer('Chrome')) return 'Chrome'; 167 | else if (isExplorer('Opera')) return 'Opera'; 168 | else if (isExplorer('Safari')) return 'Safari'; 169 | }; 170 | 171 | /** 172 | * @description 绑定事件 on(element, event, handler) 173 | */ 174 | export const on = (function () { 175 | if (document.addEventListener) { 176 | return function (element, event, handler) { 177 | if (element && event && handler) { 178 | element.addEventListener(event, handler, false); 179 | } 180 | }; 181 | } else { 182 | return function (element, event, handler) { 183 | if (element && event && handler) { 184 | element.attachEvent('on' + event, handler); 185 | } 186 | }; 187 | } 188 | })(); 189 | 190 | /** 191 | * @description 解绑事件 off(element, event, handler) 192 | */ 193 | export const off = (function () { 194 | if (document.removeEventListener) { 195 | return function (element, event, handler) { 196 | if (element && event) { 197 | element.removeEventListener(event, handler, false); 198 | } 199 | }; 200 | } else { 201 | return function (element, event, handler) { 202 | if (element && event) { 203 | element.detachEvent('on' + event, handler); 204 | } 205 | }; 206 | } 207 | })(); 208 | 209 | /** 210 | * 判断一个对象是否存在key,如果传入第二个参数key,则是判断这个obj对象是否存在key这个属性 211 | * 如果没有传入key这个参数,则判断obj对象是否有键值对 212 | */ 213 | export const hasKey = (obj, key) => { 214 | if (key) return key in obj; 215 | else { 216 | let keysArr = Object.keys(obj); 217 | return keysArr.length; 218 | } 219 | }; 220 | 221 | /** 222 | * @param {*} obj1 对象 223 | * @param {*} obj2 对象 224 | * @description 判断两个对象是否相等,这两个对象的值只能是数字或字符串 225 | */ 226 | export const objEqual = (obj1, obj2) => { 227 | const keysArr1 = Object.keys(obj1); 228 | const keysArr2 = Object.keys(obj2); 229 | if (keysArr1.length !== keysArr2.length) return false; 230 | else if (keysArr1.length === 0 && keysArr2.length === 0) return true; 231 | /* eslint-disable-next-line */ 232 | else return !keysArr1.some(key => obj1[key] != obj2[key]) 233 | }; 234 | -------------------------------------------------------------------------------- /src/libs/coversionPoint.js: -------------------------------------------------------------------------------- 1 | /** 2 | * 坐标转换 3 | */ 4 | var GPS = { 5 | PI: 3.14159265358979324, 6 | x_pi: 3.14159265358979324 * 3000.0 / 180.0, 7 | delta: function(lat, lng) { 8 | // Krasovsky 1940 9 | // 10 | // a = 6378245.0, 1/f = 298.3 11 | // b = a * (1 - f) 12 | // ee = (a^2 - b^2) / a^2; 13 | var a = 6378245.0; // a: 卫星椭球坐标投影到平面地图坐标系的投影因子。 14 | var ee = 0.00669342162296594323; // ee: 椭球的偏心率。 15 | var dLat = this.transformLat(lng - 105.0, lat - 35.0); 16 | var dLng = this.transformLng(lng - 105.0, lat - 35.0); 17 | var radLat = lat / 180.0 * this.PI; 18 | var magic = Math.sin(radLat); 19 | magic = 1 - ee * magic * magic; 20 | var sqrtMagic = Math.sqrt(magic); 21 | dLat = dLat * 180.0 / (a * (1 - ee) / (magic * sqrtMagic) * this.PI); 22 | dLng = dLng * 180.0 / (a / sqrtMagic * Math.cos(radLat) * this.PI); 23 | return { 'lat': dLat, 'lng': dLng }; 24 | }, 25 | /** 26 | * WGS-84 to GCJ-02 GPS坐标转中国坐标 27 | * @param {number} wgsLat GPS纬度 28 | * @param {number} wgsLng GPS经度 29 | * @return {object} 返回中国坐标经纬度对象 30 | */ 31 | GPSToChina: function(wgsLat, wgsLng) { 32 | if (this.outOfChina(wgsLat, wgsLng)) 33 | return { 'lat': wgsLat, 'lng': wgsLng }; 34 | var d = this.delta(wgsLat, wgsLng); 35 | return { 'lat': Number(wgsLat) + Number(d.lat), 'lng': Number(wgsLng) + Number(d.lng) }; 36 | }, 37 | /** 38 | * GCJ-02 to WGS-84 中国标准坐标转GPS坐标 39 | * @param {number} gcjLat 中国标准坐标纬度 40 | * @param {number} gcjLng 中国标准坐标经度 41 | * @return {object} 返回GPS经纬度对象 42 | */ 43 | chinaToGPS: function(gcjLat, gcjLng) { 44 | if (this.outOfChina(gcjLat, gcjLng)) 45 | return { 'lat': gcjLat, 'lng': gcjLng }; 46 | var d = this.delta(gcjLat, gcjLng); 47 | return { 'lat': Number(gcjLat) - Number(d.lat), 'lng': Number(gcjLng) - Number(d.lng) }; 48 | }, 49 | /** 50 | * GCJ-02 to WGS-84 exactly 中国标准坐标转GPS坐标(精确) 51 | * @param {number} gcjLat 中国标准坐标纬度 52 | * @param {number} gcjLng 中国标准坐标经度 53 | * @return {object} 返回GPS经纬度对象(精确) 54 | */ 55 | chinaToGPSExact: function(gcjLat, gcjLng) { 56 | var initDelta = 0.01; 57 | var threshold = 0.000000001; 58 | var dLat = initDelta, 59 | dLng = initDelta; 60 | var mLat = gcjLat - dLat, 61 | mLng = gcjLng - dLng; 62 | var pLat = gcjLat + dLat, 63 | pLng = gcjLng + dLng; 64 | var wgsLat, wgsLng, i = 0; 65 | while (1) { 66 | wgsLat = (mLat + pLat) / 2; 67 | wgsLng = (mLng + pLng) / 2; 68 | var tmp = this.gcj_encrypt(wgsLat, wgsLng); 69 | dLat = tmp.lat - gcjLat; 70 | dLng = tmp.lng - gcjLng; 71 | if (Math.abs(dLat) < threshold && Math.abs(dLng) < threshold) 72 | break; 73 | 74 | if (dLat > 0) pLat = wgsLat; 75 | else mLat = wgsLat; 76 | if (dLng > 0) pLng = wgsLng; 77 | else mLng = wgsLng; 78 | 79 | if (++i > 10000) break; 80 | } 81 | //console.log(i); 82 | return { 'lat': wgsLat, 'lng': wgsLng }; 83 | }, 84 | /** 85 | * GCJ-02 to BD-09 中国标准坐标转百度坐标(精确) 86 | * @param {number} gcjLat 中国标准坐标纬度 87 | * @param {number} gcjLng 中国标准坐标经度 88 | * @return {object} 返回百度经纬度对象 89 | */ 90 | chinaToBaidu: function(gcjLat, gcjLng) { 91 | var x = gcjLng, 92 | y = gcjLat; 93 | var z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * this.x_pi); 94 | var theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * this.x_pi); 95 | bdLng = z * Math.cos(theta) + 0.0065; 96 | bdLat = z * Math.sin(theta) + 0.006; 97 | return { 'lat': bdLat, 'lng': bdLng }; 98 | }, 99 | /** 100 | * BD-09 to GCJ-02 百度坐标转中国标准坐标 101 | * @param {number} bdLat 百度坐标纬度 102 | * @param {number} bdLng 百度坐标经度 103 | * @return {object} 返回中国标准经纬度对象 104 | */ 105 | baiduToChina: function(bdLat, bdLng) { 106 | var x = bdLng - 0.0065, 107 | y = bdLat - 0.006; 108 | var z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * this.x_pi); 109 | var theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * this.x_pi); 110 | var gcjLng = z * Math.cos(theta); 111 | var gcjLat = z * Math.sin(theta); 112 | return { 'lat': gcjLat, 'lng': gcjLng }; 113 | }, 114 | /** 115 | * WGS-84 to Web mercator GPS坐标转墨卡托坐标 116 | * @param {number} wgsLat GPS纬度 117 | * @param {number} wgsLng GPS经度 118 | * @return {object} 返回墨卡托经纬度对象 119 | */ 120 | GPSToMercator: function(wgsLat, wgsLng) { 121 | var x = wgsLng * 20037508.34 / 180.0; 122 | var y = Math.log(Math.tan((90.0 + wgsLat) * this.PI / 360.0)) / (this.PI / 180.0); 123 | y = y * 20037508.34 / 180.0; 124 | return { 'lat': y, 'lng': x }; 125 | /* 126 | if ((Math.abs(wgsLng) > 180 || Math.abs(wgsLat) > 90)) 127 | return null; 128 | var x = 6378137.0 * wgsLng * 0.017453292519943295; 129 | var a = wgsLat * 0.017453292519943295; 130 | var y = 3189068.5 * Math.log((1.0 + Math.sin(a)) / (1.0 - Math.sin(a))); 131 | return {'lat' : y, 'lng' : x}; 132 | //*/ 133 | }, 134 | /** 135 | * Web mercator to WGS-84 墨卡托坐标转GPS坐标 136 | * @param {number} mercatorLat 墨卡托纬度 137 | * @param {number} mercatorLng 墨卡托经度 138 | * @return {object} 返回GPS经纬度对象 139 | */ 140 | mercatorToGPS: function(mercatorLat, mercatorLng) { 141 | var x = mercatorLng / 20037508.34 * 180.0; 142 | var y = mercatorLat / 20037508.34 * 180.0; 143 | y = 180 / this.PI * (2 * Math.atan(Math.exp(y * this.PI / 180.0)) - this.PI / 2); 144 | return { 'lat': y, 'lng': x }; 145 | /* 146 | if (Math.abs(mercatorLng) < 180 && Math.abs(mercatorLat) < 90) 147 | return null; 148 | if ((Math.abs(mercatorLng) > 20037508.3427892) || (Math.abs(mercatorLat) > 20037508.3427892)) 149 | return null; 150 | var a = mercatorLng / 6378137.0 * 57.295779513082323; 151 | var x = a - (Math.floor(((a + 180.0) / 360.0)) * 360.0); 152 | var y = (1.5707963267948966 - (2.0 * Math.atan(Math.exp((-1.0 * mercatorLat) / 6378137.0)))) * 57.295779513082323; 153 | return {'lat' : y, 'lng' : x}; 154 | //*/ 155 | }, 156 | /** 157 | * 两点之间的距离 158 | * @param {number} latA 起点纬度 159 | * @param {number} lngA 起点经度 160 | * @param {number} latB 终点纬度 161 | * @param {number} lngB 终点经度 162 | * @return {number} 返回距离(米) 163 | */ 164 | distance: function(latA, lngA, latB, lngB) { 165 | var earthR = 6371000.0; 166 | var x = Math.cos(latA * this.PI / 180.0) * Math.cos(latB * this.PI / 180.0) * Math.cos((lngA - lngB) * this.PI / 180); 167 | var y = Math.sin(latA * this.PI / 180.0) * Math.sin(latB * this.PI / 180.0); 168 | var s = x + y; 169 | if (s > 1) s = 1; 170 | if (s < -1) s = -1; 171 | var alpha = Math.acos(s); 172 | var distance = alpha * earthR; 173 | return distance; 174 | }, 175 | /** 176 | * 是否在中国之外 177 | * @param {number} lat 纬度 178 | * @param {number} lng 经度 179 | * @return {boolean]} 返回结果真或假 180 | */ 181 | outOfChina: function(lat, lng) { 182 | if (lng < 72.004 || lng > 137.8347) 183 | return true; 184 | if (lat < 0.8293 || lat > 55.8271) 185 | return true; 186 | return false; 187 | }, 188 | transformLat: function(x, y) { 189 | var ret = -100.0 + 2.0 * x + 3.0 * y + 0.2 * y * y + 0.1 * x * y + 0.2 * Math.sqrt(Math.abs(x)); 190 | ret += (20.0 * Math.sin(6.0 * x * this.PI) + 20.0 * Math.sin(2.0 * x * this.PI)) * 2.0 / 3.0; 191 | ret += (20.0 * Math.sin(y * this.PI) + 40.0 * Math.sin(y / 3.0 * this.PI)) * 2.0 / 3.0; 192 | ret += (160.0 * Math.sin(y / 12.0 * this.PI) + 320 * Math.sin(y * this.PI / 30.0)) * 2.0 / 3.0; 193 | return ret; 194 | }, 195 | transformLng: function(x, y) { 196 | var ret = 300.0 + x + 2.0 * y + 0.1 * x * x + 0.1 * x * y + 0.1 * Math.sqrt(Math.abs(x)); 197 | ret += (20.0 * Math.sin(6.0 * x * this.PI) + 20.0 * Math.sin(2.0 * x * this.PI)) * 2.0 / 3.0; 198 | ret += (20.0 * Math.sin(x * this.PI) + 40.0 * Math.sin(x / 3.0 * this.PI)) * 2.0 / 3.0; 199 | ret += (150.0 * Math.sin(x / 12.0 * this.PI) + 300.0 * Math.sin(x / 30.0 * this.PI)) * 2.0 / 3.0; 200 | return ret; 201 | } 202 | }; 203 | 204 | export default GPS; -------------------------------------------------------------------------------- /src/views/backstage/carrental/update_carrental.vue: -------------------------------------------------------------------------------- 1 | 46 | 218 | 219 | -------------------------------------------------------------------------------- /src/views/user_message/userChangePassword.vue: -------------------------------------------------------------------------------- 1 | 59 | 60 | 201 | 202 | 265 | 266 | -------------------------------------------------------------------------------- /src/views/backstage/ownercaraudit/ownercaraudit.vue: -------------------------------------------------------------------------------- 1 | 49 | 235 | 236 | -------------------------------------------------------------------------------- /src/router/index.js: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Router from 'vue-router' 3 | import cookie from 'js-cookie'; 4 | 5 | Vue.use(Router) 6 | 7 | const router = new Router({ 8 | linkExactActiveClass: 'active', 9 | routes: [ 10 | { 11 | path: '/', 12 | redirect: '/main' 13 | }, 14 | { 15 | path: '/main', 16 | name: '主页', 17 | component: resolve => require(['@/views/main/main'], resolve), 18 | redirect: '/home', 19 | children:[ 20 | { 21 | path: '/home', 22 | name: '首页', 23 | component: resolve => require(['@/views/home/home'], resolve), 24 | }, 25 | { 26 | path: '/collect', 27 | name: '收藏', 28 | meta: { 29 | permissions: true, 30 | }, 31 | component: resolve => require(['@/views/main/collect'], resolve), 32 | }, 33 | { 34 | path: '/owner', 35 | name: '成为车主', 36 | component: resolve => require(['@/views/main/owner'], resolve), 37 | }, 38 | { 39 | path: '/carRental', 40 | name: '我要租车', 41 | component: resolve => require(['@/views/main/carRental'], resolve), 42 | }, 43 | { 44 | path: '/carRentalParticulars', 45 | name: '租车详情', 46 | component: resolve => require(['@/views/main/carRentalParticulars'], resolve), 47 | }, 48 | { 49 | path: '/login', 50 | name: '登录', 51 | component: resolve => require(['@/views/login/login'], resolve), 52 | }, 53 | { 54 | path: '/register', 55 | name: '注册', 56 | component: resolve => require(['@/views/register/register'], resolve), 57 | }, 58 | { 59 | path: '/findPassword', 60 | name: '找回密码', 61 | component: resolve => require(['@/views/findPassword/findPassword'], resolve), 62 | }, 63 | { 64 | path: '/message_main', 65 | name: '个人中心', 66 | redirect: '/userinfo', 67 | meta: { 68 | permissions: true, 69 | }, 70 | component: resolve => require(['@/views/user_message/message_main'], resolve), 71 | children:[ 72 | { 73 | path: '/changePassword', 74 | name: '修改密码', 75 | meta: { 76 | permissions: true, 77 | }, 78 | component: resolve => require(['@/views/user_message/userChangePassword'], resolve), 79 | }, 80 | { 81 | path: '/userinfo', 82 | name: '我的信息', 83 | meta: { 84 | permissions: true, 85 | }, 86 | component: resolve => require(['@/views/user_message/userinfo'], resolve), 87 | }, 88 | { 89 | path: '/balanceEnquiry', 90 | name: '余额查询', 91 | meta: { 92 | permissions: true, 93 | }, 94 | component: resolve => require(['@/views/user_message/balanceEnquiry'], resolve), 95 | }, 96 | { 97 | path: '/orderInformation', 98 | name: '租客订单', 99 | meta: { 100 | permissions: true, 101 | }, 102 | component: resolve => require(['@/views/user_message/orderInformation'], resolve), 103 | }, 104 | { 105 | path: '/ownerOrderInformation', 106 | name: '车主订单', 107 | meta: { 108 | permissions: true, 109 | }, 110 | component: resolve => require(['@/views/user_message/ownerOrderInformation'], resolve), 111 | }, 112 | { 113 | path: '/certificate', 114 | name: '证件实名', 115 | meta: { 116 | permissions: true, 117 | }, 118 | component: resolve => require(['@/views/user_message/certificate'], resolve), 119 | }, 120 | ] 121 | }, 122 | { 123 | path: '/backstage', 124 | name: '后台管理', 125 | component: resolve => require(['@/views/backstage/backmain'], resolve), 126 | children:[ 127 | //审核 128 | { 129 | path: '/drivinglicence', 130 | name: '驾驶证审核', 131 | meta: { 132 | permissions: true, 133 | }, 134 | component: resolve => require(['@/views/backstage/audit/audit'], resolve), 135 | }, 136 | { 137 | path: '/auditcar', 138 | name: '行驶证审核', 139 | meta: { 140 | permissions: true, 141 | }, 142 | component: resolve => require(['@/views/backstage/audit/auditcar'], resolve), 143 | }, 144 | { 145 | path: '/ownercaraudit', 146 | name: '车主车辆审核', 147 | meta: { 148 | permissions: true, 149 | }, 150 | component: resolve => require(['@/views/backstage/ownercaraudit/ownercaraudit'], resolve), 151 | }, 152 | //车型管理 153 | { 154 | path: '/addassessment', 155 | name: '录入车型', 156 | meta: { 157 | permissions: true, 158 | }, 159 | component: resolve => require(['@/views/backstage/car_assessment/add_assessment'], resolve), 160 | }, 161 | { 162 | path: '/deleteassessment', 163 | name: '删除车型', 164 | meta: { 165 | permissions: true, 166 | }, 167 | component: resolve => require(['@/views/backstage/car_assessment/delete_assessment'], resolve), 168 | }, 169 | { 170 | path: '/updateassessment', 171 | name: '修改车型', 172 | meta: { 173 | permissions: true, 174 | }, 175 | component: resolve => require(['@/views/backstage/car_assessment/update_assessment'], resolve), 176 | }, 177 | //租车管理 178 | { 179 | path: '/addcarrental', 180 | name: '增加租车', 181 | meta: { 182 | permissions: true, 183 | }, 184 | component: resolve => require(['@/views/backstage/carrental/add_carrental'], resolve), 185 | }, 186 | { 187 | path: '/updatecarrental', 188 | name: '修改租车', 189 | meta: { 190 | permissions: true, 191 | }, 192 | component: resolve => require(['@/views/backstage/carrental/update_carrental'], resolve), 193 | }, 194 | { 195 | path: '/deletecarrental', 196 | name: '删除租车', 197 | meta: { 198 | permissions: true, 199 | }, 200 | component: resolve => require(['@/views/backstage/carrental/delete_carrental'], resolve), 201 | }, 202 | //订单管理 203 | { 204 | path: '/queryOrder', 205 | name: '订单查询', 206 | meta: { 207 | permissions: true, 208 | }, 209 | component: resolve => require(['@/views/backstage/order/queryOrder'], resolve), 210 | }, 211 | { 212 | path: '/disposeCar', 213 | name: '处理还车', 214 | meta: { 215 | permissions: true, 216 | }, 217 | component: resolve => require(['@/views/backstage/order/disposeCar'], resolve), 218 | }, 219 | { 220 | path: '/changeCar', 221 | name: '处理换车', 222 | meta: { 223 | permissions: true, 224 | }, 225 | component: resolve => require(['@/views/backstage/order/changeCar'], resolve), 226 | }, 227 | ] 228 | }, 229 | { 230 | path: '/ownermanagement', 231 | name: '车主管理', 232 | component: resolve => require(['@/views/ownerManagement/owner_main'], resolve), 233 | children:[ 234 | { 235 | path: '/addownermanag', 236 | name: '增加车辆', 237 | meta: { 238 | permissions: true, 239 | }, 240 | component: resolve => require(['@/views/ownerManagement/add_ownermanag'], resolve), 241 | }, 242 | { 243 | path: '/statemanagement', 244 | name: '车辆状态', 245 | meta: { 246 | permissions: true, 247 | }, 248 | component: resolve => require(['@/views/ownerManagement/state_management'], resolve), 249 | }, 250 | ] 251 | }, 252 | ] 253 | }, 254 | 255 | ] 256 | }) 257 | 258 | router.beforeEach((to, from, next) => { 259 | if(to.meta.permissions){ 260 | var token = cookie.get('userName'); 261 | if(token){ 262 | next(); 263 | }else{ 264 | next({ 265 | name: "登录", path:'/login', 266 | }); 267 | // Vue.prototype.$Message.warning('请先登录'); 268 | } 269 | }else{ 270 | next(); 271 | } 272 | }); 273 | export default router; 274 | -------------------------------------------------------------------------------- /src/views/user_message/ownerOrderInformation.vue: -------------------------------------------------------------------------------- 1 | 65 | 192 | 193 | 249 | -------------------------------------------------------------------------------- /src/views/backstage/carrental/add_carrental.vue: -------------------------------------------------------------------------------- 1 | 85 | 86 | 276 | 277 | 282 | --------------------------------------------------------------------------------