fix: input clear error (#7523)
parent
d6cc262c3a
commit
8e8073d17e
|
@ -15,7 +15,7 @@ import {
|
|||
triggerFocus,
|
||||
} from './utils/commonUtils';
|
||||
import BaseInput from './BaseInput';
|
||||
import BaseInputCore from '../_util/BaseInput';
|
||||
import BaseInputCore, { type BaseInputExpose } from '../_util/BaseInput';
|
||||
|
||||
export default defineComponent({
|
||||
name: 'VCInput',
|
||||
|
@ -24,7 +24,7 @@ export default defineComponent({
|
|||
setup(props, { slots, attrs, expose, emit }) {
|
||||
const stateValue = shallowRef(props.value === undefined ? props.defaultValue : props.value);
|
||||
const focused = shallowRef(false);
|
||||
const inputRef = shallowRef<HTMLInputElement>();
|
||||
const inputRef = shallowRef<BaseInputExpose>();
|
||||
const rootRef = shallowRef<ComponentPublicInstance>();
|
||||
watch(
|
||||
() => props.value,
|
||||
|
@ -42,12 +42,12 @@ export default defineComponent({
|
|||
);
|
||||
const focus = (option?: InputFocusOptions) => {
|
||||
if (inputRef.value) {
|
||||
triggerFocus(inputRef.value, option);
|
||||
triggerFocus(inputRef.value.input, option);
|
||||
}
|
||||
};
|
||||
|
||||
const blur = () => {
|
||||
inputRef.value?.blur();
|
||||
inputRef.value.input?.blur();
|
||||
};
|
||||
|
||||
const setSelectionRange = (
|
||||
|
@ -55,17 +55,17 @@ export default defineComponent({
|
|||
end: number,
|
||||
direction?: 'forward' | 'backward' | 'none',
|
||||
) => {
|
||||
inputRef.value?.setSelectionRange(start, end, direction);
|
||||
inputRef.value.input?.setSelectionRange(start, end, direction);
|
||||
};
|
||||
|
||||
const select = () => {
|
||||
inputRef.value?.select();
|
||||
inputRef.value.input?.select();
|
||||
};
|
||||
|
||||
expose({
|
||||
focus,
|
||||
blur,
|
||||
input: computed(() => (inputRef.value as any)?.input),
|
||||
input: computed(() => (inputRef.value.input as any)?.input),
|
||||
stateValue,
|
||||
setSelectionRange,
|
||||
select,
|
||||
|
@ -81,7 +81,7 @@ export default defineComponent({
|
|||
stateValue.value = value;
|
||||
} else {
|
||||
nextTick(() => {
|
||||
if (inputRef.value.value !== stateValue.value) {
|
||||
if (inputRef.value.input.value !== stateValue.value) {
|
||||
rootRef.value?.$forceUpdate();
|
||||
}
|
||||
});
|
||||
|
@ -94,7 +94,7 @@ export default defineComponent({
|
|||
const { value } = e.target as any;
|
||||
if (stateValue.value === value) return;
|
||||
const newVal = e.target.value;
|
||||
resolveOnChange(inputRef.value, e, triggerChange);
|
||||
resolveOnChange(inputRef.value.input as HTMLInputElement, e, triggerChange);
|
||||
setValue(newVal);
|
||||
};
|
||||
|
||||
|
@ -116,7 +116,7 @@ export default defineComponent({
|
|||
};
|
||||
|
||||
const handleReset = (e: MouseEvent) => {
|
||||
resolveOnChange(inputRef.value, e, triggerChange);
|
||||
resolveOnChange(inputRef.value.input as HTMLInputElement, e, triggerChange);
|
||||
setValue('', () => {
|
||||
focus();
|
||||
});
|
||||
|
|
Loading…
Reference in New Issue