|
|
|
@ -14,6 +14,8 @@ import { createPlaceholderMessage } from './helper'; |
|
|
|
import { upperFirst, cloneDeep } from 'lodash-es'; |
|
|
|
|
|
|
|
import { useItemLabelWidth } from './hooks/useLabelWidth'; |
|
|
|
import { ComponentType } from './types'; |
|
|
|
import { isNumber } from '../../../utils/is'; |
|
|
|
|
|
|
|
export default defineComponent({ |
|
|
|
name: 'BasicFormItem', |
|
|
|
@ -145,6 +147,14 @@ export default defineComponent({ |
|
|
|
return rules; |
|
|
|
} |
|
|
|
|
|
|
|
function handleValue(component: ComponentType, field: string) { |
|
|
|
const val = (props.formModel as any)[field]; |
|
|
|
if (['Input', 'InputPassword', 'InputSearch', 'InputTextArea'].includes(component)) { |
|
|
|
return isNumber(val) && val ? `${val}` : val; |
|
|
|
} |
|
|
|
return val; |
|
|
|
} |
|
|
|
|
|
|
|
function renderComponent() { |
|
|
|
const { |
|
|
|
componentProps, |
|
|
|
@ -162,11 +172,7 @@ export default defineComponent({ |
|
|
|
if (propsData[eventKey]) { |
|
|
|
propsData[eventKey](e); |
|
|
|
} |
|
|
|
if (e && e.target) { |
|
|
|
(props.formModel as any)[field] = e.target.value; |
|
|
|
} else { |
|
|
|
(props.formModel as any)[field] = e; |
|
|
|
} |
|
|
|
(props.formModel as any)[field] = e && e.target ? e.target.value : e; |
|
|
|
}, |
|
|
|
}; |
|
|
|
const Comp = componentMap.get(component); |
|
|
|
@ -190,9 +196,8 @@ export default defineComponent({ |
|
|
|
propsData.placeholder = placeholder; |
|
|
|
propsData.codeField = field; |
|
|
|
propsData.formValues = unref(getValuesRef); |
|
|
|
|
|
|
|
const bindValue = { |
|
|
|
[isCheck ? 'checked' : 'value']: (props.formModel as any)[field], |
|
|
|
[isCheck ? 'checked' : 'value']: handleValue(component, field), |
|
|
|
}; |
|
|
|
if (!renderComponentContent) { |
|
|
|
return <Comp {...propsData} {...on} {...bindValue} />; |
|
|
|
|