| 39 | } |
| 40 | |
| 41 | export interface GeneratorState { |
| 42 | // 当前阶段:input-输入主题, outline-编辑大纲, generating-生成中, result-查看结果 |
| 43 | stage: 'input' | 'outline' | 'generating' | 'result' |
| 44 | |
| 45 | // 用户输入的主题 |
| 46 | topic: string |
| 47 | |
| 48 | // 大纲数据(包含原始文本和解析后的页面列表) |
| 49 | outline: { |
| 50 | raw: string // 原始大纲文本 |
| 51 | pages: Page[] // 解析后的页面数组 |
| 52 | } |
| 53 | |
| 54 | // 图片生成进度 |
| 55 | progress: { |
| 56 | current: number // 当前已完成的数量 |
| 57 | total: number // 总共需要生成的数量 |
| 58 | status: 'idle' | 'generating' | 'done' | 'error' |
| 59 | } |
| 60 | |
| 61 | // 生成的图片结果列表 |
| 62 | images: GeneratedImage[] |
| 63 | |
| 64 | // 图片生成任务ID(用于轮询任务状态) |
| 65 | taskId: string | null |
| 66 | |
| 67 | // 历史记录ID(用于保存和加载历史记录) |
| 68 | recordId: string | null |
| 69 | |
| 70 | // 用户上传的参考图片(File对象,不会被持久化) |
| 71 | userImages: File[] |
| 72 | |
| 73 | // 生成的内容数据(标题、文案、标签) |
| 74 | content: GeneratedContent |
| 75 | |
| 76 | // 大纲生成状态:idle-未开始, generating-生成中, done-已完成, error-出错 |
| 77 | outlineStatus: 'idle' | 'generating' | 'done' | 'error' |
| 78 | |
| 79 | // 最后一次保存到服务器的时间(ISO格式字符串) |
| 80 | lastSavedAt: string | null |
| 81 | } |
| 82 | |
| 83 | const STORAGE_KEY = 'generator-state' |
| 84 |
nothing calls this directly
no outgoing calls
no test coverage detected