Skip to content

Commit 9f75df9

Browse files
committedDec 10, 2024·
releases 4.3.24
1 parent 57b0ec1 commit 9f75df9

File tree

3 files changed

+26
-3
lines changed

3 files changed

+26
-3
lines changed
 

‎package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "vxe-pc-ui",
3-
"version": "4.3.23",
3+
"version": "4.3.24",
44
"description": "A vue based PC component library",
55
"scripts": {
66
"update": "npm install --legacy-peer-deps",

‎packages/number-input/src/number-input.ts

+24-2
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,8 @@ export default defineComponent({
116116
})
117117

118118
const internalData: NumberInputInternalData = {
119-
dnTimeout: undefined
119+
// dnTimeout: undefined,
120+
// isUM: undefined
120121
}
121122

122123
const refElem = ref() as Ref<HTMLDivElement>
@@ -291,6 +292,7 @@ export default defineComponent({
291292
const handleChange = (val: number | null, inputValue: string, evnt: Event | { type: string }) => {
292293
const value = eqEmptyValue(val) ? null : Number(val)
293294
const isChange = value !== props.modelValue
295+
internalData.isUM = true
294296
if (isChange) {
295297
emit('update:modelValue', value)
296298
}
@@ -361,6 +363,23 @@ export default defineComponent({
361363
}
362364
}
363365

366+
const updateModel = (val: any) => {
367+
const { inputValue } = reactData
368+
const digitsValue = computeDigitsValue.value
369+
const decimalsType = computeDecimalsType.value
370+
if (decimalsType) {
371+
if (val) {
372+
let textValue = ''
373+
if (val) {
374+
textValue = toFloatValueFixed(val, digitsValue)
375+
}
376+
if (textValue !== inputValue) {
377+
reactData.inputValue = textValue
378+
}
379+
}
380+
}
381+
}
382+
364383
/**
365384
* 检查初始值
366385
*/
@@ -826,7 +845,10 @@ export default defineComponent({
826845
$xeNumberInput.renderVN = renderVN
827846

828847
watch(() => props.modelValue, (val) => {
829-
reactData.inputValue = val
848+
if (!internalData.isUM) {
849+
updateModel(val)
850+
}
851+
internalData.isUM = false
830852
})
831853

832854
watch(() => props.type, () => {

‎types/components/number-input.d.ts

+1
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ export interface NumberInputReactData {
115115

116116
export interface NumberInputInternalData {
117117
dnTimeout?: undefined | number
118+
isUM?: boolean
118119
}
119120

120121
export interface NumberInputMethods {

0 commit comments

Comments
 (0)
Please sign in to comment.