|
|
@@ -441,3 +441,66 @@ export function validateDateListArray(
|
|
|
export function validatePositiveIntegerForNumber(errorMessage: string = "必须为正整数") {
|
|
|
return validatePositiveInteger(errorMessage, { required: false, checkLeadingZero: false });
|
|
|
}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 验证价格格式(整数部分最多6位,小数部分最多2位)
|
|
|
+ * @param errorMessage - 错误提示信息,默认为"整数部分最多6位,小数部分最多2位"
|
|
|
+ * @returns 验证函数
|
|
|
+ */
|
|
|
+export function validatePriceFormat(errorMessage: string = "整数部分最多6位,小数部分最多2位") {
|
|
|
+ return (rule: any, value: any, callback: any) => {
|
|
|
+ if (!value || value.toString().trim() === "") {
|
|
|
+ callback();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ const strValue = value.toString().trim();
|
|
|
+ // 验证格式:整数部分最多6位,小数部分最多2位
|
|
|
+ const regex = /^\d{1,6}(\.\d{1,2})?$/;
|
|
|
+ if (!regex.test(strValue)) {
|
|
|
+ callback(new Error(errorMessage));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ callback();
|
|
|
+ };
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * 验证价格比较(第一个价格必须大于等于第二个价格)
|
|
|
+ * @param getFirstPrice - 获取第一个价格的函数(通常是抵扣价格)
|
|
|
+ * @param getSecondPrice - 获取第二个价格的函数(通常是售卖价格)
|
|
|
+ * @param errorMessage - 错误提示信息,默认为"抵扣价格不能低于售卖价格"
|
|
|
+ * @returns 验证函数
|
|
|
+ */
|
|
|
+export function validatePriceComparison(
|
|
|
+ getFirstPrice: () => any,
|
|
|
+ getSecondPrice: () => any,
|
|
|
+ errorMessage: string = "抵扣价格不能低于售卖价格"
|
|
|
+) {
|
|
|
+ return (rule: any, value: any, callback: any) => {
|
|
|
+ const firstPrice = getFirstPrice();
|
|
|
+ const secondPrice = getSecondPrice();
|
|
|
+
|
|
|
+ // 如果任一价格为空,不进行验证
|
|
|
+ if (!firstPrice || !secondPrice || firstPrice.toString().trim() === "" || secondPrice.toString().trim() === "") {
|
|
|
+ callback();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ const firstNum = Number(firstPrice);
|
|
|
+ const secondNum = Number(secondPrice);
|
|
|
+
|
|
|
+ // 如果转换失败,不进行验证(由其他验证规则处理)
|
|
|
+ if (isNaN(firstNum) || isNaN(secondNum)) {
|
|
|
+ callback();
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ // 验证第一个价格必须大于等于第二个价格
|
|
|
+ if (firstNum < secondNum) {
|
|
|
+ callback(new Error(errorMessage));
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ callback();
|
|
|
+ };
|
|
|
+}
|