diff --git a/framework/elsa/fit-elsa-react/src/components/intelligentForm/FormItemRenderType.jsx b/framework/elsa/fit-elsa-react/src/components/intelligentForm/FormItemRenderType.jsx index 694272c38..040a359f0 100644 --- a/framework/elsa/fit-elsa-react/src/components/intelligentForm/FormItemRenderType.jsx +++ b/framework/elsa/fit-elsa-react/src/components/intelligentForm/FormItemRenderType.jsx @@ -40,8 +40,8 @@ export const FormItemRenderType = ({itemId, propValue, disabled, onChange, type} ]; case DATA_TYPES.STRING: return [ - {value: RENDER_TYPE.RADIO, label: RENDER_TYPE.RADIO}, {value: RENDER_TYPE.INPUT, label: RENDER_TYPE.INPUT}, + {value: RENDER_TYPE.RADIO, label: RENDER_TYPE.RADIO}, ]; default: return []; diff --git a/framework/elsa/fit-elsa-react/src/components/intelligentForm/FormItemSelectValue.jsx b/framework/elsa/fit-elsa-react/src/components/intelligentForm/FormItemSelectValue.jsx index 31fb98e80..9634da093 100644 --- a/framework/elsa/fit-elsa-react/src/components/intelligentForm/FormItemSelectValue.jsx +++ b/framework/elsa/fit-elsa-react/src/components/intelligentForm/FormItemSelectValue.jsx @@ -5,7 +5,7 @@ *--------------------------------------------------------------------------------------------*/ import PropTypes from 'prop-types'; -import {Col, Form, Row} from 'antd'; +import {Col, Form, InputNumber, Row, Switch} from 'antd'; import {useTranslation} from 'react-i18next'; import {JadeInput} from '@/components/common/JadeInput.jsx'; import {DATA_TYPES, FROM_TYPE} from '@/common/Consts.js'; @@ -64,6 +64,47 @@ export const FormItemSelectValue = ({item, shapeStatus, onChange, label, inputRe }, {key: 'value', value: e.value}, {key: 'type', value: e.type}]); }; + const renderInputValueComponent = (item) => { + switch (item.type) { + case DATA_TYPES.BOOLEAN: + return onInputChange('value', e)} + checked={item.value}/>; + case DATA_TYPES.INTEGER: + return value.replace(/[^\d-]/g, '')} // 只允许输入整数部分 + onChange={(e) => onInputChange('value', e)} + stringMode + value={item.value} + />; + case DATA_TYPES.NUMBER: + return onInputChange('value', e)} + stringMode + value={item.value} + />; + case DATA_TYPES.STRING: + default: + return onInputChange('value', e)} + />; + } + }; + /* 获取值field. */ const getValueField = () => { if (item.from === FROM_TYPE.INPUT) { @@ -76,14 +117,7 @@ export const FormItemSelectValue = ({item, shapeStatus, onChange, label, inputRe initialValue={item.type === DATA_TYPES.ARRAY || item.type === DATA_TYPES.OBJECT ? JSON.stringify(item.value) : item.value} validateTrigger='onBlur' > - onInputChange('value', e)} - /> + {renderInputValueComponent(item)} ; } else if (item.from === FROM_TYPE.REFERENCE) { return { const dispatch = useDispatch(); + const form = useFormContext(); const { t } = useTranslation(); /** @@ -41,6 +42,8 @@ const _IntelligentInputFormItem = ({item, items, shapeStatus, output}) => { // 如果 type 是 'type',清空 renderType if (changes.has('type') && changes.get('type') !== item.type) { changes.set('renderType', undefined); + changes.set('value', null); + form.setFieldsValue({[`value-${item.id}`]: undefined}); } dispatch({ type: 'updateParam', id: id, changes }); };