From 2d7fb85e0df0f4c04df363880324df850b25b463 Mon Sep 17 00:00:00 2001 From: RonnyChan96 Date: Tue, 22 Apr 2025 15:50:31 +0800 Subject: [PATCH] =?UTF-8?q?[elsa]=20=E6=99=BA=E8=83=BD=E7=BC=96=E6=8E=92?= =?UTF-8?q?=E8=A1=A8=E5=8D=95=E8=8A=82=E7=82=B9=E9=BB=98=E8=AE=A4=E5=80=BC?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E7=B1=BB=E5=9E=8B=E6=B8=B2=E6=9F=93=E4=B8=BA?= =?UTF-8?q?=E4=B8=8D=E5=90=8C=E7=9A=84=E8=BE=93=E5=85=A5=E5=BD=A2=E5=BC=8F?= =?UTF-8?q?=E5=A2=9E=E5=BC=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../intelligentForm/FormItemRenderType.jsx | 2 +- .../intelligentForm/FormItemSelectValue.jsx | 52 +++++++++++++++---- .../IntelligentInputFormItem.jsx | 5 +- 3 files changed, 48 insertions(+), 11 deletions(-) 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 }); };