diff --git a/src/router.js b/src/router.js
index 8c2780b..2a987ee 100644
--- a/src/router.js
+++ b/src/router.js
@@ -40,6 +40,14 @@ const Routers = function ({ history, app }) {
cb(null, require('./routes/users/'))
}, 'users')
},
+ }, {
+ path: 'request',
+ name: 'request',
+ getComponent (nextState, cb) {
+ require.ensure([], require => {
+ cb(null, require('./routes/request/'))
+ }, 'request')
+ },
}, {
path: 'UIElement/iconfont',
name: 'UIElement/iconfont',
diff --git a/src/routes/request/index.js b/src/routes/request/index.js
new file mode 100644
index 0000000..aa5aaad
--- /dev/null
+++ b/src/routes/request/index.js
@@ -0,0 +1,113 @@
+import React from 'react'
+import styles from './index.less'
+import { request, config } from '../../utils'
+import {
+ Row,
+ Col,
+ Card,
+ Select,
+ Input,
+ Button,
+} from 'antd'
+
+const requestOptions = [
+ {
+ url: `${location.origin}/api/users`,
+ desc: 'intercept request by mock.js',
+ },
+ {
+ url: `${config.baseURL}/admin/order`,
+ desc: 'cross-domain request, but match config.baseURL(./src/utils/config.js)',
+ },
+ {
+ url: 'http://www.zuimeitianqi.com/zuimei/queryWeather',
+ data: {
+ cityCode: '01010101',
+ },
+ desc: 'cross-domain request by yahoo\'s yql',
+ }]
+
+export default class RequestPage extends React.Component {
+ constructor (props) {
+ super(props)
+ this.state = {
+ currntRequest: requestOptions[0],
+ method: 'get',
+ result: '',
+ }
+ }
+ componentDidMount () {
+ this.handleRequest()
+ }
+
+ handleRequest = () => {
+ const { currntRequest } = this.state
+ const { desc, ...requestParams } = currntRequest
+ this.setState({
+ ...this.state,
+ result:
+ 请求中
+ url:{currntRequest.url}
+ method:{currntRequest.method}
+ params:{currntRequest.data ? JSON.stringify(currntRequest.data) : 'null'}
+
,
+ })
+ request({ ...requestParams }).then((data) => {
+ const state = this.state
+ state.result = [this.state.result, 请求完成
{JSON.stringify(data)}
]
+ this.setState(state)
+ })
+ }
+
+ handeleURLChange = (value) => {
+ const state = this.state
+ const currntItem = requestOptions.filter(item => value === item.url)
+ state.currntRequest = currntItem[0]
+ this.setState(state)
+ }
+
+ render () {
+ const colProps = {
+ lg: 12,
+ md: 24,
+ }
+ const { result, currntRequest } = this.state
+ const { methoad = 'get' } = currntRequest
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
Params:
+
+
{currntRequest.desc}
+
+
+ {result}
+
+
+
+
+
+ )
+ }
+}
diff --git a/src/routes/request/index.less b/src/routes/request/index.less
new file mode 100644
index 0000000..9b92e6f
--- /dev/null
+++ b/src/routes/request/index.less
@@ -0,0 +1,29 @@
+.option {
+ display: flex;
+ justify-content: space-between;
+}
+
+.result {
+ height: 600px;
+ width: 100%;
+ background: #f7f7f7;
+ border-color: #F1F1F1;
+ padding: 16px 8px;
+ margin-top: 16px;
+ word-break: break-word;
+ line-height: 24px;
+ overflow: scroll;
+}
+
+.params {
+ display: flex;
+ justify-content: space-between;
+ margin-top: 16px;
+ line-height: 32px;
+
+ .label {
+ width: 100px;
+ margin-right: 2px;
+ text-transform: uppercase;
+ }
+}
diff --git a/src/utils/menu.js b/src/utils/menu.js
index 4382ae7..0b4e5eb 100644
--- a/src/utils/menu.js
+++ b/src/utils/menu.js
@@ -9,9 +9,14 @@ module.exports = [
name: '用户管理',
icon: 'user',
},
+ {
+ key: 'request',
+ name: 'Request',
+ icon: 'api',
+ },
{
key: 'UIElement',
- name: 'UI组件',
+ name: 'UI Element',
icon: 'camera-o',
clickable: false,
child: [
diff --git a/src/utils/request.js b/src/utils/request.js
index d32f41b..026cd70 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -3,7 +3,11 @@ import qs from 'qs'
import config from './config'
const fetch = (options) => {
- const { method = 'get', data, url } = options
+ const {
+ method = 'get',
+ data,
+ url,
+ } = options
switch (method.toLowerCase()) {
case 'get':
return axios.get(url, { params: data })
@@ -33,5 +37,7 @@ export default function request (options) {
return fetch(options).then((result) => {
return result.data
+ }).catch((error) => {
+ console.log(error)
})
}