diff --git a/src/components/FormBuilder/FormItemsRenderer.js b/src/components/FormBuilder/FormItemsRenderer.js index c371aab..62c9a5c 100644 --- a/src/components/FormBuilder/FormItemsRenderer.js +++ b/src/components/FormBuilder/FormItemsRenderer.js @@ -166,6 +166,18 @@ const FormItemsRenderer = ({ }, }); break; + + case FORM_ITEM_RENDER_ENUM.INTEGER: + option.useConstraints !== false && rules.push({ pattern: /^(\d+)$/, message: "请输入正确的整数" }); + option.useConstraints !== false && rules.push({ + validator: (_, value) => { + if (value && Math.abs(Number.parseFloat(value)) > 999999999) { + return Promise.reject("输入数值超出安全范围"); + } + return Promise.resolve(); + }, + }); + break; } if (!useAutoGenerateRequired) @@ -177,6 +189,7 @@ const FormItemsRenderer = ({ FORM_ITEM_RENDER_ENUM.TEXTAREA, FORM_ITEM_RENDER_ENUM.INPUT_NUMBER, FORM_ITEM_RENDER_ENUM.NUMBER, + FORM_ITEM_RENDER_ENUM.INTEGER, ].includes(option.render); rules.push({ required: true, message: `${isBlurTrigger ? "请输入" : "请选择"}${option.label}` }); @@ -245,7 +258,7 @@ const FormItemsRenderer = ({ const itemsFieldKey = getItemsFieldKey(option); /** @type {string | Function} */ const render = option.render || FORM_ITEM_RENDER_ENUM.INPUT; - const placeholder = option.placeholder || `请${[FORM_ITEM_RENDER_ENUM.INPUT, FORM_ITEM_RENDER_ENUM.TEXTAREA, FORM_ITEM_RENDER_ENUM.INPUT_NUMBER, FORM_ITEM_RENDER_ENUM.NUMBER].includes(render) ? "输入" : "选择"}${option.label}`; + const placeholder = option.placeholder || `请${[FORM_ITEM_RENDER_ENUM.INPUT, FORM_ITEM_RENDER_ENUM.TEXTAREA, FORM_ITEM_RENDER_ENUM.INPUT_NUMBER, FORM_ITEM_RENDER_ENUM.NUMBER, FORM_ITEM_RENDER_ENUM.INTEGER].includes(render) ? "输入" : "选择"}${option.label}`; switch (render) { case FORM_ITEM_RENDER_ENUM.INPUT: @@ -256,6 +269,7 @@ const FormItemsRenderer = ({ case FORM_ITEM_RENDER_ENUM.INPUT_NUMBER: case FORM_ITEM_RENDER_ENUM.NUMBER: + case FORM_ITEM_RENDER_ENUM.INTEGER: return ; case FORM_ITEM_RENDER_ENUM.SELECT: diff --git a/src/enum/formItemRender/index.d.ts b/src/enum/formItemRender/index.d.ts index 247bc20..decb2e3 100644 --- a/src/enum/formItemRender/index.d.ts +++ b/src/enum/formItemRender/index.d.ts @@ -19,6 +19,8 @@ export declare const FORM_ITEM_RENDER_ENUM: { INPUT_NUMBER: "inputNumber"; /** 映射为 antd InputNumber */ NUMBER: "number"; + /** 映射为 antd InputNumber */ + INTEGER: "number"; /** 映射为 antd Select */ SELECT: "select"; /** 映射为 antd Radio.Group */ diff --git a/src/enum/formItemRender/index.js b/src/enum/formItemRender/index.js index b2dc092..632c7e7 100644 --- a/src/enum/formItemRender/index.js +++ b/src/enum/formItemRender/index.js @@ -10,6 +10,8 @@ export const FORM_ITEM_RENDER_ENUM = { INPUT_NUMBER: "inputNumber", /** 映射为 antd InputNumber */ NUMBER: "number", + /** 映射为 antd InputNumber */ + INTEGER: "number", /** 映射为 antd Select */ SELECT: "select", /** 映射为 antd Radio.Group */