private rule2expr()

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 '';
    }
  }