feat: 新增日志中心、功能优化与代码重构

- 新增 log_datasource.go / log_proxy.go / user_api_token.go 后端控制器
- 新增 log_datasource.go model
- 新增 monitor/log-center.ts API 模块
- 新增 LogCenter 前端组件及页面
- 重构 deployment 相关组件 (HPDA/UpdateImageModal/bundle-yaml 等)
- 新增 ResetPasswordDialog / code-snippet-block / copy-button 等 UI 组件
- 重构多个 k8s 相关组件 (TopologyView/ResourceVisualEditor/PodFileBrowser 等)
- 更新多个 API 和工具函数 (auth.ts/monitor/index.ts/request.ts 等)
- 更新静态资源 (index.html + 新 JS/CSS bundle)
- 删除废弃静态资源文件
This commit is contained in:
Logan committed 2026-06-26 23:18:05 +08:00
1 parent 5ca0e6d83a
commit 8d46e8f352
197 files changed
+5014 -815

No files matched your search

+19 -1
View File
@@ -28,6 +28,13 @@ export function getApiBase(): string {
return API_PREFIX;
}
/** 对外展示的 API 根路径(curl/CI 文档),无环境变量时拼接当前浏览器域名 // Logan.Li */
export function getPublicApiBase(): string {
const base = getApiBase();
if (/^https?:\/\//i.test(base)) return base;
return `${window.location.origin}${base}`;
}
/** 拼接 REST API 完整路径(含 /api/v1 前缀) // Logan.Li */
export function buildApiUrl(path: string, params?: URLSearchParams): string {
const p = path.startsWith('/') ? path : `/${path}`;
@@ -141,7 +148,18 @@ export const http = {
const resp = await fetch(resolveApiUrl(url), {
headers: { Authorization: 'Bearer ' + getAuthToken() },
});
if (!resp.ok) throw new Error('HTTP ' + resp.status);
if (!resp.ok) {
const ct = resp.headers.get('Content-Type') || '';
if (ct.includes('json')) {
try {
const json = await resp.json() as { message?: string; Message?: string };
throw new Error(json.message || json.Message || `HTTP ${resp.status}`);
} catch (e) {
if (e instanceof Error && !e.message.startsWith('HTTP ')) throw e;
}
}
throw new Error(`HTTP ${resp.status}`);
}
const blob = await resp.blob();
const a = document.createElement('a');
a.href = URL.createObjectURL(blob);