From c8bf07868b85f3cbd44f96befa415642cfd0591c Mon Sep 17 00:00:00 2001 From: taylor <709161610@qq.com> Date: Mon, 16 Jan 2017 21:50:55 +0800 Subject: [PATCH] add mockjs --- package.json | 3 ++ src/api/api.js | 5 +++ src/api/index.js | 3 ++ src/main.js | 24 ++++++----- src/mock/index.js | 3 ++ src/mock/mock.js | 45 ++++++++++++++++++++ src/mockdata/user.js | 25 +++++++++++ src/{components => pages}/Home.vue | 0 src/{components => pages}/Login.vue | 27 +++++++++--- src/{components => pages}/Main.vue | 0 src/{components => pages}/charts/echarts.vue | 0 src/{components => pages}/nav1/Form.vue | 0 src/{components => pages}/nav1/Page3.vue | 0 src/{components => pages}/nav1/Table.vue | 0 src/{components => pages}/nav2/Page4.vue | 0 src/{components => pages}/nav2/Page5.vue | 0 src/{components => pages}/nav3/Page6.vue | 6 +-- 17 files changed, 123 insertions(+), 18 deletions(-) create mode 100644 src/api/api.js create mode 100644 src/api/index.js create mode 100644 src/mock/index.js create mode 100644 src/mock/mock.js create mode 100644 src/mockdata/user.js rename src/{components => pages}/Home.vue (100%) rename src/{components => pages}/Login.vue (70%) rename src/{components => pages}/Main.vue (100%) rename src/{components => pages}/charts/echarts.vue (100%) rename src/{components => pages}/nav1/Form.vue (100%) rename src/{components => pages}/nav1/Page3.vue (100%) rename src/{components => pages}/nav1/Table.vue (100%) rename src/{components => pages}/nav2/Page4.vue (100%) rename src/{components => pages}/nav2/Page5.vue (100%) rename src/{components => pages}/nav3/Page6.vue (75%) diff --git a/package.json b/package.json index 04df071..0e79ad1 100644 --- a/package.json +++ b/package.json @@ -9,6 +9,7 @@ "build": "node build/build.js" }, "dependencies": { + "axios": "^0.15.3", "echarts": "^3.3.2", "flex.css": "^1.1.6", "nprogress": "^0.2.0", @@ -17,6 +18,7 @@ }, "devDependencies": { "autoprefixer": "^6.4.0", + "axios-mock-adapter": "^1.7.1", "babel-core": "^6.0.0", "babel-loader": "^6.2.8", "babel-plugin-transform-runtime": "^6.0.0", @@ -37,6 +39,7 @@ "html-webpack-plugin": "^2.8.1", "http-proxy-middleware": "^0.17.2", "json-loader": "^0.5.4", + "mockjs": "^1.0.1-beta3", "opn": "^4.0.2", "ora": "^0.3.0", "semver": "^5.3.0", diff --git a/src/api/api.js b/src/api/api.js new file mode 100644 index 0000000..5818dc9 --- /dev/null +++ b/src/api/api.js @@ -0,0 +1,5 @@ +import axios from 'axios'; + +let base = ''; + +export const requestLogin = params => { return axios.post(`${ base }/login`, params).then(res => res.data); }; \ No newline at end of file diff --git a/src/api/index.js b/src/api/index.js new file mode 100644 index 0000000..15e6e8e --- /dev/null +++ b/src/api/index.js @@ -0,0 +1,3 @@ +import * as api from './api'; + +export default api; \ No newline at end of file diff --git a/src/main.js b/src/main.js index 9679027..074659b 100644 --- a/src/main.js +++ b/src/main.js @@ -9,16 +9,20 @@ import Vuex from 'vuex' import NProgress from 'nprogress'//页面顶部进度条 import 'nprogress/nprogress.css' -import Login from './components/Login.vue' -import Home from './components/Home.vue' -import Main from './components/Main.vue' -import Table from './components/nav1/Table.vue' -import Form from './components/nav1/Form.vue' -import Page3 from './components/nav1/Page3.vue' -import Page4 from './components/nav2/Page4.vue' -import Page5 from './components/nav2/Page5.vue' -import Page6 from './components/nav3/Page6.vue' -import echarts from './components/charts/echarts.vue' +import Login from './pages/Login.vue' +import Home from './pages/Home.vue' +import Main from './pages/Main.vue' +import Table from './pages/nav1/Table.vue' +import Form from './pages/nav1/Form.vue' +import Page3 from './pages/nav1/Page3.vue' +import Page4 from './pages/nav2/Page4.vue' +import Page5 from './pages/nav2/Page5.vue' +import Page6 from './pages/nav3/Page6.vue' +import echarts from './pages/charts/echarts.vue' + +// start mock +import Mock from './mock'; +Mock.bootstrap(); Vue.use(ElementUI) Vue.use(VueRouter) diff --git a/src/mock/index.js b/src/mock/index.js new file mode 100644 index 0000000..925ee4f --- /dev/null +++ b/src/mock/index.js @@ -0,0 +1,3 @@ +import mock from './mock'; + +export default mock; diff --git a/src/mock/mock.js b/src/mock/mock.js new file mode 100644 index 0000000..f94efe1 --- /dev/null +++ b/src/mock/mock.js @@ -0,0 +1,45 @@ +import axios from 'axios'; +import MockAdapter from 'axios-mock-adapter'; +import { LoginUsers } from '../mockdata/user'; + +export default { + /** + * mock bootstrap + */ + bootstrap() { + let mock = new MockAdapter(axios); + + // mock success request + mock.onGet('/success').reply(200, { + msg: 'success' + }); + + // mock error request + mock.onGet('/error').reply(500, { + msg: 'failure' + }); + + mock.onPost('/login').reply(config => { + let {username, password} = JSON.parse(config.data); + return new Promise((resolve, reject) => { + let user = null; + setTimeout(() => { + let hasUser = LoginUsers.some(u => { + if (u.username === username && u.password === password) { + user = JSON.parse(JSON.stringify(u)); + user.password = undefined; + return true; + } + }); + + if (hasUser) { + resolve([200, { code: 200, msg: '请求成功!!!', user }]); + } else { + resolve([200, { code: 500, msg: '用户名或密码错误!!!' }]); + } + }, Math.random() * 1000 + 1000); + }); + }); + + } +}; \ No newline at end of file diff --git a/src/mockdata/user.js b/src/mockdata/user.js new file mode 100644 index 0000000..c066165 --- /dev/null +++ b/src/mockdata/user.js @@ -0,0 +1,25 @@ +import Mock from 'mockjs'; +const LoginUsers = [ + { + id: 1, + username: 'admin', + password: '123456', + avatar: '' + } +]; + +// const Users = []; +// const userCount = 200; + +// for (let i = 0; i < userCount; i++) { +// Users.push(Mock.mock({ +// id: Mock.Random.guid(), +// name: Mock.Random.cname(), +// address: Mock.mock('@county(true)'), +// 'age|18-60': 1, +// date: Number(Mock.Random.datetime('T')) +// })); +// } + +//export { LoginUsers, Users }; +export { LoginUsers }; diff --git a/src/components/Home.vue b/src/pages/Home.vue similarity index 100% rename from src/components/Home.vue rename to src/pages/Home.vue diff --git a/src/components/Login.vue b/src/pages/Login.vue similarity index 70% rename from src/components/Login.vue rename to src/pages/Login.vue index f4cb722..1e6c2b6 100644 --- a/src/components/Login.vue +++ b/src/pages/Login.vue @@ -9,19 +9,21 @@ 记住密码 - 登录 + 登录