refactor: 前端全面替换 any 为 unknown 并统一错误处理,后端用量记录补写请求头/体

- 前端 API 层、stores、conversation 解析器、组件全面替换 any 为 unknown/具体类型
- 错误处理统一使用 parseApiError/getErrorStatus 替代 err.response?.data?.detail 模式
- 后端 handler/TaskService/UsageLifecycle/StreamTracker 链路传递 request_headers/request_body
- streaming/pending 状态更新时可补写客户端和提供商的请求头及请求体
- 新增 TaskService 和 UsageService 相关测试
This commit is contained in:
fawney19
2026-02-22 00:43:41 +08:00
parent 98e60e8f74
commit cf2eee222e
121 changed files with 1652 additions and 1179 deletions
@@ -524,7 +524,7 @@ async function handleSave() {
try {
await deleteModel(props.providerId, existingModel.id)
totalSuccess++
} catch (err: any) {
} catch (err: unknown) {
allErrors.push(parseApiError(err, '移除失败'))
}
}
@@ -541,7 +541,7 @@ async function handleSave() {
try {
await deleteModel(props.providerId, existingModel.id)
totalSuccess++
} catch (err: any) {
} catch (err: unknown) {
allErrors.push(parseApiError(err, '移除失败'))
}
}
@@ -556,7 +556,7 @@ async function handleSave() {
if (result.errors.length > 0) {
allErrors.push(...result.errors.map(e => e.error))
}
} catch (err: any) {
} catch (err: unknown) {
allErrors.push(parseApiError(err, '批量添加全局模型失败'))
}
}
@@ -570,7 +570,7 @@ async function handleSave() {
if (result.errors.length > 0) {
allErrors.push(...result.errors.map(e => e.error))
}
} catch (err: any) {
} catch (err: unknown) {
allErrors.push(parseApiError(err, '导入上游模型失败'))
}
}
@@ -585,7 +585,7 @@ async function handleSave() {
emit('changed')
emit('update:open', false)
} catch (err: any) {
} catch (err: unknown) {
showError(parseApiError(err, '保存失败'), '错误')
// 即使出错,如果已执行过操作,也通知父组件刷新数据
if (hasAnyOperation) {
@@ -650,7 +650,7 @@ async function loadGlobalModels() {
loadingGlobalModels.value = true
const response = await getGlobalModels({ limit: 1000 })
allGlobalModels.value = response.models
} catch (err: any) {
} catch (err: unknown) {
showError(parseApiError(err, '加载全局模型失败'), '错误')
} finally {
loadingGlobalModels.value = false
@@ -661,7 +661,7 @@ async function loadGlobalModels() {
async function loadExistingModels() {
try {
existingModels.value = await getProviderModels(props.providerId)
} catch (err: any) {
} catch (err: unknown) {
showError(parseApiError(err, '加载已关联模型失败'), '错误')
}
}