1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/rainbond-rainbond-ui

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
index.js 3.3 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
xuzl Отправлено 3 лет назад bcc92ad
import { Form, Input, message, Modal, Select } from 'antd';
import { connect } from 'dva';
import React, { PureComponent } from 'react';
import { formatMessage, FormattedMessage } from 'umi-plugin-locale';
import cookie from '../../utils/cookie';
const FormItem = Form.Item;
@Form.create()
@connect(({ region }) => {
return {
protocols: region.protocols || []
};
})
export default class AddPort extends PureComponent {
constructor(props){
super(props)
this.state = {
language: cookie.get('language') === 'zh-CN' ? true : false
}
}
componentWillMount() {}
handleSubmit = e => {
e.preventDefault();
this.props.form.validateFields((err, values) => {
if (!err) {
this.props.onOk && this.props.onOk(values);
}
});
};
handleCheckPort = (rule, value, callback) => {
const { getFieldValue } = this.props.form;
if (this.props.isImageApp || this.props.isDockerfile) {
if (value < 1 || value > 65534) {
callback(<FormattedMessage id='componentOverview.body.AddPort.callback'/>);
return;
}
}
callback();
};
render() {
const { getFieldDecorator } = this.props.form;
const { language } = this.state;
const formItemLayout = {
labelCol: {
xs: { span: 24 },
sm: { span: 4 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 }
}
};
const en_formItemLayout = {
labelCol: {
xs: { span: 24 },
sm: { span: 6 }
},
wrapperCol: {
xs: { span: 24 },
sm: { span: 16 }
}
};
const protocols = this.props.protocols || [];
const is_language = language ? formItemLayout : en_formItemLayout
return (
<Modal
title={<FormattedMessage id='componentOverview.body.AddPort.title'/>}
onOk={this.handleSubmit}
onCancel={this.props.onCancel}
visible={true}
>
<Form onSubmit={this.handleSubmit}>
<FormItem {...is_language} label={<FormattedMessage id='componentOverview.body.AddPort.label_port'/>}>
{getFieldDecorator('port', {
rules: [
{ required: true, message: formatMessage({id:'componentOverview.body.AddPort.required'}) },
{ validator: this.handleCheckPort }
]
})(
<Input
type="number"
placeholder={
this.props.isImageApp || this.props.isDockerfile
? formatMessage({id:'componentOverview.body.AddPort.min'})
: formatMessage({id:'componentOverview.body.AddPort.max'})
}
/>
)}
</FormItem>
<FormItem {...is_language} label = {<FormattedMessage id='componentOverview.body.AddPort.label_agreement'/>}>
{getFieldDecorator('protocol', {
initialValue: 'http',
rules: [{ required: true, message: formatMessage({id:'componentOverview.body.AddPort.add'})}]
})(
<Select getPopupContainer={triggerNode => triggerNode.parentNode}>
{protocols.map(item => {
return <Option value={item}>{item}</Option>;
})}
</Select>
)}
</FormItem>
</Form>
</Modal>
);
}
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/rainbond-rainbond-ui.git
git@gitlife.ru:oschina-mirror/rainbond-rainbond-ui.git
oschina-mirror
rainbond-rainbond-ui
rainbond-rainbond-ui
main