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 @@
-
+
+