From 47c1fdcaff494bb04914f54285b19c6f6cbdd18b Mon Sep 17 00:00:00 2001 From: zuiidea Date: Mon, 27 Mar 2017 14:41:01 +0800 Subject: [PATCH] adjust request --- mock/users.js | 1 + src/components/DataTable/DataTable.js | 4 ++-- src/components/skin.less | 4 ++++ src/routes/chart/Container.less | 14 +++++++------- src/routes/request/index.js | 5 +++++ src/utils/config.js | 3 +++ src/utils/request.js | 19 +++++++++++++------ 7 files changed, 35 insertions(+), 15 deletions(-) diff --git a/mock/users.js b/mock/users.js index eecdebf..af99419 100644 --- a/mock/users.js +++ b/mock/users.js @@ -30,6 +30,7 @@ let usersListData = global[dataKey] module.exports = { 'GET /api/users' (req, res) { + console.log(req, res) const page = qs.parse(req.query) const pageSize = page.pageSize || 10 const currentPage = page.page || 1 diff --git a/src/components/DataTable/DataTable.js b/src/components/DataTable/DataTable.js index f484e07..542080b 100644 --- a/src/components/DataTable/DataTable.js +++ b/src/components/DataTable/DataTable.js @@ -59,8 +59,8 @@ class DataTable extends React.Component { const { fetch: { url, data, dataKey } } = this.props const { fetchData } = this.state this.setState({ loading: true }) - request(url, { - result: 10, + this.promise = request({ + url, data: { ...data, ...fetchData, diff --git a/src/components/skin.less b/src/components/skin.less index 55f873f..514279f 100644 --- a/src/components/skin.less +++ b/src/components/skin.less @@ -88,6 +88,10 @@ body { .ant-select-dropdown-menu-item { padding: 12px 16px !important; } + + .margin-right { + margin-right: 16px; + } } @media (min-width: 1600px) { .ant-col-xl-48 { diff --git a/src/routes/chart/Container.less b/src/routes/chart/Container.less index 4186376..4849b19 100644 --- a/src/routes/chart/Container.less +++ b/src/routes/chart/Container.less @@ -2,6 +2,13 @@ width: 100%; position: relative; display: inline-block; + + :global { + .recharts-responsive-container { + width: e("calc(100% + 56px)")!important; + margin-left: -32px; + } + } } .content { @@ -11,10 +18,3 @@ top: 0; bottom: 0; } - -:global { - .recharts-responsive-container { - width: e("calc(100% + 56px)")!important; - margin-left: -32px; - } -} diff --git a/src/routes/request/index.js b/src/routes/request/index.js index f6bf040..5fb497b 100644 --- a/src/routes/request/index.js +++ b/src/routes/request/index.js @@ -62,6 +62,11 @@ const requestOptions = [ id: 10, }), }, + { + url: `${location.origin}/api/test`, + desc: 'intercept request by mock.js', + method: 'get', + }, { url: `${config.baseURL}/admin/order`, desc: 'cross-domain request, but match config.baseURL(./src/utils/config.js)', diff --git a/src/utils/config.js b/src/utils/config.js index 50b61b1..66cb426 100644 --- a/src/utils/config.js +++ b/src/utils/config.js @@ -7,4 +7,7 @@ module.exports = { needLogin: true, iconFontUrl: '//at.alicdn.com/t/font_c4y7asse3q1cq5mi.js', baseURL: 'http://47.92.30.98:7001/api', + crossDomains: [ + 'http://www.zuimeitianqi.com', + ], } diff --git a/src/utils/request.js b/src/utils/request.js index aa6a2e6..032b6ee 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -10,7 +10,7 @@ const fetch = (options) => { } = options switch (method.toLowerCase()) { case 'get': - return axios.get(url, data) + return axios.get(`${url}${options.data ? `?${qs.stringify(options.data)}` : ''}`) case 'delete': return axios.delete(url, { data }) case 'head': @@ -28,17 +28,24 @@ const fetch = (options) => { export default function request (options) { if (options.url.indexOf('//') > -1) { - const origin = `${options.url.split('//')[0]}//${options.url.split('//')[1].split('/')[0]}` - if (window.location.origin !== origin && config.baseURL.indexOf(origin) < 0) { + if (config.crossDomains && config.crossDomains.indexOf(`${options.url.split('//')[0]}//${options.url.split('//')[1].split('/')[0]}`) > -1) { + options.isCross = true options.url = `http://query.yahooapis.com/v1/public/yql?q=select * from json where url='${options.url}?${qs.stringify(options.data)}'&format=json` delete options.data } } return fetch(options).then((response) => { - return response.data + const { statusText, status } = response + let data = options.isCross ? response.data.query.results.json : response.data + return { + code: 0, + status, + message: statusText, + ...data, + } }).catch((error) => { - console.log(error) - return Promise.reject(error) + const { response = { statusText: 'Network Error' } } = error + return { code: 1, message: response.statusText } }) }