yapi/client/containers/AddInterface/AddInterface.js

94 lines
2.3 KiB
JavaScript
Raw Normal View History

2017-07-18 12:53:53 +08:00
import './AddInterface.scss'
import React, { Component } from 'react'
2017-07-20 14:48:29 +08:00
import PropTypes from 'prop-types'
import axios from 'axios'
import { connect } from 'react-redux'
import { autobind } from 'core-decorators'
2017-07-20 16:34:46 +08:00
import { Button, Tabs } from 'antd'
2017-07-18 12:53:53 +08:00
import ReqMethod from './ReqMethod/ReqMethod.js'
import ReqHeader from './ReqHeader/ReqHeader.js'
import ReqParams from './ReqParams/ReqParams.js'
import ResParams from './ResParams/ResParams.js'
import Result from './Result/Result.js'
2017-07-20 14:48:29 +08:00
import { saveForms } from '../../actions/addInterface.js'
2017-07-18 12:53:53 +08:00
2017-07-20 14:48:29 +08:00
@connect(
state => {
return {
2017-07-20 16:57:21 +08:00
reqParams: state.addInterface.reqParams,
2017-07-20 19:26:04 +08:00
resParams: state.addInterface.resParams,
method: state.addInterface.method,
url: state.addInterface.url,
interfaceName: state.addInterface.interfaceName
2017-07-20 14:48:29 +08:00
}
},
{
saveForms
}
)
2017-07-18 12:53:53 +08:00
2017-07-20 14:48:29 +08:00
class AddInterface extends Component {
static propTypes = {
reqParams: PropTypes.string,
2017-07-20 19:26:04 +08:00
resParams: PropTypes.string,
method: PropTypes.string,
url: PropTypes.string,
interfaceName: PropTypes.string,
2017-07-20 14:48:29 +08:00
saveForms: PropTypes.func
}
2017-07-18 12:53:53 +08:00
constructor (props) {
super(props)
}
2017-07-20 14:48:29 +08:00
@autobind
2017-07-18 12:53:53 +08:00
saveForms () {
2017-07-20 19:26:04 +08:00
const { interfaceName, url, reqParams, resParams } = this.props
2017-07-20 14:48:29 +08:00
const params = {
2017-07-20 19:26:04 +08:00
title: interfaceName,
path: url,
2017-07-20 14:48:29 +08:00
method: 'POST',
2017-07-20 19:26:04 +08:00
project_id: 558,
req_params_type: 'json',
req_params_other: reqParams,
res_body_type: 'json',
res_body: resParams
2017-07-20 14:48:29 +08:00
}
axios.post('/interface/add', params)
.then(data => {
2017-07-20 19:26:04 +08:00
console.log('data', data)
2017-07-20 14:48:29 +08:00
})
.catch(e => {
console.log(e)
})
2017-07-18 12:53:53 +08:00
}
render () {
2017-07-20 16:34:46 +08:00
const TabPane = Tabs.TabPane
2017-07-18 12:53:53 +08:00
return (
2017-07-20 16:38:50 +08:00
<section className="add-interface-box">
<div className="content">
<Tabs defaultActiveKey="1">
<TabPane tab="接口详情" key="1">
2017-07-20 16:34:46 +08:00
<Button type="primary" className="save" onClick={this.saveForms}>保存</Button>
<ReqMethod />
<ReqHeader />
<ReqParams />
<ResParams />
<Result />
2017-07-20 16:38:50 +08:00
</TabPane>
<TabPane tab="Mock" key="2">mock</TabPane>
<TabPane tab="测试" key="3">测试</TabPane>
</Tabs>
</div>
</section>
2017-07-18 12:53:53 +08:00
)
}
}
export default AddInterface