fast-element-plus 2.0.11 → 2.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +7 -0
- package/dist/components/form/utils/form.mjs +2 -2
- package/dist/components/form/utils/form.mjs.map +1 -1
- package/dist/index.global.min.js +2 -2
- package/dist/index.global.min.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.mjs +1 -1
- package/dist/version.mjs.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to Fast.Element.Plus are documented in this file.
|
|
4
4
|
|
|
5
|
+
## [2.0.12] - 2026-09-03
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
|
|
9
|
+
- Updated `formUtil.validate` and `formUtil.validateScrollToField` to reject with `false` on validation failure instead of an `Error`. This also applies to `FaForm.validate()` without a callback and `FaForm.validateScrollToField()`; unmounted forms still reject with an `Error`.
|
|
10
|
+
|
|
5
11
|
## [2.0.11] - 2026-09-01
|
|
6
12
|
|
|
7
13
|
### Fixed
|
|
@@ -130,6 +136,7 @@ All notable changes to Fast.Element.Plus are documented in this file.
|
|
|
130
136
|
- Scoped Table styles and added responsive IconSelector styling.
|
|
131
137
|
- Improved dialogs, drawers, tables, forms, trees, selectors, car-number input, images, and uploads for dark mode, touch input, and narrow viewports.
|
|
132
138
|
|
|
139
|
+
[2.0.12]: https://gitee.com/FastDotnet/fast.element.plus/releases/tag/v2.0.12
|
|
133
140
|
[2.0.11]: https://gitee.com/FastDotnet/fast.element.plus/releases/tag/v2.0.11
|
|
134
141
|
[2.0.10]: https://gitee.com/FastDotnet/fast.element.plus/releases/tag/v2.0.10
|
|
135
142
|
[2.0.9]: https://gitee.com/FastDotnet/fast.element.plus/releases/tag/v2.0.9
|
|
@@ -19,7 +19,7 @@ const formUtil = {
|
|
|
19
19
|
if (isValid) resolve(isValid);
|
|
20
20
|
else {
|
|
21
21
|
if (invalidFields) console.warn("[Fast:formUtil]", "表单验证失败。", invalidFields);
|
|
22
|
-
reject(
|
|
22
|
+
reject(isValid);
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
25
|
});
|
|
@@ -40,7 +40,7 @@ const formUtil = {
|
|
|
40
40
|
else {
|
|
41
41
|
form.scrollToField(Object.keys(invalidFields ?? {}));
|
|
42
42
|
if (invalidFields) console.warn("[Fast:formUtil]", "表单验证失败。", invalidFields);
|
|
43
|
-
reject(
|
|
43
|
+
reject(isValid);
|
|
44
44
|
}
|
|
45
45
|
});
|
|
46
46
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form.mjs","names":[],"sources":["../../../../src/components/form/utils/form.ts"],"sourcesContent":["import { RegExps } from \"../../../constants\";\nimport type { FormInstance, FormItemRule, FormValidationResult } from \"element-plus\";\nimport type { Ref } from \"vue\";\n\ntype ValidationCallback = (error?: Error) => void;\n\n/**\n * 表单工具类\n */\nexport const formUtil = {\n\t/**\n\t * ElForm 表单验证\n\t * @param elFormRef ElForm 组件ref\n\t */\n\tvalidate(elFormRef: Ref<FormInstance | undefined>): FormValidationResult {\n\t\treturn new Promise<boolean>((resolve, reject) => {\n\t\t\tconst form = elFormRef.value;\n\t\t\tif (form === undefined) {\n\t\t\t\treject(new Error(\"ElForm 实例尚未挂载。\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvoid form.validate((isValid: boolean, invalidFields?) => {\n\t\t\t\tif (isValid) {\n\t\t\t\t\tresolve(isValid);\n\t\t\t\t} else {\n\t\t\t\t\tif (invalidFields) {\n\t\t\t\t\t\tconsole.warn(\"[Fast:formUtil]\", \"表单验证失败。\", invalidFields);\n\t\t\t\t\t}\n\t\t\t\t\treject(
|
|
1
|
+
{"version":3,"file":"form.mjs","names":[],"sources":["../../../../src/components/form/utils/form.ts"],"sourcesContent":["import { RegExps } from \"../../../constants\";\nimport type { FormInstance, FormItemRule, FormValidationResult } from \"element-plus\";\nimport type { Ref } from \"vue\";\n\ntype ValidationCallback = (error?: Error) => void;\n\n/**\n * 表单工具类\n */\nexport const formUtil = {\n\t/**\n\t * ElForm 表单验证\n\t * @param elFormRef ElForm 组件ref\n\t */\n\tvalidate(elFormRef: Ref<FormInstance | undefined>): FormValidationResult {\n\t\treturn new Promise<boolean>((resolve, reject) => {\n\t\t\tconst form = elFormRef.value;\n\t\t\tif (form === undefined) {\n\t\t\t\treject(new Error(\"ElForm 实例尚未挂载。\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvoid form.validate((isValid: boolean, invalidFields?) => {\n\t\t\t\tif (isValid) {\n\t\t\t\t\tresolve(isValid);\n\t\t\t\t} else {\n\t\t\t\t\tif (invalidFields) {\n\t\t\t\t\t\tconsole.warn(\"[Fast:formUtil]\", \"表单验证失败。\", invalidFields);\n\t\t\t\t\t}\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n\t\t\t\t\treject(isValid);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t},\n\t/**\n\t * ElForm 表单验证,带滚动\n\t * @param elFormRef ElForm 组件ref\n\t */\n\tvalidateScrollToField(elFormRef: Ref<FormInstance | undefined>): FormValidationResult {\n\t\treturn new Promise<boolean>((resolve, reject) => {\n\t\t\tconst form = elFormRef.value;\n\t\t\tif (form === undefined) {\n\t\t\t\treject(new Error(\"ElForm 实例尚未挂载。\"));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvoid form.validate((isValid: boolean, invalidFields?) => {\n\t\t\t\tif (isValid) {\n\t\t\t\t\tresolve(isValid);\n\t\t\t\t} else {\n\t\t\t\t\tform.scrollToField(Object.keys(invalidFields ?? {}));\n\t\t\t\t\tif (invalidFields) {\n\t\t\t\t\t\tconsole.warn(\"[Fast:formUtil]\", \"表单验证失败。\", invalidFields);\n\t\t\t\t\t}\n\t\t\t\t\t// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors\n\t\t\t\t\treject(isValid);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t},\n\t/**\n\t * 手机号\n\t */\n\tmobile(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (!value) {\n\t\t\tcallback(new Error(\"请输入手机号码\"));\n\t\t} else if (RegExps.Mobile.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入正确的手机号码\"));\n\t\t}\n\t},\n\t/**\n\t * 电话号码\n\t */\n\tphone(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (!value) {\n\t\t\tcallback();\n\t\t} else if (RegExps.Phone.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入正确的电话号码\"));\n\t\t}\n\t},\n\t/**\n\t * 邮箱\n\t */\n\temail(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (!value) {\n\t\t\tcallback();\n\t\t} else if (RegExps.Email.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入正确的邮箱地址\"));\n\t\t}\n\t},\n\t/**\n\t * 身份证\n\t */\n\tidCard(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (RegExps.IdCard.test(value) || !value) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入正确的身份证号码\"));\n\t\t}\n\t},\n\t/**\n\t * 车牌号\n\t */\n\tcarNumber(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tlet success = false;\n\t\tif (value?.length === 7) {\n\t\t\tsuccess = RegExps.CarNumber.test(value);\n\t\t} else if (value?.length === 8) {\n\t\t\tsuccess = RegExps.NewEnergyCarNumber.test(value);\n\t\t}\n\t\tif (success) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入正确的车牌号码\"));\n\t\t}\n\t},\n\t/**\n\t * editor 必填\n\t */\n\teditorRequired(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (value === \"<p><br></p>\") {\n\t\t\treturn callback(new Error(\"内容不能为空\"));\n\t\t}\n\t\treturn callback();\n\t},\n\t/**\n\t * 外部链接\n\t */\n\texternal(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (RegExps.External.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入正确的外部链接\"));\n\t\t}\n\t},\n\t/**\n\t * 有效的URL\n\t */\n\turl(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (RegExps.Url.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入有效的 URL。\"));\n\t\t}\n\t},\n\t/**\n\t * 邮政编码\n\t */\n\tpostCode(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (RegExps.PostCode.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入有效的邮政编码\"));\n\t\t}\n\t},\n\t/**\n\t * 账号(6-20位字母或数字,必须以字母开头,不能全为数字)\n\t */\n\taccount(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (RegExps.Account.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入有效的账号(6-20位字母或数字,必须以字母开头,不能全为数字)\"));\n\t\t}\n\t},\n\t/**\n\t * 弱密码(只包含字母和数字,长度为6到18位)\n\t */\n\tpassword(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (RegExps.Password.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入有效的密码(只包含字母和数字,长度为6到18位)\"));\n\t\t}\n\t},\n\t/**\n\t * 强密码(8到20位,包含大小写字母、数字及特殊字符)\n\t */\n\tstrongPassword(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (RegExps.StrongPassword.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入有效的密码(8到20位,包含大小写字母、数字及特殊字符)\"));\n\t\t}\n\t},\n\t/**\n\t * 中文字符\n\t */\n\tchinese(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (RegExps.Chinese.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入有效的中文字符\"));\n\t\t}\n\t},\n\t/**\n\t * 英文字符\n\t */\n\tenglish(_rule: FormItemRule, value: string, callback: ValidationCallback): void {\n\t\tif (RegExps.English.test(value)) {\n\t\t\tcallback();\n\t\t} else {\n\t\t\tcallback(new Error(\"请输入有效的英文字符\"));\n\t\t}\n\t},\n\t/**\n\t * 文本框必填\n\t */\n\tinputRequired(message: string, trigger = \"blur\"): FormItemRule {\n\t\treturn {\n\t\t\trequired: true,\n\t\t\tmessage,\n\t\t\ttrigger,\n\t\t};\n\t},\n\t/**\n\t * 选择器必选\n\t */\n\tselectRequired(message: string, trigger = \"change\"): FormItemRule {\n\t\treturn {\n\t\t\trequired: true,\n\t\t\tmessage,\n\t\t\ttrigger,\n\t\t};\n\t},\n};\n"],"mappings":"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"}
|