🆕 form组件文本框字段修改 表单组件中添加展示型文本,用来对字段说明

This commit is contained in:
xujiang 2020-11-04 23:30:38 +08:00
parent e4db849ad8
commit a7132c2c99
7 changed files with 77 additions and 5 deletions

View File

@ -107,6 +107,9 @@ FileSaver.saveAs(blob, "hello world.txt");
15.升级图片组件为图文组件 15.升级图片组件为图文组件
16. 添加模版库 16. 添加模版库
17. 添加可视化组件(基于g2)如折线图, 饼图, 面积图等 17. 添加可视化组件(基于g2)如折线图, 饼图, 面积图等
18. form组件文本框字段修改
19. 清空按钮添加确认框
20. 表单组件中添加展示型文本,用来对字段说明
## 正在完成功能 ## 正在完成功能
* 丰富组件库组件 * 丰富组件库组件

View File

@ -9,6 +9,7 @@ import {
baseFormNumberTpl, baseFormNumberTpl,
baseFormTextAreaTpl, baseFormTextAreaTpl,
baseFormTextTpl, baseFormTextTpl,
baseFormTextTipTpl,
baseFormUnionType, baseFormUnionType,
} from '@/components/PanelComponents/FormEditor/types'; } from '@/components/PanelComponents/FormEditor/types';
// 维护表单控件, 提高form渲染性能 // 维护表单控件, 提高form渲染性能
@ -113,6 +114,10 @@ const BaseForm: TBaseForm = {
</Cell> </Cell>
); );
}, },
MyTextTip: (props: baseFormTextTipTpl) => {
const { label, color, fontSize } = props;
return <Cell title={<div style={{ color, fontSize }}>{label}</div>}></Cell>;
},
}; };
export default BaseForm; export default BaseForm;

View File

@ -8,6 +8,7 @@ import {
baseFormNumberTpl, baseFormNumberTpl,
baseFormTextAreaTpl, baseFormTextAreaTpl,
baseFormTextTpl, baseFormTextTpl,
baseFormTextTipTpl,
baseFormUnionType, baseFormUnionType,
} from '@/components/PanelComponents/FormEditor/types'; } from '@/components/PanelComponents/FormEditor/types';
@ -88,6 +89,21 @@ const BaseForm: TBaseForm = {
</Button> </Button>
); );
}, },
MyTextTip: (props: baseFormTextTipTpl) => {
const { label } = props;
return (
<Button
style={{
color: '#fff',
backgroundColor: '#4A4A4A',
borderRadius: '2px',
lineHeight: '0px',
}}
>
{label}
</Button>
);
},
}; };
export default BaseForm; export default BaseForm;

View File

@ -157,6 +157,15 @@ export type baseFormTextTpl = {
label: string; label: string;
placeholder: string; placeholder: string;
}; };
export type baseFormTextTipTpl = {
id: string;
type: 'MyTextTip';
label: string;
color: string;
fontSize: number;
};
export type baseFormNumberTpl = { export type baseFormNumberTpl = {
id: string; id: string;
type: 'Number'; type: 'Number';
@ -198,9 +207,10 @@ export type baseFormDateTpl = {
label: string; label: string;
placeholder: string; placeholder: string;
}; };
//类型不要乱加这部分是FormItems的类型定义只有新增formItems的配置项才需要加
export type baseFormUnion = export type baseFormUnion =
| baseFormTextTpl | baseFormTextTpl
| baseFormTextTipTpl
| baseFormNumberTpl | baseFormNumberTpl
| baseFormTextAreaTpl | baseFormTextAreaTpl
| baseFormMyRadioTpl | baseFormMyRadioTpl
@ -209,6 +219,7 @@ export type baseFormUnion =
| baseFormDateTpl; | baseFormDateTpl;
export type baseFormUnionType = export type baseFormUnionType =
| baseFormTextTpl['type'] | baseFormTextTpl['type']
| baseFormTextTipTpl['type']
| baseFormNumberTpl['type'] | baseFormNumberTpl['type']
| baseFormTextAreaTpl['type'] | baseFormTextAreaTpl['type']
| baseFormMyRadioTpl['type'] | baseFormMyRadioTpl['type']

View File

@ -1,6 +1,7 @@
import React, { FC, memo, useEffect } from 'react'; import React, { FC, memo, useEffect } from 'react';
import { Form, Select, Input, Modal, Button } from 'antd'; import { Form, Select, Input, Modal, Button, InputNumber } from 'antd';
import { baseFormOptionsType } from '../FormEditor/types'; import { baseFormOptionsType } from '../FormEditor/types';
import Color from '../Color';
const { Option } = Select; const { Option } = Select;
@ -80,6 +81,24 @@ const EditorModal: FC<EditorModalProps> = props => {
<Input /> <Input />
</Form.Item> </Form.Item>
)} )}
{!!item.fontSize && (
<Form.Item
label="字体大小"
name="fontSize"
rules={[{ required: true, message: '请输入字体大小!' }]}
>
<InputNumber min={12} max={30} defaultValue={14} />
</Form.Item>
)}
{!!item.color && (
<Form.Item
label="文字颜色"
name="color"
rules={[{ required: true, message: '请输入文字颜色!' }]}
>
<Color />
</Form.Item>
)}
{!!item.placeholder && ( {!!item.placeholder && (
<Form.Item label="提示文本" name="placeholder"> <Form.Item label="提示文本" name="placeholder">
<Input placeholder="请输入提示文本" /> <Input placeholder="请输入提示文本" />

View File

@ -14,13 +14,13 @@ const formTpl: TFormItemsDefaultType = [
{ {
id: '1', id: '1',
type: 'Text', type: 'Text',
label: '文本', label: '文本',
placeholder: '请输入文本', placeholder: '请输入文本',
}, },
{ {
id: '2', id: '2',
type: 'Textarea', type: 'Textarea',
label: '长文本', label: '长文本',
placeholder: '请输入长文本请输入长文本', placeholder: '请输入长文本请输入长文本',
}, },
{ {
@ -54,6 +54,13 @@ const formTpl: TFormItemsDefaultType = [
label: '日期框', label: '日期框',
placeholder: '', placeholder: '',
}, },
{
id: '7',
type: 'MyTextTip',
label: '纯文本',
fontSize: 12,
color: 'rgba(0,0,0,1)',
},
]; ];
interface FormItemsProps { interface FormItemsProps {

View File

@ -131,6 +131,17 @@ const HeaderComponent = memo((props: HeaderComponentProps) => {
window.location.href = `/h5_plus/login?tid=${tid}`; window.location.href = `/h5_plus/login?tid=${tid}`;
}; };
const deleteAll = () => {
Modal.confirm({
title: '确认清空画布?',
okText: '确认',
cancelText: '取消',
onOk() {
clearData();
},
});
};
const toBack = () => { const toBack = () => {
history.push('/'); history.push('/');
}; };
@ -231,7 +242,7 @@ const HeaderComponent = memo((props: HeaderComponentProps) => {
type="link" type="link"
style={{ marginRight: '9px' }} style={{ marginRight: '9px' }}
title="清空" title="清空"
onClick={clearData} onClick={deleteAll}
disabled={!pointData.length} disabled={!pointData.length}
> >
<DeleteOutlined /> <DeleteOutlined />