From d3e36b19b84c569b3b4d3e219651639a58bbb7d3 Mon Sep 17 00:00:00 2001 From: "waliang.wang" Date: Wed, 19 Jul 2017 19:29:18 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E6=89=8B=E5=8A=A8?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E6=A0=B7=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- client/actions/addInterFace.js | 26 ++++++++++++- client/actions/addInterface.js | 26 ++++++++++++- client/constants/action-types.js | 4 ++ .../AddInterface/ReqHeader/ReqHeader.js | 31 ++++++++++++++++ .../AddInterface/ReqHeader/ReqList.js | 8 ++-- .../AddInterface/ReqParams/ParamsList.js | 37 ++++++++++++++++++- .../AddInterface/ReqParams/ReqParams.js | 27 ++++++++++---- .../AddInterface/ResParams/ResParams.js | 37 ++++++++++++++++++- client/reducer/addInterface/addInterface.js | 31 ++++++++++++++-- 9 files changed, 208 insertions(+), 19 deletions(-) diff --git a/client/actions/addInterFace.js b/client/actions/addInterFace.js index 886ca716..998bc730 100644 --- a/client/actions/addInterFace.js +++ b/client/actions/addInterFace.js @@ -4,7 +4,10 @@ import { FETCH_ADD_INTERFACE_HEADER_VALUE, ADD_INTERFACE_SEQ_HEADER, DELETE_INTERFACE_SEQ_HEADER, - ADD_INTERFACE_REQ_PARAMS + ADD_INTERFACE_REQ_PARAMS, + DELETE_INTERFACE_REQ_PARAMS, + ADD_INTERFACE_RES_PARAMS, + DELETE_INTERFACE_RES_PARAMS } from '../constants/action-types.js' export function pushInputValue (value) { @@ -49,3 +52,24 @@ export function addReqParams (value) { }; } +export function deleteReqParams (value) { + return { + type: DELETE_INTERFACE_REQ_PARAMS, + payload: value + }; +} + +export function addResParams (value) { + return { + type: ADD_INTERFACE_RES_PARAMS, + payload: value + }; +} + +export function deleteResParams (value) { + return { + type: DELETE_INTERFACE_RES_PARAMS, + payload: value + }; +} + diff --git a/client/actions/addInterface.js b/client/actions/addInterface.js index 886ca716..998bc730 100644 --- a/client/actions/addInterface.js +++ b/client/actions/addInterface.js @@ -4,7 +4,10 @@ import { FETCH_ADD_INTERFACE_HEADER_VALUE, ADD_INTERFACE_SEQ_HEADER, DELETE_INTERFACE_SEQ_HEADER, - ADD_INTERFACE_REQ_PARAMS + ADD_INTERFACE_REQ_PARAMS, + DELETE_INTERFACE_REQ_PARAMS, + ADD_INTERFACE_RES_PARAMS, + DELETE_INTERFACE_RES_PARAMS } from '../constants/action-types.js' export function pushInputValue (value) { @@ -49,3 +52,24 @@ export function addReqParams (value) { }; } +export function deleteReqParams (value) { + return { + type: DELETE_INTERFACE_REQ_PARAMS, + payload: value + }; +} + +export function addResParams (value) { + return { + type: ADD_INTERFACE_RES_PARAMS, + payload: value + }; +} + +export function deleteResParams (value) { + return { + type: DELETE_INTERFACE_RES_PARAMS, + payload: value + }; +} + diff --git a/client/constants/action-types.js b/client/constants/action-types.js index 58133575..ca3bb954 100644 --- a/client/constants/action-types.js +++ b/client/constants/action-types.js @@ -9,6 +9,10 @@ export const FETCH_ADD_INTERFACE_TAG_VALUE = 'FETCH_ADD_INTERFACE_TAG_VALUE' export const FETCH_ADD_INTERFACE_HEADER_VALUE = 'FETCH_ADD_INTERFACE_HEADER_VALUE' export const ADD_INTERFACE_SEQ_HEADER = 'ADD_INTERFACE_SEQ_HEADER' export const DELETE_INTERFACE_SEQ_HEADER = 'DELETE_INTERFACE_SEQ_HEADER' +export const ADD_INTERFACE_REQ_PARAMS = 'ADD_INTERFACE_REQ_PARAMS' +export const DELETE_INTERFACE_REQ_PARAMS = 'DELETE_INTERFACE_REQ_PARAMS' +export const ADD_INTERFACE_RES_PARAMS = 'ADD_INTERFACE_RES_PARAMS' +export const DELETE_INTERFACE_RES_PARAMS = 'DELETE_INTERFACE_RES_PARAMS' // group export const FETCH_GROUP_LIST = 'FETCH_GROUP_LIST' diff --git a/client/containers/AddInterface/ReqHeader/ReqHeader.js b/client/containers/AddInterface/ReqHeader/ReqHeader.js index 219fb730..ae20270b 100644 --- a/client/containers/AddInterface/ReqHeader/ReqHeader.js +++ b/client/containers/AddInterface/ReqHeader/ReqHeader.js @@ -69,3 +69,34 @@ class ReqHeader extends Component { } export default ReqHeader + + + + +{ + "desc": "api", + "method": "post", + "path": "/testapi", + "project_id": 8, + "req_headers": [ + { + "key": "h", + "value": "t" + } + ], + "req_params_type": "json", + "req_params": [ + { + "name": "uid", + "value": 100, + "type": "text" + }, + { + "name": "gid", + "value": 1001, + "type": "text" + } + ], + "res_body_type": "json", + "res_body": "{\"tt\": 222}" +} diff --git a/client/containers/AddInterface/ReqHeader/ReqList.js b/client/containers/AddInterface/ReqHeader/ReqList.js index 53adb509..e7323439 100644 --- a/client/containers/AddInterface/ReqHeader/ReqList.js +++ b/client/containers/AddInterface/ReqHeader/ReqList.js @@ -41,10 +41,12 @@ class ReqList extends Component { super(props) } + @autobind handleChange (value) { this.props.reqTagValue(value) } + @autobind handleBlur (e) { const value = e.target.value this.props.reqHeaderValue(value) @@ -65,14 +67,12 @@ class ReqList extends Component { render () { const Option = Select.Option - const handleChange = this.handleChange.bind(this) - const handleBlur = this.handleBlur.bind(this) const dataNum = this.props.dataNum return (
  • 头部标签 {this.props.tagValue} {this.props.headerValue} - @@ -80,7 +80,7 @@ class ReqList extends Component { 头部内容 - + ×
  • ) diff --git a/client/containers/AddInterface/ReqParams/ParamsList.js b/client/containers/AddInterface/ReqParams/ParamsList.js index 7e4f4095..2a7eaa53 100644 --- a/client/containers/AddInterface/ReqParams/ParamsList.js +++ b/client/containers/AddInterface/ReqParams/ParamsList.js @@ -1,13 +1,48 @@ import React, { Component } from 'react' import { Select, Input } from 'antd' +import PropTypes from 'prop-types' +import { autobind } from 'core-decorators' +import { connect } from 'react-redux' +import { deleteReqParams } from '../../../actions/addInterface.js' + +@connect( + state => { + return { + reqParams: state.addInterface.reqParams + } + }, + { + deleteReqParams + } +) class ParamsList extends Component { + static propTypes = { + reqParams: PropTypes.array, + dataNum: PropTypes.number, + deleteReqParams: PropTypes.func + } + constructor(props) { super(props) } + @autobind + deleteReqParams (e) { + let newSeqParams = [] + let reqParams = this.props.reqParams + let dataNum = e.target.getAttribute('data-num') + reqParams.map(value => { + if (+dataNum !== value.id) { + newSeqParams.push(value) + } + }) + this.props.deleteReqParams(newSeqParams) + } + render () { const Option = Select.Option + const dataNum = this.props.dataNum return (
  • @@ -19,7 +54,7 @@ class ParamsList extends Component { 参数说明 - × + ×
  • ) } diff --git a/client/containers/AddInterface/ReqParams/ReqParams.js b/client/containers/AddInterface/ReqParams/ReqParams.js index 693685b4..448ea573 100644 --- a/client/containers/AddInterface/ReqParams/ReqParams.js +++ b/client/containers/AddInterface/ReqParams/ReqParams.js @@ -8,10 +8,19 @@ import { addReqParams } from '../../../actions/addInterface.js' +// 重新渲染页面 +const getReqList = function (self) { + const [reqList, reqParams] = [[], self.props.reqParams] + reqParams.map((value, key) => { + reqList.push() + }) + return reqList +} + @connect( state => { return { - seqParams: state.addInterface.seqParams + reqParams: state.addInterface.reqParams } }, { @@ -22,7 +31,7 @@ import { class ReqParams extends Component { static propTypes = { addReqParams: PropTypes.func, - seqParams: PropTypes.array + reqParams: PropTypes.array } constructor(props) { @@ -31,17 +40,19 @@ class ReqParams extends Component { @autobind addSeqParams () { + console.log(1) let newSeqParams= [] - let seqParams = this.props.seqParams - let id = seqParams[seqParams.length-1].id + let reqParams = this.props.reqParams + let id = reqParams[reqParams.length-1].id let list = { id: ++id, paramsName: '', describe: '' } - seqParams.push(list) - newSeqParams.push(...seqParams) - // this.props.addReqParams(newSeqParams) + reqParams.push(list) + newSeqParams.push(...reqParams) + console.log(newSeqParams) + this.props.addReqParams(newSeqParams) } render () { @@ -50,7 +61,7 @@ class ReqParams extends Component {
    请求参数 :
      - + { getReqList(this) }
    diff --git a/client/containers/AddInterface/ResParams/ResParams.js b/client/containers/AddInterface/ResParams/ResParams.js index d8cb7cb1..976f882f 100644 --- a/client/containers/AddInterface/ResParams/ResParams.js +++ b/client/containers/AddInterface/ResParams/ResParams.js @@ -1,12 +1,47 @@ import React, { Component } from 'react' import { Button } from 'antd' +import PropTypes from 'prop-types' +import { connect } from 'react-redux' +import { autobind } from 'core-decorators' import ParamsList from './ParamsList.js' +import { addResParams } from '../../../actions/addInterface.js' + +@connect( + state => { + return { + resParams: state.addInterface.resParams + } + }, + { + addResParams + } +) class ResParams extends Component { + static propTypes = { + resParams: PropTypes.array, + addResParams: PropTypes.func + } + constructor(props) { super(props) } + @autobind + addResParams () { + let newResParams = [] + let resParams = this.props.resParams + let id = resParams[resParams.length-1].id + let list = { + id: ++id, + tag: '', + content: '' + } + resParams.push(list) + newResParams.push(...resParams) + this.props.addResParams(newResParams) + } + render () { return (
    @@ -17,7 +52,7 @@ class ResParams extends Component { - +
    ) } diff --git a/client/reducer/addInterface/addInterface.js b/client/reducer/addInterface/addInterface.js index db8e40d5..8610f7a0 100644 --- a/client/reducer/addInterface/addInterface.js +++ b/client/reducer/addInterface/addInterface.js @@ -4,7 +4,10 @@ import { FETCH_ADD_INTERFACE_HEADER_VALUE, ADD_INTERFACE_SEQ_HEADER, DELETE_INTERFACE_SEQ_HEADER, - ADD_INTERFACE_REQ_PARAMS + ADD_INTERFACE_REQ_PARAMS, + DELETE_INTERFACE_REQ_PARAMS, + ADD_INTERFACE_RES_PARAMS, + DELETE_INTERFACE_RES_PARAMS } from '../../constants/action-types.js' const initialState = { @@ -19,7 +22,14 @@ const initialState = { content: '' } ], - seqParams: [ + reqParams: [ + { + id: 0, + paramsName: '', + describe: '' + } + ], + resParams: [ { id: 0, paramsName: '', @@ -58,7 +68,22 @@ export default (state = initialState, action) => { case ADD_INTERFACE_REQ_PARAMS: return { ...state, - seqParams: action.payload + reqParams: action.payload + } + case DELETE_INTERFACE_REQ_PARAMS: + return { + ...state, + reqParams: action.payload + } + case ADD_INTERFACE_RES_PARAMS: + return { + ...state, + reqParams: action.payload + } + case DELETE_INTERFACE_RES_PARAMS: + return { + ...state, + reqParams: action.payload } default: return state