|
|
@@ -20,7 +20,7 @@ class ValidationManager {
|
|
|
}
|
|
|
|
|
|
// 添加验证规则
|
|
|
- add(ruleName, fields, options = {}, priority = 1) {
|
|
|
+ add(ruleName, fields, options = {}, fieldValMap, priority = 1) {//增加fieldValMap参数,传入表单元素在页面打开时的默认值 Ben(20260107)
|
|
|
if (!Array.isArray(fields)) {
|
|
|
fields = [fields];
|
|
|
}
|
|
|
@@ -28,18 +28,23 @@ class ValidationManager {
|
|
|
const rule = this._parseRule(ruleName);
|
|
|
if (!rule) return;
|
|
|
|
|
|
+
|
|
|
fields.forEach(field => {
|
|
|
if (!this.validations.has(field)) {
|
|
|
this.validations.set(field, []);
|
|
|
}
|
|
|
-
|
|
|
+
|
|
|
+ let val = fieldValMap[field];//add by Ben(20260107)
|
|
|
+
|
|
|
this.validations.get(field).push({
|
|
|
rule: rule,
|
|
|
options: {
|
|
|
msgPrfx: options.msgPrfx || field,
|
|
|
...options
|
|
|
},
|
|
|
- priority: priority
|
|
|
+ priority: priority,
|
|
|
+ 'val':val, //传入的val值,用于页面刚打开时初始化非空红线时判断用 by Ben(20260107)
|
|
|
+ 'ruleName':ruleName //传入ruleName规则名称,用于页面刚打开时初始化非空红线时判断用 by Ben(20260107)
|
|
|
});
|
|
|
});
|
|
|
|
|
|
@@ -285,7 +290,21 @@ class ValidationManager {
|
|
|
// 获取同一个 td 内的所有需要验证的字段
|
|
|
const tdFields = Array.from(td.querySelectorAll('[name]'))
|
|
|
.map(el => el.getAttribute('name'))
|
|
|
- .filter(name => this.validations.has(name));
|
|
|
+ .filter(name => {//条件改为:如果字段存在非空校验规则,且当前值为空,filter才通过返回tdField Ben(20260107)
|
|
|
+ let vArr = this.validations.get(name);
|
|
|
+
|
|
|
+ for(let i=0;i<vArr.length;i++){
|
|
|
+ let v = vArr[i];
|
|
|
+ console.log('@@v:'+JSON.stringify(v));
|
|
|
+
|
|
|
+ if(v&&(v.ruleName==='ss.commonValidator.notNull')&&(v.val==='0'||v.val===''||v.val===undefined||v.val===null))
|
|
|
+ return true;
|
|
|
+ else
|
|
|
+ return false;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ });
|
|
|
|
|
|
// 只要有验证规则就添加必填标记
|
|
|
if (tdFields.length > 0) {
|