diff --git a/.roadhogrc.js b/.roadhogrc.js index dd7cc1e..e3b62c8 100644 --- a/.roadhogrc.js +++ b/.roadhogrc.js @@ -9,6 +9,19 @@ export default { entry: 'src/index.js', svgSpriteLoaderDirs: svgSpriteDirs, "theme": "./theme.config.js", + // 接口代理示例 + // "proxy": { + // "/api/v1": { + // "target": "http://api.zuiidea.com", + // "changeOrigin": true, + // "pathRewrite": { "^/api/v1" : "/v1" } + // }, + // "/api/v2": { + // "target": "http://192.168.0.110", + // "changeOrigin": true, + // "pathRewrite": { "^/api/v2" : "/api/v2" } + // } + // }, "env": { "development": { "extraBabelPlugins": [ diff --git a/src/routes/request/index.js b/src/routes/request/index.js index b798452..9f0a86d 100644 --- a/src/routes/request/index.js +++ b/src/routes/request/index.js @@ -10,20 +10,20 @@ import { Input, Button, } from 'antd' -const { api, baseURL } = config -const { dashboard, users, userLogin, user } = api +const { api } = config +const { dashboard, users, userLogin, user, v1test, v2test } = api const requestOptions = [ { - url: baseURL + user.replace('/:id', ''), + url: user.replace('/:id', ''), desc: 'intercept request by mock.js', }, { - url: baseURL + dashboard, + url: dashboard, desc: 'intercept request by mock.js', }, { - url: baseURL + userLogin, + url: userLogin, method: 'post', data: { username: 'guest', @@ -32,18 +32,18 @@ const requestOptions = [ desc: 'intercept request by mock.js', }, { - url: baseURL + users, + url: users, desc: 'intercept request by mock.js', }, { - url: baseURL + user, + url: user, desc: 'intercept request by mock.js', data: Mock.mock({ id: '@id', }), }, { - url: baseURL + user.replace('/:id', ''), + url: user.replace('/:id', ''), desc: 'intercept request by mock.js', method: 'post', data: Mock.mock({ @@ -60,7 +60,7 @@ const requestOptions = [ }), }, { - url: baseURL + user, + url: user, desc: 'intercept request by mock.js', method: 'patch', data: Mock.mock({ @@ -69,7 +69,7 @@ const requestOptions = [ }), }, { - url: baseURL + user, + url: user, desc: 'intercept request by mock.js', method: 'delete', data: Mock.mock({ @@ -77,7 +77,12 @@ const requestOptions = [ }), }, { - url: `${baseURL}/test`, + url: v1test, + desc: 'intercept request by mock.js', + method: 'get', + }, + { + url: v2test, desc: 'intercept request by mock.js', method: 'get', }, diff --git a/src/utils/config.js b/src/utils/config.js index 1e80155..cbf4c9c 100644 --- a/src/utils/config.js +++ b/src/utils/config.js @@ -1,3 +1,6 @@ +const APIV1 = '/api/v1' +const APIV2 = '/api/v2' + module.exports = { name: 'AntD Admin', prefix: 'antdAdmin', @@ -5,18 +8,19 @@ module.exports = { logo: '/logo.png', iconFontCSS: '/iconfont.css', iconFontJS: '/iconfont.js', - baseURL: 'http://localhost:8000/api/v1', YQL: ['http://www.zuimeitianqi.com'], CORS: ['http://localhost:7000'], openPages: ['/login'], apiPrefix: '/api/v1', api: { - userLogin: '/user/login', - userLogout: '/user/logout', - userInfo: '/userInfo', - users: '/users', - posts: '/posts', - user: '/user/:id', - dashboard: '/dashboard', + userLogin: `${APIV1}/user/login`, + userLogout: `${APIV1}/user/logout`, + userInfo: `${APIV1}/userInfo`, + users: `${APIV1}/users`, + posts: `${APIV1}/posts`, + user: `${APIV1}/user/:id`, + dashboard: `${APIV1}/dashboard`, + v1test: `${APIV1}/test`, + v2test: `${APIV2}/test`, }, } diff --git a/src/utils/request.js b/src/utils/request.js index d1ad8c8..8a8c853 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -1,13 +1,11 @@ import axios from 'axios' import qs from 'qs' -import { YQL, CORS, baseURL } from './config' +import { YQL, CORS } from './config' import jsonp from 'jsonp' import lodash from 'lodash' import pathToRegexp from 'path-to-regexp' import { message } from 'antd' -axios.defaults.baseURL = baseURL - const fetch = (options) => { let { method = 'get', @@ -94,23 +92,21 @@ export default function request (options) { return { success: true, message: statusText, - status, + statusCode: status, ...data, } }).catch((error) => { const { response } = error let msg - let status - let otherData = {} - if (response) { + let statusCode + if (response && response instanceof Object) { const { data, statusText } = response - otherData = data - status = response.status + statusCode = response.status msg = data.message || statusText } else { - status = 600 - msg = 'Network Error' + statusCode = 600 + msg = error.message || 'Network Error' } - return { success: false, status, message: msg, ...otherData } + return { success: false, statusCode, message: msg } }) } diff --git a/webpack.config.js b/webpack.config.js index 9f71906..cf144a2 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -17,11 +17,11 @@ module.exports = (webpackConfig) => { }).join('!') // PreLoaders - webpackConfig.module.preLoaders = [{ - test: /\.js$/, - enforce: 'pre', - loader: 'eslint', - }] + // webpackConfig.module.preLoaders = [{ + // test: /\.js$/, + // enforce: 'pre', + // loader: 'eslint', + // }] return webpackConfig }