重构: P0-4 IdeaRecord.status union类型化(试点·类型安全)

- types.ts: 新增 IdeaStatus union(draft|pending_review|approved|rejected|promoted|archived, 对齐后端df-types IdeaStatus serde snake_case) + IdeaRecord.status string→IdeaStatus
- Ideas.vue/IdeaDetail.vue/IdeasPanel.vue: statusOptions/statusLabelKey/onStatusChange/emit收窄 类型IdeaStatus(编译期校验拼写错)
- stores/project.ts/state.ts: 比较 IdeaStatus
后端契约: union 6值=df-types IdeaStatus serde, IPC/DB不变零行为变更
P0-4试点跑通: 推广路径验证(union+父子类型传递+emit收窄); 剩余TaskRecord/AiToolCallInfo/WorkflowRecord/ProjectRecord status待推广
This commit is contained in:
2026-06-19 12:38:20 +08:00
parent b237f716dd
commit b42cc66e7a
3 changed files with 14 additions and 9 deletions

View File

@@ -4,11 +4,15 @@
// 灵感
// ============================================================
// IdeaRecord.status union 类型 — 值集对齐后端 IdeaStatus serde (df-types/src/types.rs:52)
// snake_case: draft | pending_review | approved | rejected | promoted | archived
export type IdeaStatus = 'draft' | 'pending_review' | 'approved' | 'rejected' | 'promoted' | 'archived'
export interface IdeaRecord {
id: string
title: string
description: string
status: string // draft | pending_review | approved | rejected | promoted | archived
status: IdeaStatus
priority: number
score: number | null
tags: string | null // JSON 数组字符串