in src/routes/Document/components/AddAndUpdateApiDoc.js [87:404]
render() {
const {
onCancel,
form,
contextPath = "",
apiPath = "",
httpMethod = "",
consume = "",
produce = "",
version = "",
rpcType = "",
state = "",
ext = "{}",
apiOwner = "",
apiDesc = "",
apiSource = "",
document = "{}",
visible = false,
updateDocument = () => {},
updateExt = () => {},
} = this.props;
const { getFieldDecorator, getFieldValue } = form;
const formItemLayout = {
labelCol: {
sm: { span: 6 },
},
wrapperCol: {
sm: { span: 18 },
},
};
return (
<Modal
visible={visible}
onCancel={onCancel}
onOk={this.handleSubmit}
forceRender
width="100%"
title="Api"
>
<Form className="login-form">
<Form.Item
label={getIntlContent("SHENYU.DOCUMENT.APIDOC.CONTEXTPATH")}
{...formItemLayout}
>
{getFieldDecorator("contextPath", {
rules: [
{
required: true,
message: getIntlContent("SHENYU.DOCUMENT.APIDOC.CONTEXTPATH"),
},
],
initialValue: contextPath,
})(
<Input
allowClear
placeholder={getIntlContent(
"SHENYU.DOCUMENT.APIDOC.CONTEXTPATH",
)}
/>,
)}
</Form.Item>
<Form.Item
label={getIntlContent("SHENYU.DOCUMENT.APIDOC.APIPATH")}
{...formItemLayout}
>
{getFieldDecorator("apiPath", {
rules: [
{
required: true,
message: getIntlContent("SHENYU.DOCUMENT.APIDOC.APIPATH"),
},
],
initialValue: apiPath,
})(
<Input
allowClear
placeholder={getIntlContent("SHENYU.DOCUMENT.APIDOC.APIPATH")}
/>,
)}
</Form.Item>
<Form.Item
label={getIntlContent("SHENYU.DOCUMENT.APIDOC.HTTPMETHOD")}
{...formItemLayout}
>
{getFieldDecorator("httpMethod", {
rules: [
{
required: true,
message: getIntlContent("SHENYU.DOCUMENT.APIDOC.HTTPMETHOD"),
},
],
initialValue: httpMethod,
})(
<Select>
{Object.values(Method).map((e, i) => {
return (
<Select.Option key={`${e} ${i}`} value={i}>
{e}
</Select.Option>
);
})}
</Select>,
)}
</Form.Item>
<Form.Item
label={getIntlContent("SHENYU.DOCUMENT.APIDOC.CONSUME")}
{...formItemLayout}
>
{getFieldDecorator("consume", {
rules: [
{
required: true,
message: getIntlContent("SHENYU.DOCUMENT.APIDOC.CONSUME"),
},
],
initialValue: consume,
})(
<Input
allowClear
placeholder={getIntlContent("SHENYU.DOCUMENT.APIDOC.CONSUME")}
/>,
)}
</Form.Item>
<Form.Item
label={getIntlContent("SHENYU.DOCUMENT.APIDOC.PRODUCE")}
{...formItemLayout}
>
{getFieldDecorator("produce", {
rules: [
{
required: true,
message: getIntlContent("SHENYU.DOCUMENT.APIDOC.PRODUCE"),
},
],
initialValue: produce,
})(
<Input
allowClear
placeholder={getIntlContent("SHENYU.DOCUMENT.APIDOC.PRODUCE")}
/>,
)}
</Form.Item>
<Form.Item
label={getIntlContent("SHENYU.DOCUMENT.APIDOC.VERSION")}
{...formItemLayout}
>
{getFieldDecorator("version", {
rules: [
{
required: true,
message: getIntlContent("SHENYU.DOCUMENT.APIDOC.VERSION"),
},
],
initialValue: version,
})(
<Input
allowClear
placeholder={getIntlContent("SHENYU.DOCUMENT.APIDOC.VERSION")}
/>,
)}
</Form.Item>
<Form.Item
label={getIntlContent("SHENYU.DOCUMENT.APIDOC.RPCTYPE")}
{...formItemLayout}
>
{getFieldDecorator("rpcType", {
rules: [
{
required: true,
message: getIntlContent("SHENYU.DOCUMENT.APIDOC.RPCTYPE"),
},
],
initialValue: rpcType,
})(
<Select>
{RPCTYPE.map((e, i) => {
return (
<Select.Option key={`${e} ${i}`} value={e}>
{e}
</Select.Option>
);
})}
</Select>,
)}
</Form.Item>
<Form.Item
label={getIntlContent("SHENYU.DOCUMENT.APIDOC.STATE")}
{...formItemLayout}
>
{getFieldDecorator("state", {
rules: [
{
required: true,
message: getIntlContent("SHENYU.DOCUMENT.APIDOC.STATE"),
},
],
initialValue: state,
})(
<Radio.Group buttonStyle="solid">
{STATE_TYPE.map((e, i) => {
return (
<Radio.Button
key={`${e} ${i}`}
value={i}
disabled={!getFieldValue("id") && e === "offline"}
>
{e}
</Radio.Button>
);
})}
</Radio.Group>,
)}
</Form.Item>
<Form.Item
label={getIntlContent("SHENYU.DOCUMENT.APIDOC.EXT")}
{...formItemLayout}
>
<ReactJson
src={JSON.parse(ext)}
theme="monokai"
displayDataTypes={false}
name={false}
onAdd={updateExt}
onEdit={updateExt}
onDelete={updateExt}
style={{ borderRadius: 4, padding: 16, overflow: "auto" }}
/>
</Form.Item>
<Form.Item
label={getIntlContent("SHENYU.DOCUMENT.APIDOC.APIOWNER")}
{...formItemLayout}
>
{getFieldDecorator("apiOwner", {
rules: [
{
required: true,
message: getIntlContent("SHENYU.DOCUMENT.APIDOC.APIOWNER"),
},
],
initialValue: apiOwner,
})(
<Input
allowClear
placeholder={getIntlContent("SHENYU.DOCUMENT.APIDOC.APIOWNER")}
/>,
)}
</Form.Item>
<Form.Item
label={getIntlContent("SHENYU.DOCUMENT.APIDOC.APIDESC")}
{...formItemLayout}
>
{getFieldDecorator("apiDesc", {
rules: [
{
required: true,
message: getIntlContent("SHENYU.DOCUMENT.APIDOC.APIDESC"),
},
],
initialValue: apiDesc,
})(
<Input
allowClear
placeholder={getIntlContent("SHENYU.DOCUMENT.APIDOC.APIDESC")}
/>,
)}
</Form.Item>
<Form.Item
label={getIntlContent("SHENYU.DOCUMENT.APIDOC.APISOURCE")}
{...formItemLayout}
>
{getFieldDecorator("apiSource", {
rules: [
{
required: true,
message: getIntlContent("SHENYU.DOCUMENT.APIDOC.APISOURCE"),
},
],
initialValue: apiSource,
})(
<Select>
{API_SOURCE_TYPE.map((e, i) => {
return (
<Select.Option key={`${e} ${i}`} value={i}>
{e}
</Select.Option>
);
})}
</Select>,
)}
</Form.Item>
<Form.Item
label={getIntlContent("SHENYU.DOCUMENT.APIDOC.DOCUMENT")}
{...formItemLayout}
>
<ReactJson
src={JSON.parse(document)}
theme="monokai"
displayDataTypes={false}
name={false}
onAdd={updateDocument}
onEdit={updateDocument}
onDelete={updateDocument}
style={{ borderRadius: 4, padding: 16, overflow: "auto" }}
/>
</Form.Item>
<Form.Item hidden>
{getFieldDecorator("tagIds")(<Input allowClear />)}
</Form.Item>
<Form.Item hidden>
{getFieldDecorator("id")(<Input allowClear />)}
</Form.Item>
</Form>
</Modal>
);
}