修复响应解析:outputs 为扁平数组而非嵌套 images 对象,补充 CLAUDE.md 文档

轮询成功返回时 outputs 是 [{url, type}] 数组,代码误解析为 outputs.images 导致提取 URL 为空,触发"生成失败"通知且列表项无法更新为成功状态。同时在 CLAUDE.md 中补充了 API 响应格式说明、eslint 命令及 config/plugins.js 引用。
This commit is contained in:
王佑琳 2026-06-04 18:48:54 +08:00
parent 4f7357eefc
commit f0008aedde
2 changed files with 21 additions and 2 deletions

View File

@ -8,11 +8,12 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
pnpm dev # 启动 Vite 开发服务器
pnpm build # 生产构建
pnpm preview # 预览生产构建
npx eslint . # 代码检查(@antfu/eslint-configVue 支持,无 TypeScript
```
## 技术栈
Vue 3 (Composition API) + Vite 7 + Pinia + Vue Router + Element Plus + Less + pnpm
Vue 3 (Composition API) + Vite 7 + Pinia + Vue Router + Element Plus + `vue-element-plus-x`(多媒体编辑) + Less + pnpm
## 架构概览
@ -56,6 +57,7 @@ src/
│ ├── modelConfig.js # Video 旧架构:从远程 JSON 加载 workflow 配置
│ └── auth.ts # token 存取工具localStorage
├── config/
│ ├── plugins.js # Vite 插件配置unplugin-auto-import + unplugin-vue-components
│ ├── index.js # 平台配置入口(目前仅导出 runninghub 供 Video 使用)
│ ├── runninghub/ # RunningHub 平台适配器Playload() 构造和 result() 解析Video 专用)
│ └── models/ # Painting 模型参数配置:每模型一个 JS 文件,定义 params schema
@ -116,6 +118,23 @@ src/
| `cancelOrCollect` | POST `/collect/toggle` | 收藏/取消收藏 |
| `deleteGenerateHistory` | DELETE `/taskRecordHistory/delete` | 删除历史记录 |
### 任务响应格式
```json
// GET /suanli/v1/tasks/:id 返回结构
{
"code": 0,
"data": {
"task_id": "uuid",
"status": "completed", // queued | processing | completed | failed
"outputs": [ // ⚠️ 扁平数组,不是 { images: [...] }
{ "url": "https://...", "type": "png" }
],
"vendor_error": "..." // 仅 failed 时有值
}
}
```
### 请求拦截器路由
拦截器统一设置 `Authorization: <token>`(不带 Bearer 前缀),根据 URL 前缀切换后端:

View File

@ -140,7 +140,7 @@ export async function generate(data, generateData) {
useDisplay.isSubGerenate = false
// 提取结果 URL
const urls = taskData.outputs?.images?.map(img => img.url) || []
const urls = taskData.outputs?.map(img => img.url) || []
if (urls.length > 0) {
useDisplay.updateItemToSuccess(taskId, urls)
websocketSuccess()