fix: decimal cell default value clear issue

This commit is contained in:
Ramesh Mane
2025-12-24 06:17:57 +00:00
parent a91cc61313
commit 179dc863dc

View File

@@ -44,25 +44,33 @@ const pasteText = (target: HTMLInputElement, value: string) => {
target.setSelectionRange(newCursorIndex, newCursorIndex)
}
}
const refreshVModel = () => {
if (inputRef.value && (vModel.value || vModel.value === 0)) {
const getFormattedModelValue = () => {
if (vModel.value || vModel.value === 0) {
if (typeof vModel.value === 'number') {
if (props.precision) {
inputRef.value.value = vModel.value.toFixed(props.precision) ?? ''
return vModel.value.toFixed(props.precision) ?? ''
} else {
inputRef.value.value = vModel.value.toString()
return vModel.value.toString()
}
} else if (typeof vModel.value === 'string') {
const numberValue = Number(vModel.value)
if (!ncIsNaN(numberValue)) {
if (props.precision) {
inputRef.value.value = numberValue.toFixed(props.precision) ?? ''
return numberValue.toFixed(props.precision) ?? ''
} else {
inputRef.value.value = numberValue.toString()
return numberValue.toString()
}
}
}
}
return ''
}
const refreshVModel = () => {
if (inputRef.value && (vModel.value || vModel.value === 0)) {
inputRef.value.value = getFormattedModelValue()
}
}
const saveValue = (targetValue: string) => {
if (targetValue === '') {
@@ -200,6 +208,15 @@ onMounted(() => {
})
}
})
watch(vModel, (newValue) => {
if (!inputRef.value || newValue || inputRef.value.value === getFormattedModelValue()) return
// Clear input value if vModel is null and input value is not empty and not a dot or minus
if (!newValue && inputRef.value.value && !['.', '-'].includes(inputRef.value.value)) {
inputRef.value.value = ''
}
})
</script>
<template>