/* * << * Davinci * == * Copyright (C) 2016 - 2017 EDP * == * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * >> */ import React from 'react' import { Modal, Form, Button, Input, Spin } from 'antd' import { FormComponentProps } from 'antd/lib/form' import { ICatalogue, IViewBase } from '../types' const FormItem = Form.Item interface ICopyModalProps extends FormComponentProps { visible: boolean, loading: boolean, fromView: ICatalogue, onCheckUniqueName: ( viewName: string, resolve: () => void, reject: (err: string) => void ) => void, onSave: (view: ICatalogue) => void, onCancel: () => void, } export class CatalogueModal extends React.PureComponent { private formItemStyle = { labelCol: { span: 6 }, wrapperCol: { span: 18 } } private save = () => { const { form, fromView, onSave } = this.props form.validateFieldsAndScroll((err, fieldsValue) => { if (err) { return } const copyView = { ...fieldsValue, id: fromView?.id } onSave(copyView) }) } private checkName = (_, value, callback) => { const { onCheckUniqueName } = this.props onCheckUniqueName( value, () => { callback() }, (err) => { callback(err) } ) } private clearFieldsValue = () => { this.props.form.resetFields() } public render() { const { form, visible, loading, fromView, onCancel } = this.props const { getFieldDecorator } = form const modalButtons = [ , ] return (
{getFieldDecorator('name', { validateFirst: true, rules: [ { required: true, message: '不能为空' }, { validator: this.checkName } ], initialValue: fromView?.name })()} {getFieldDecorator('industry', { initialValue: fromView?.industry })()} {getFieldDecorator('originDept', { initialValue: fromView?.originDept })()} {getFieldDecorator('originSystem', { initialValue: fromView?.originSystem })()} {getFieldDecorator('extConfig', { initialValue: fromView?.extConfig })()} {getFieldDecorator('description', { initialValue: fromView?.description })()}
) } } export default Form.create()(CatalogueModal)