diff --git a/src/form/__test__/__snapshots__/demo.test.jsx.snap b/src/form/__test__/__snapshots__/demo.test.jsx.snap index 9466f88d0..b1228a61c 100644 --- a/src/form/__test__/__snapshots__/demo.test.jsx.snap +++ b/src/form/__test__/__snapshots__/demo.test.jsx.snap @@ -1063,6 +1063,7 @@ exports[`Form > Form horizontalVue demo works fine 1`] = ` @@ -2791,6 +2792,7 @@ exports[`Form > Form mobileVue demo works fine 1`] = ` @@ -4377,6 +4379,7 @@ exports[`Form > Form verticalVue demo works fine 1`] = ` diff --git a/src/shared/util.ts b/src/shared/util.ts index 5e2ebd104..ce6372ef5 100644 --- a/src/shared/util.ts +++ b/src/shared/util.ts @@ -67,3 +67,33 @@ export const reconvertUnit = (val: string | number | undefined) => { if (val == null) return 0; return isNumber(val) ? Number(val) : Number(val.slice(0, -2)); }; + +/** + * 格式化数字 + * @param value 传入的数字字符串 + * @param allowDecimal 是否允许小数,默认为 true + * @param allowNegative 是否允许负数,默认为 true + * @returns 返回格式化后的数字字符串 + */ +export const formatNumber = (value: string, allowDecimal = true, allowNegative = true) => { + if (allowDecimal) { + const index = value.indexOf('.'); + if (index !== -1) { + value = `${value.slice(0, index + 1)}${value.slice(index).replace(/\./g, '')}`; + } + } else { + const [splitValue = ''] = value.split('.'); + value = splitValue; + } + + if (allowNegative) { + const index = value.indexOf('-'); + if (index !== -1) { + value = `${value.slice(0, index + 1)}${value.slice(index).replace(/-/g, '')}`; + } + } else { + value = value.replace(/-/g, ''); + } + + return value.replace(/[^\d.-]/g, ''); +}; diff --git a/src/stepper/__test__/__snapshots__/demo.test.jsx.snap b/src/stepper/__test__/__snapshots__/demo.test.jsx.snap index 5130c8f47..c8aefc0c3 100644 --- a/src/stepper/__test__/__snapshots__/demo.test.jsx.snap +++ b/src/stepper/__test__/__snapshots__/demo.test.jsx.snap @@ -25,6 +25,7 @@ exports[`Stepper > Stepper baseVue demo works fine 1`] = ` @@ -45,6 +46,48 @@ exports[`Stepper > Stepper baseVue demo works fine 1`] = ` +
+
+ + + +
+ +
+ + + +
+
`; @@ -73,6 +116,7 @@ exports[`Stepper > Stepper minMaxVue demo works fine 1`] = ` @@ -114,6 +158,7 @@ exports[`Stepper > Stepper minMaxVue demo works fine 1`] = ` @@ -155,6 +200,7 @@ exports[`Stepper > Stepper minMaxVue demo works fine 1`] = ` @@ -237,6 +283,7 @@ exports[`Stepper > Stepper mobileVue demo works fine 1`] = ` @@ -257,6 +304,48 @@ exports[`Stepper > Stepper mobileVue demo works fine 1`] = ` +
+
+ + + +
+ +
+ + + +
+
@@ -306,6 +395,7 @@ exports[`Stepper > Stepper mobileVue demo works fine 1`] = ` @@ -347,6 +437,7 @@ exports[`Stepper > Stepper mobileVue demo works fine 1`] = ` @@ -388,6 +479,7 @@ exports[`Stepper > Stepper mobileVue demo works fine 1`] = ` @@ -454,6 +546,7 @@ exports[`Stepper > Stepper mobileVue demo works fine 1`] = ` @@ -523,6 +616,7 @@ exports[`Stepper > Stepper mobileVue demo works fine 1`] = ` @@ -564,6 +658,7 @@ exports[`Stepper > Stepper mobileVue demo works fine 1`] = ` @@ -605,6 +700,7 @@ exports[`Stepper > Stepper mobileVue demo works fine 1`] = ` @@ -670,6 +766,7 @@ exports[`Stepper > Stepper mobileVue demo works fine 1`] = ` @@ -711,6 +808,7 @@ exports[`Stepper > Stepper mobileVue demo works fine 1`] = ` @@ -752,6 +850,7 @@ exports[`Stepper > Stepper mobileVue demo works fine 1`] = ` @@ -804,6 +903,7 @@ exports[`Stepper > Stepper sizeVue demo works fine 1`] = ` @@ -845,6 +945,7 @@ exports[`Stepper > Stepper sizeVue demo works fine 1`] = ` @@ -886,6 +987,7 @@ exports[`Stepper > Stepper sizeVue demo works fine 1`] = ` @@ -935,6 +1037,7 @@ exports[`Stepper > Stepper statusVue demo works fine 1`] = ` @@ -983,6 +1086,7 @@ exports[`Stepper > Stepper themeVue demo works fine 1`] = ` @@ -1024,6 +1128,7 @@ exports[`Stepper > Stepper themeVue demo works fine 1`] = ` @@ -1065,6 +1170,7 @@ exports[`Stepper > Stepper themeVue demo works fine 1`] = ` diff --git a/src/stepper/__test__/index.test.jsx b/src/stepper/__test__/index.test.jsx index 5b0bb735f..1f6648ec9 100644 --- a/src/stepper/__test__/index.test.jsx +++ b/src/stepper/__test__/index.test.jsx @@ -189,7 +189,7 @@ describe('stepper', () => { const wrapper = mount(); const $input = wrapper.find('.t-stepper__input').element; - const inputValue = 12; + const inputValue = '12'; await simulateEvent($input, inputValue, 'input'); expect(value.value).toBe(inputValue); }); diff --git a/src/stepper/demos/base.vue b/src/stepper/demos/base.vue index 9bf091c62..c1aaf14b5 100644 --- a/src/stepper/demos/base.vue +++ b/src/stepper/demos/base.vue @@ -1,13 +1,15 @@