@aliretail/react-materials-components
Version:
38 lines (30 loc) • 1.8 kB
JavaScript
import OriginLogicalEditor from "./LogicalEditor";
import { registerConditionComponent } from "./map";
import Single from "./Single";
import { validate, pass } from "../FormError";
var LogicalEditor = OriginLogicalEditor;
LogicalEditor.registerConditionComponent = registerConditionComponent;
LogicalEditor.validator = function (rule, value, required) {
var _ref2;
var _ref = rule || {},
requiredFromRule = _ref.required;
var realRequired = (_ref2 = requiredFromRule !== null && requiredFromRule !== void 0 ? requiredFromRule : required) !== null && _ref2 !== void 0 ? _ref2 : false; // 如果必选,校验全部
if (realRequired) {
return validate('LogicalEditor');
} else {
var _value$conditionGroup, _value$conditionGroup2, _value$conditionGroup3, _value$conditionGroup4;
// 如果非必填,则判断只有一条的未填的时候就通过
if (value === undefined) {
return pass('LogicalEditor');
}
if (((_value$conditionGroup = value.conditionGroups) === null || _value$conditionGroup === void 0 ? void 0 : _value$conditionGroup.length) === 1 && // 只有一个条件组
((_value$conditionGroup2 = value.conditionGroups[0].conditions) === null || _value$conditionGroup2 === void 0 ? void 0 : _value$conditionGroup2.length) === 1 && // 条件组中只有一个条件
((_value$conditionGroup3 = value.conditionGroups[0].conditions) === null || _value$conditionGroup3 === void 0 ? void 0 : (_value$conditionGroup4 = _value$conditionGroup3[0]) === null || _value$conditionGroup4 === void 0 ? void 0 : _value$conditionGroup4.key) === undefined // 这个条件没有选关系类型
) {
return pass('LogicalEditor');
}
return validate('LogicalEditor');
}
};
LogicalEditor.Single = Single;
export default LogicalEditor;