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