Skip to content

Commit f1f6085

Browse files
committed
feat: inputnumber add lazy
1 parent 278478b commit f1f6085

File tree

2 files changed

+15
-3
lines changed

2 files changed

+15
-3
lines changed

components/input-number/index.tsx

+3
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export const inputNumberProps = () => ({
2424
addonAfter: PropTypes.any,
2525
prefix: PropTypes.any,
2626
'update:value': baseProps.onChange,
27+
valueModifiers: Object,
2728
});
2829

2930
export type InputNumberProps = Partial<ExtractPropTypes<ReturnType<typeof inputNumberProps>>>;
@@ -91,6 +92,7 @@ const InputNumber = defineComponent({
9192
addonBefore = slots.addonBefore?.(),
9293
addonAfter = slots.addonAfter?.(),
9394
prefix = slots.prefix?.(),
95+
valueModifiers = {},
9496
...others
9597
} = { ...(attrs as HTMLAttributes), ...props };
9698

@@ -112,6 +114,7 @@ const InputNumber = defineComponent({
112114
<VcInputNumber
113115
{...omit(others, ['size', 'defaultValue'])}
114116
ref={inputNumberRef}
117+
lazy={!!valueModifiers.lazy}
115118
value={mergedValue.value}
116119
class={inputNumberClass}
117120
prefixCls={preCls}

components/input-number/src/InputNumber.tsx

+12-3
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,10 @@ export const inputNumberProps = () => ({
8181
export default defineComponent({
8282
name: 'InnerInputNumber',
8383
inheritAttrs: false,
84-
props: inputNumberProps(),
84+
props: {
85+
...inputNumberProps(),
86+
lazy: Boolean,
87+
},
8588
slots: ['upHandler', 'downHandler'],
8689
setup(props, { attrs, slots, emit, expose }) {
8790
const inputRef = ref<HTMLInputElement>();
@@ -509,14 +512,20 @@ export default defineComponent({
509512
onInput,
510513
onPressEnter,
511514
onStep,
512-
515+
lazy,
513516
class: className,
514517
style,
515518

516519
...inputProps
517520
} = { ...(attrs as HTMLAttributes), ...props };
518521
const { upHandler, downHandler } = slots;
519522
const inputClassName = `${prefixCls}-input`;
523+
const eventProps = {} as any;
524+
if (lazy) {
525+
eventProps.onChange = onInternalInput;
526+
} else {
527+
eventProps.onInput = onInternalInput;
528+
}
520529
return (
521530
<div
522531
class={classNames(prefixCls, className, {
@@ -561,7 +570,7 @@ export default defineComponent({
561570
focus.value = true;
562571
emit('focus', e);
563572
}}
564-
onInput={onInternalInput}
573+
{...eventProps}
565574
onBlur={onBlur}
566575
onCompositionstart={onCompositionStart}
567576
onCompositionend={onCompositionEnd}

0 commit comments

Comments
 (0)