This commit is contained in:
dengqichen 2024-12-20 15:03:43 +08:00
parent c45dd19d58
commit c5dd9d00c2

View File

@ -11,25 +11,30 @@ interface ValidationResult {
* @param nodeDefinition
*/
const validateNodeConfig = (node: Cell, nodeDefinition: any): ValidationResult => {
const config = node.getProp('config');
console.log("aaaa", nodeDefinition)
const configSchema = nodeDefinition?.graphConfig.configSchema;
const panelVariables = node.getProp('panelVariables');
const localVariables = node.getProp('localVariables');
if (!config) {
return {
valid: false,
message: `节点 "${node.attr('label/text')}" 未配置`
};
}
// 检查必填字段
if (configSchema?.required) {
for (const field of configSchema.required) {
if (!config[field]) {
const fieldTitle = configSchema.properties[field]?.title || field;
// 校验面板变量
if (nodeDefinition?.panelVariablesSchema?.required) {
for (const field of nodeDefinition.panelVariablesSchema.required) {
if (!panelVariables?.[field]) {
const fieldTitle = nodeDefinition.panelVariablesSchema.properties[field]?.title || field;
return {
valid: false,
message: `节点 "${node.attr('label/text')}" 的 "${fieldTitle}" 是必填项`
message: `节点 "${node.attr('label/text')}" 的面板变量 "${fieldTitle}" 是必填项`
};
}
}
}
// 校验环境变量
if (nodeDefinition?.localVariablesSchema?.required) {
for (const field of nodeDefinition.localVariablesSchema.required) {
if (!localVariables?.[field]) {
const fieldTitle = nodeDefinition.localVariablesSchema.properties[field]?.title || field;
return {
valid: false,
message: `节点 "${node.attr('label/text')}" 的环境变量 "${fieldTitle}" 是必填项`
};
}
}