import React, { memo, useEffect, FC } from 'react'; import { Form } from '@ant-design/compatible'; import '@ant-design/compatible/assets/index.css'; import { Select, Input, Modal, Button, Radio, Checkbox, InputNumber } from 'antd'; import Upload from '../Upload'; import { Store } from 'antd/lib/form/interface'; import { TImageSourceDefaultTypeItem } from '../types'; // import styles from './index.less'; const normFile = (e: any) => { if (Array.isArray(e)) { return e; } return e && e.fileList; }; const { Option } = Select; const formItemLayout = { labelCol: { span: 6 }, wrapperCol: { span: 14 }, }; export type EditorModalProps = { visible: boolean; onCancel: ((e: React.MouseEvent) => void) | undefined; item?: TImageSourceDefaultTypeItem; onSave: Function; cropRate: number; form: any }; const EditorModal: FC = props => { const { item, onSave, visible, onCancel, cropRate, form } = props; const { getFieldDecorator, validateFieldsAndScroll, setFieldsValue, getFieldsValue, } = form const onFinish = (values: Store) => { console.log(values); onSave && onSave(values); }; const handleOk = () => { form .validateFields() .then(values => { if (item) { values.id = item.id; onSave && onSave(values, true); } }) .catch(err => { console.log(err); }); }; const handleCancle = (e) => { onCancel(e); }; useEffect(() => { if (form && item && visible) { form.resetFields(); } }, [form, item, visible]); const onChange = e => { console.log(e); return e; } return ( <> handleOk()}> 确定 } >
{getFieldDecorator('title', { initialValue: item?.title, rules: [ { required: true, message: '请输入标题!' } ] })( )} {getFieldDecorator('width', { initialValue: item?.width, rules: [ { required: true, message: '请输入资源宽度!' } ] })( )} {getFieldDecorator('height', { initialValue: item?.height, rules: [ { required: true, message: '请输入资源高度!' } ] })( )} {getFieldDecorator('top', { initialValue: item?.top, rules: [ { required: true, message: '请输入顶部距离!' } ] })( )} {getFieldDecorator('left', { initialValue: item?.left, rules: [ { required: true, message: '请输入左侧距离!' } ] })( )} {getFieldDecorator('sourceType', { initialValue: item?.sourceType })( 图片 文本 热区 )} {item?.sourceType && item.sourceType.length > 0 && {getFieldDecorator('clickHref', { initialValue: item?.clickHref })( 点击跳转 咨询客服 小程序跳转 )} } {item?.clickHref && item?.clickHref.includes('link') && {getFieldDecorator('link', { initialValue: item?.link })( )} } {item?.clickHref && item?.clickHref.includes('link') && {getFieldDecorator('openType', { initialValue: item?.openType })( )} } {item?.clickHref && item?.clickHref.includes('wxapp') && 查看《小程序填写说明》}> {getFieldDecorator('wxapplink', { initialValue: item?.wxapplink })( )} } {!!window['currentCates'] && ( {getFieldDecorator('type', { initialValue: item?.type, rules: [{ required: true, message: '请选择分类!' }] })( )} )} {item?.sourceType && item?.sourceType.includes('image') && {getFieldDecorator('imgUrl', { initialValue: item?.imgUrl, valuePropName: "fileList", getValueFromEvent: normFile, rules: [ { required: true, message: '请上传图片!' } ] })( )} } {item?.sourceType && item?.sourceType.includes('text') && {getFieldDecorator('content', { initialValue: item?.content, rules: [ { required: true, message: '请输入文本内容!' } ] })( )} }
); }; export default memo(Form.create({ onValuesChange: (props, changedValues, allValues) => { if (allValues?.sourceType && allValues.sourceType.length > 1) { allValues.sourceType = [allValues.sourceType[allValues.sourceType.length - 1]] } if (allValues?.sourceType && allValues.sourceType.length === 0) { allValues.clickHref = [] } if (allValues?.clickHref && allValues.clickHref.length > 0 && allValues.clickHref[allValues.clickHref.length - 1] == 'link') { allValues.openType = 'currentPage' } props?.onSave({ id: props?.item?.id, ...allValues }); } })(EditorModal));