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 @@
记住密码
- 登录
+ 登录