import { CloseOutlined } from '@ant-design/icons'; import { Input } from 'antd'; import styles from './index.less'; type ParameterInputData = { value?: any; showValue?: any; fromSelect?: boolean; } & Record; interface ParameterInputProps { value?: ParameterInputData; onChange?: (value: ParameterInputData) => void; onClick?: () => void; canInput?: boolean; textArea?: boolean; placeholder?: string; allowClear?: boolean; } function ParameterInput({ value, onChange, onClick, canInput = true, textArea = false, placeholder, allowClear, ...rest }: ParameterInputProps) { // console.log('ParameterInput', value); const valueObj = typeof value === 'string' ? { value: value, fromSelect: false, showValue: value } : value; if (valueObj && !valueObj.showValue) { valueObj.showValue = valueObj.value; } const isSelect = valueObj?.fromSelect; const InputComponent = textArea ? Input.TextArea : Input; return ( <> {isSelect || !canInput ? (
{valueObj?.showValue ? (
{valueObj?.showValue} onChange?.({ ...valueObj, fromSelect: false, value: undefined, showValue: undefined, }) } />
) : (
{placeholder}
)}
) : ( onChange?.({ ...valueObj, fromSelect: false, value: e.target.value, showValue: e.target.value, }) } /> )} ); } export default ParameterInput;