feat: inputnumber add lazy

pull/5485/head
tangjinzhou 2022-04-12 10:52:06 +08:00
parent 278478b5b0
commit f1f6085dbb
2 changed files with 15 additions and 3 deletions

View File

@ -24,6 +24,7 @@ export const inputNumberProps = () => ({
addonAfter: PropTypes.any,
prefix: PropTypes.any,
'update:value': baseProps.onChange,
valueModifiers: Object,
});
export type InputNumberProps = Partial<ExtractPropTypes<ReturnType<typeof inputNumberProps>>>;
@ -91,6 +92,7 @@ const InputNumber = defineComponent({
addonBefore = slots.addonBefore?.(),
addonAfter = slots.addonAfter?.(),
prefix = slots.prefix?.(),
valueModifiers = {},
...others
} = { ...(attrs as HTMLAttributes), ...props };
@ -112,6 +114,7 @@ const InputNumber = defineComponent({
<VcInputNumber
{...omit(others, ['size', 'defaultValue'])}
ref={inputNumberRef}
lazy={!!valueModifiers.lazy}
value={mergedValue.value}
class={inputNumberClass}
prefixCls={preCls}

View File

@ -81,7 +81,10 @@ export const inputNumberProps = () => ({
export default defineComponent({
name: 'InnerInputNumber',
inheritAttrs: false,
props: inputNumberProps(),
props: {
...inputNumberProps(),
lazy: Boolean,
},
slots: ['upHandler', 'downHandler'],
setup(props, { attrs, slots, emit, expose }) {
const inputRef = ref<HTMLInputElement>();
@ -509,7 +512,7 @@ export default defineComponent({
onInput,
onPressEnter,
onStep,
lazy,
class: className,
style,
@ -517,6 +520,12 @@ export default defineComponent({
} = { ...(attrs as HTMLAttributes), ...props };
const { upHandler, downHandler } = slots;
const inputClassName = `${prefixCls}-input`;
const eventProps = {} as any;
if (lazy) {
eventProps.onChange = onInternalInput;
} else {
eventProps.onInput = onInternalInput;
}
return (
<div
class={classNames(prefixCls, className, {
@ -561,7 +570,7 @@ export default defineComponent({
focus.value = true;
emit('focus', e);
}}
onInput={onInternalInput}
{...eventProps}
onBlur={onBlur}
onCompositionstart={onCompositionStart}
onCompositionend={onCompositionEnd}