From cb40959e146a8a485a1bf1bc7c19ceb2a22dc964 Mon Sep 17 00:00:00 2001
From: liuqimichale <123456lq>
Date: Thu, 29 Nov 2018 15:10:59 +0800
Subject: [PATCH] 添加mock 数据
---
config/dev.env.js | 4 +++-
config/prod.env.js | 4 +++-
package-lock.json | 9 +++++++++
package.json | 1 +
src/api/api.js | 7 +++----
src/main.js | 1 +
src/mock/mock.js | 16 ++++++++++++++++
src/mock/pda.js | 22 ++++++++++++++++++++++
src/utils/request.js | 47 +++++++++++++++++++++++++++++++++++++----------
src/views/pdasection.vue | 26 ++++++++++++++++++++------
10 files changed, 115 insertions(+), 22 deletions(-)
create mode 100644 src/mock/mock.js
create mode 100644 src/mock/pda.js
diff --git a/config/dev.env.js b/config/dev.env.js
index 1e22973..2b53747 100644
--- a/config/dev.env.js
+++ b/config/dev.env.js
@@ -3,5 +3,7 @@ const merge = require('webpack-merge')
const prodEnv = require('./prod.env')
module.exports = merge(prodEnv, {
- NODE_ENV: '"development"'
+ NODE_ENV: '"development"',
+ ENV_CONFIG: '"dev"',
+ BASE_API: '"http://192.168.101.26:8089/"'
})
diff --git a/config/prod.env.js b/config/prod.env.js
index a6f9976..fa6a165 100644
--- a/config/prod.env.js
+++ b/config/prod.env.js
@@ -1,4 +1,6 @@
'use strict'
module.exports = {
- NODE_ENV: '"production"'
+ NODE_ENV: '"production"',
+ ENV_CONFIG: '"prod"',
+ BASE_API: '"https://api-prod"'
}
diff --git a/package-lock.json b/package-lock.json
index 4aa4524..ba32379 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -5554,6 +5554,15 @@
"minimist": "0.0.8"
}
},
+ "mockjs": {
+ "version": "1.0.1-beta3",
+ "resolved": "http://registry.npm.taobao.org/mockjs/download/mockjs-1.0.1-beta3.tgz",
+ "integrity": "sha1-0jTzwnJWOXVk8slVFC6JGQlTcgk=",
+ "dev": true,
+ "requires": {
+ "commander": "*"
+ }
+ },
"move-concurrently": {
"version": "1.0.1",
"resolved": "http://registry.npm.taobao.org/move-concurrently/download/move-concurrently-1.0.1.tgz",
diff --git a/package.json b/package.json
index 6ce9798..42a1ba0 100644
--- a/package.json
+++ b/package.json
@@ -31,6 +31,7 @@
"file-loader": "^1.1.4",
"friendly-errors-webpack-plugin": "^1.6.1",
"html-webpack-plugin": "^2.30.1",
+ "mockjs": "^1.0.1-beta3",
"node-notifier": "^5.1.2",
"optimize-css-assets-webpack-plugin": "^3.2.0",
"ora": "^1.2.0",
diff --git a/src/api/api.js b/src/api/api.js
index f54b8af..27b3f5f 100644
--- a/src/api/api.js
+++ b/src/api/api.js
@@ -1,10 +1,9 @@
import request from '@/utils/request'
-export function fetchList(query) {
+export function fetchList() {
return request({
url: '/article/list',
method: 'get',
- params: query
})
}
@@ -12,7 +11,7 @@ export function fetchArticle(id) {
return request({
url: '/article/detail',
method: 'get',
- params: { id }
+ params: {id}
})
}
@@ -20,7 +19,7 @@ export function fetchPv(pv) {
return request({
url: '/article/pv',
method: 'get',
- params: { pv }
+ params: {pv}
})
}
diff --git a/src/main.js b/src/main.js
index 372273d..e15548b 100644
--- a/src/main.js
+++ b/src/main.js
@@ -2,6 +2,7 @@
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
+import './mock/mock'
import '@/styles/reset.css'/*引入重置样式*/
Vue.config.productionTip = false
diff --git a/src/mock/mock.js b/src/mock/mock.js
new file mode 100644
index 0000000..abc869f
--- /dev/null
+++ b/src/mock/mock.js
@@ -0,0 +1,16 @@
+import Mock from 'mockjs'
+import pdaApi from './pda'
+
+// 修复在使用 MockJS 情况下,设置 withCredentials = true,且未被拦截的跨域请求丢失 Cookies 的问题
+// https://github.com/nuysoft/Mock/issues/300
+Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send
+Mock.XHR.prototype.send = function () {
+ if (this.custom.xhr) {
+ this.custom.xhr.withCredentials = this.withCredentials || false
+ }
+ this.proxy_send(...arguments)
+}
+
+Mock.mock('/article/list', 'get', pdaApi.getList);
+
+export default Mock
diff --git a/src/mock/pda.js b/src/mock/pda.js
new file mode 100644
index 0000000..9f56671
--- /dev/null
+++ b/src/mock/pda.js
@@ -0,0 +1,22 @@
+import Mock from 'mockjs'
+
+const Random = Mock.Random;
+const list = [];
+
+for (let i = 0; i < 10; i++) {
+ let newList = {
+ title: Random.csentence(5, 30),
+ date: Random.date() + ' ' + Random.time()
+ }
+ list.push(newList)
+}
+
+export default {
+ getList: () => {
+ return {
+ total: list.length,
+ items: list
+ }
+ }
+}
+
diff --git a/src/utils/request.js b/src/utils/request.js
index f50ca41..7663ef0 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -2,7 +2,7 @@ import axios from 'axios'
// create an axios instance
const service = axios.create({
- baseURL: '', // base_url
+ baseURL: process.env.BASE_API, // api 的 base_url
timeout: 5000 // request timeout
})
@@ -25,20 +25,47 @@ service.interceptors.request.use(
// response interceptor
service.interceptors.response.use(
+ response => response,
/**
* 下面的注释为通过在response里,自定义code来标示请求状态
+ * 当code返回如下情况则说明权限有问题,登出并返回到登录页
+ * 如想通过 xmlhttprequest 来状态码标识 逻辑可写在下面error中
+ * 以下代码均为样例,请结合自生需求加以修改,若不需要,则可删除
*/
- response => {
- const res = response.data
- if (res.code !== 200) {
- alert( res.message)
- } else {
- return response.data
- }
- },
+ // response => {
+ // const res = response.data
+ // if (res.code !== 20000) {
+ // Message({
+ // message: res.message,
+ // type: 'error',
+ // duration: 5 * 1000
+ // })
+ // // 50008:非法的token; 50012:其他客户端登录了; 50014:Token 过期了;
+ // if (res.code === 50008 || res.code === 50012 || res.code === 50014) {
+ // // 请自行在引入 MessageBox
+ // // import { Message, MessageBox } from 'element-ui'
+ // MessageBox.confirm('你已被登出,可以取消继续留在该页面,或者重新登录', '确定登出', {
+ // confirmButtonText: '重新登录',
+ // cancelButtonText: '取消',
+ // type: 'warning'
+ // }).then(() => {
+ // store.dispatch('FedLogOut').then(() => {
+ // location.reload() // 为了重新实例化vue-router对象 避免bug
+ // })
+ // })
+ // }
+ // return Promise.reject('error')
+ // } else {
+ // return response.data
+ // }
+ // },
error => {
console.log('err' + error) // for debug
- alert(error.message)
+ // Message({
+ // message: error.message,
+ // type: 'error',
+ // duration: 5 * 1000
+ // })
return Promise.reject(error)
}
)
diff --git a/src/views/pdasection.vue b/src/views/pdasection.vue
index 3f6b5dd..a361f9c 100644
--- a/src/views/pdasection.vue
+++ b/src/views/pdasection.vue
@@ -1,19 +1,33 @@
-
+
--
libgit2 0.21.4