import React from 'react' import Mock from 'mockjs' import { request, config } from 'utils' import { Row, Col, Card, Select, Input, Button } from 'antd' import styles from './index.less' const { api } = config const { dashboard, users, userLogin, user, v1test, v2test } = api const requestOptions = [ { url: user.replace('/:id', ''), desc: 'intercept request by mock.js', }, { url: dashboard, desc: 'intercept request by mock.js', }, { url: userLogin, method: 'post', data: { username: 'guest', password: 'guest', }, desc: 'intercept request by mock.js', }, { url: users, desc: 'intercept request by mock.js', }, { url: user, desc: 'intercept request by mock.js', data: Mock.mock({ id: '@id', }), }, { url: user.replace('/:id', ''), desc: 'intercept request by mock.js', method: 'post', data: Mock.mock({ name: '@cname', nickName: '@last', phone: /^1[34578]\d{9}$/, 'age|11-99': 1, address: '@county(true)', isMale: '@boolean', email: '@email', avatar () { return Mock.Random.image( '100x100', Mock.Random.color(), '#757575', 'png', this.nickName.substr(0, 1) ) }, }), }, { url: user, desc: 'intercept request by mock.js', method: 'patch', data: Mock.mock({ id: '@id', name: '@cname', }), }, { url: user, desc: 'intercept request by mock.js', method: 'delete', data: Mock.mock({ id: '@id', }), }, { url: v1test, desc: 'intercept request by mock.js', method: 'get', }, { url: v2test, desc: 'intercept request by mock.js', method: 'get', }, { url: 'http://api.asilu.com/weather/', 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.result = [ this.state.result,
请求完成
{JSON.stringify(data)}
, ] this.setState(state) }) } handeleURLChange = value => { const { state } = this const curretUrl = value.split('?')[0] const curretMethod = value.split('?')[1] const currntItem = requestOptions.filter(item => { const { method = 'get' } = item return curretUrl === item.url && curretMethod === method }) const [currntRequest] = currntItem state.currntRequest = currntRequest this.setState(state) } render () { const colProps = { lg: 12, md: 24, } const { result, currntRequest } = this.state const { method = 'get' } = currntRequest return (
Params:
{currntRequest.desc}
{result}
) } }