From 6dc561543c98380d45c78c4193d0361bdef04687 Mon Sep 17 00:00:00 2001 From: toesbieya <1647775459@qq.com> Date: Mon, 20 Jul 2020 22:14:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8A=A0=E5=85=A5=E4=BA=86mock=E5=8A=9F?= =?UTF-8?q?=E8=83=BD=20=E7=99=BB=E9=99=86=E9=A1=B5=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E8=83=8C=E6=99=AF=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- vue/mock/controller/account/index.js | 23 ++++++++++++++++++++ vue/mock/controller/index.js | 4 ++++ vue/mock/controller/system/resource.js | 5 +++++ vue/mock/data/user.js | 6 ------ vue/mock/index.js | 27 +++++++++++++++++------- vue/mock/util.js | 8 +++---- vue/package-lock.json | 2 +- vue/package.json | 1 + vue/src/config/index.js | 8 +++++-- vue/src/store/modules/app.js | 2 +- vue/src/store/modules/socket.js | 4 ++-- vue/vue.config.js | 29 ++++++++++++++------------ 12 files changed, 83 insertions(+), 36 deletions(-) create mode 100644 vue/mock/controller/account/index.js create mode 100644 vue/mock/controller/index.js create mode 100644 vue/mock/controller/system/resource.js delete mode 100644 vue/mock/data/user.js diff --git a/vue/mock/controller/account/index.js b/vue/mock/controller/account/index.js new file mode 100644 index 0000000..9283b71 --- /dev/null +++ b/vue/mock/controller/account/index.js @@ -0,0 +1,23 @@ +const {success, fail} = require('../../util') + +const base = '/account' + +module.exports = [ + { + url: `${base}/login`, method: 'post', res(req, res) { + const {username, password} = req.body + //默认账号密码:admin/123456 + if (username !== 'admin' || password !== 'e10adc3949ba59abbe56e057f20f883e') { + res.send(fail('账号或密码错误')) + } + else res.send(success({ + id: 1, + name: 'admin', + admin: 1, + token: 'test' + })) + } + }, + + {url: `${base}/logout`, method: 'get', res: null} +] diff --git a/vue/mock/controller/index.js b/vue/mock/controller/index.js new file mode 100644 index 0000000..a2085db --- /dev/null +++ b/vue/mock/controller/index.js @@ -0,0 +1,4 @@ +const accountRoutes = require('./account') +const sysResourceRoutes = require('./system/resource') + +module.exports = accountRoutes.concat(sysResourceRoutes) diff --git a/vue/mock/controller/system/resource.js b/vue/mock/controller/system/resource.js new file mode 100644 index 0000000..91f35cb --- /dev/null +++ b/vue/mock/controller/system/resource.js @@ -0,0 +1,5 @@ +const base = '/system/resource' + +module.exports = [ + {url: `${base}/getAll`, method: 'get', res: []} +] diff --git a/vue/mock/data/user.js b/vue/mock/data/user.js deleted file mode 100644 index e6fbbf1..0000000 --- a/vue/mock/data/user.js +++ /dev/null @@ -1,6 +0,0 @@ -module.exports = { - id: 1, - name: '本地账户', - admin: 1, - avatar: '' -} diff --git a/vue/mock/index.js b/vue/mock/index.js index d781564..263dc2d 100644 --- a/vue/mock/index.js +++ b/vue/mock/index.js @@ -1,9 +1,22 @@ -const {success,fail} = require('./util') -const base = require('../src/config').apiPrefix -const user = require('./data/user') +const bodeParser = require('body-parser') +const {success} = require('./util') +const {apiPrefix, useMock} = require('../src/config') -const routes = [ - {url: '/login', method: 'post', res: user}, -] +const routes = require('./controller') -module.exports = app => routes.forEach(route => app[route.method](base + route.url, (req, res) => res.send(success(route.res)))) +module.exports = app => { + if (!useMock) return + + app.use(bodeParser.json()) + + routes.forEach(route => { + app[route.method]( + apiPrefix + route.url, + (req, res) => { + if (typeof route.res === 'function') { + route.res(req, res) + } + else res.send(success(route.res)) + }) + }) +} diff --git a/vue/mock/util.js b/vue/mock/util.js index fb7d51d..b6433db 100644 --- a/vue/mock/util.js +++ b/vue/mock/util.js @@ -1,8 +1,8 @@ module.exports = { - success(data) { - return {status: 200, data} + success(data, msg) { + return {status: 200, data, msg} }, - fail() { - return {status: 500, msg: '操作失败'} + fail(msg) { + return {status: 500, msg: msg || '操作失败'} } } diff --git a/vue/package-lock.json b/vue/package-lock.json index 4c79f5e..d5f00cc 100644 --- a/vue/package-lock.json +++ b/vue/package-lock.json @@ -2598,7 +2598,7 @@ }, "ms": { "version": "2.0.0", - "resolved": "https://registry.npm.taobao.org/ms/download/ms-2.0.0.tgz", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, diff --git a/vue/package.json b/vue/package.json index 8fbf4ae..ca2abbc 100644 --- a/vue/package.json +++ b/vue/package.json @@ -32,6 +32,7 @@ "@vue/cli-plugin-router": "^4.4.1", "@vue/cli-plugin-vuex": "^4.4.1", "@vue/cli-service": "^4.4.1", + "body-parser": "^1.19.0", "compression-webpack-plugin": "^3.1.0", "html-webpack-plugin": "^4.3.0", "sass": "^1.26.8", diff --git a/vue/src/config/index.js b/vue/src/config/index.js index 824773b..9291e84 100644 --- a/vue/src/config/index.js +++ b/vue/src/config/index.js @@ -7,18 +7,22 @@ module.exports = { title: 'BiuBiuBiu~', - //项目的部署路径 + //项目的部署路径,始终以'/'开头,以'/'结束 contextPath, - //全局axios的baseUrl + //全局axios的baseUrl、devServer的路由前缀 apiPrefix: '/api', //路由模式,['hash','history'] routerMode: 'history', + //是否在开发时使用mock,为true时不会启动websocket和代理 + useMock: false, + //socket连接地址 socketUrl: isDev ? 'localhost:12580' : 'wss://toesbieya.cn', + //侧边栏顶上的logo地址 sidebarLogoUrl: 'https://wpimg.wallstcn.com/69a1c46c-eb1c-4b46-8bd4-e9e686ef5251.png', errorLog: true, diff --git a/vue/src/store/modules/app.js b/vue/src/store/modules/app.js index 662feeb..4aee4b9 100644 --- a/vue/src/store/modules/app.js +++ b/vue/src/store/modules/app.js @@ -9,7 +9,7 @@ const state = { device: isMobile() ? 'mobile' : 'pc', //登陆页背景动画 - loginBackgroundAnimation: 'firework', + loginBackgroundAnimation: 'sparkRain', //路由页面滚动高度 scrollTop: 0, diff --git a/vue/src/store/modules/socket.js b/vue/src/store/modules/socket.js index 33a7c8a..cd2fcc8 100644 --- a/vue/src/store/modules/socket.js +++ b/vue/src/store/modules/socket.js @@ -1,6 +1,6 @@ import {MessageBox} from "element-ui" import {isEmpty} from "@/utils" -import {socketUrl} from '@/config' +import {useMock, socketUrl} from '@/config' import SocketIO from 'socket.io-client' import {createMutations} from "@/utils" @@ -14,7 +14,7 @@ const mutations = createMutations(state) const actions = { init(context, user) { - if (isEmpty(user, user.id, user.token)) return + if (useMock || isEmpty(user, user.id, user.token)) return socket = initSocket(user) diff --git a/vue/vue.config.js b/vue/vue.config.js index 83d6875..b138a7f 100644 --- a/vue/vue.config.js +++ b/vue/vue.config.js @@ -29,20 +29,23 @@ module.exports = { warnings: true, errors: true }, - proxy: { - [settings.apiPrefix]: { - target: 'http://localhost:8081', //后台接口域名 - ws: true, //如果要代理 websockets,配置这个参数 - secure: false, //如果是https接口,需要配置这个参数 - changeOrigin: true, //是否跨域 - pathRewrite: { - [`^${settings.apiPrefix}`]: '' - } - } - }, - /*before(app) { + proxy: + settings.useMock + ? null + : { + [settings.apiPrefix]: { + target: 'http://localhost:8081', //后台接口域名 + ws: true, //如果要代理 websockets,配置这个参数 + secure: false, //如果是https接口,需要配置这个参数 + changeOrigin: true, //是否跨域 + pathRewrite: { + [`^${settings.apiPrefix}`]: '' + } + } + }, + before(app) { require('./mock')(app) - }*/ + } }, configureWebpack: { name: settings.title,