in web-app/src/app/routes/alert/alert-setting/alert-setting.component.ts [532:563]
private rule2expr(rule: Rule): string {
if (!rule.field) return '';
switch (rule.operator) {
case 'exists':
case '!exists':
return `${rule.operator}(${rule.field})`;
case 'equals':
case '!equals':
case 'contains':
case '!contains':
case 'matches':
case '!matches':
return `${rule.operator}(${rule.field}, "${rule.value}")`;
case '>':
case '>=':
case '<':
case '<=':
case '==':
case '!=':
// 如果字段包含方法调用
if (rule.field.includes('.') && rule.field.includes('()')) {
return `${rule.field} ${rule.operator} ${rule.value}`;
}
return `${rule.field} ${rule.operator} ${rule.value}`;
default:
return '';
}
}