+ {/* === Name & Default === */}
+
+
+
+ updateForm('name', e.target.value)}
+ className="bg-[var(--dg-bg-tertiary)] border-[var(--dg-border)]"
+ />
+
+
+
+ updateForm('is_default', v)}
+ />
+
+
+
+
+
+ {/* === HTTP 设置 === */}
+
+
+ HTTP
+
+
+
+
+
+ updateForm('url', e.target.value)}
+ className="flex-1 bg-[var(--dg-bg-tertiary)] border-[var(--dg-border)] font-mono text-sm"
+ />
+
+
+
+ Access: {form.access === 'server' ? 'Server (default)' : 'Browser'}
+
+
+
+ {/* === Auth 折叠 === */}
+
+
+ {showAuth && (
+
+ {/* Basic Auth */}
+
+
+ {/* With Credentials */}
+
+ updateForm('with_credentials', v)}
+ />
+
+
+
+ {/* TLS Client Auth */}
+
+
+ updateForm('tls_client_auth', v)}
+ />
+
+
+ {form.tls_client_auth && (
+
+
+ updateForm('with_ca_cert', v)}
+ />
+
+
+ {form.with_ca_cert && (
+
+ )}
+
+
+ {/* Skip TLS Verify */}
+
+ updateForm('skip_tls_verify', v)}
+ />
+
+
+
+ {/* Forward OAuth Identity */}
+
+ Forward OAuth Identity
+
+
+ )}
+
+
+ {/* === Custom HTTP Headers === */}
+
+
+
+ Custom HTTP Headers
+
+
+
+ {headers.length === 0 ? (
+
暂无自定义 Header
+ ) : (
+
+ )}
+
+
+ {/* === Alerting 折叠 === */}
+
+
+ {showAlerting && (
+
+
+ updateForm('enable_alerting', v)}
+ />
+
+
+
+
+
+
+
+ )}
+
+
+ {/* === 采集与查询 === */}
+
+
+
+
+ updateForm('scrape_interval', Number(e.target.value))}
+ className="w-20 bg-[var(--dg-bg-tertiary)] border-[var(--dg-border)] text-sm text-center"
+ />
+ 秒
+
+
+
+
+
+ updateForm('query_timeout', Number(e.target.value))}
+ className="w-20 bg-[var(--dg-bg-tertiary)] border-[var(--dg-border)] text-sm text-center"
+ />
+ 秒
+
+
+
+
+ {/* === HTTP Method === */}
+
+
+
+
+
+ {/* === Misc 折叠 === */}
+
+
+ {showMisc && (
+
+
+ updateForm('disable_metrics_lookup', v)}
+ />
+
+
+
+
+ updateForm('custom_query_params', e.target.value)}
+ className="bg-[var(--dg-bg-tertiary)] border-[var(--dg-border)] text-sm font-mono"
+ />
+
+
+ )}
+
+
+ {/* 连接测试结果 */}
+ {testResult && (
+
+ {testResult.success
+ ?
+ :
+ }
+ {testResult.message}
+ {testResult.target_count !== undefined && (
+
+ {testResult.target_count} targets
+
+ )}
+
+ )}
+
+
+ {/* Footer */}
+