| 1 | export type StyleSwitchRetryPageRef = { |
| 2 | id?: string | null |
| 3 | page_id?: string | null |
| 4 | file_slug?: string | null |
| 5 | legacy_page_id?: string | null |
| 6 | status?: string | null |
| 7 | } |
| 8 | |
| 9 | export function resolveStyleSwitchRetryPageId(page: StyleSwitchRetryPageRef): string { |
| 10 | return page.page_id || page.file_slug || page.legacy_page_id || page.id || '' |
| 11 | } |
| 12 | |
| 13 | export function collectFailedStyleSwitchPageIds(pages: StyleSwitchRetryPageRef[]): string[] { |
| 14 | return pages |
| 15 | .filter((page) => page.status !== 'completed') |
| 16 | .map(resolveStyleSwitchRetryPageId) |
| 17 | .filter((pageId) => pageId.length > 0) |
| 18 | } |
| 19 | |
| 20 | export function buildStyleSwitchUserMessage(styleName: string): string { |
| 21 | return [ |
| 22 | `将整套演示文稿切换为现有风格「${styleName}」。`, |
| 23 | '', |
| 24 | '硬性要求:', |
| 25 | '- 禁止修改每页文字内容。该页现有的全部可见文字、数字、数据、标题、段落和标签必须逐字逐项原样保留。', |
| 26 | '- 禁止删减、改写、概括、扩写、翻译或新增任何文字与数据,包括标点、数值和单位。', |
| 27 | '- 禁止把文字或数据移动到其他页面;每页内容必须留在原页。', |
| 28 | '- 禁止增删页面或改变页面顺序。', |
| 29 | '- 允许为适配新风格重新设计页面布局、视觉层级、图形结构和装饰表现。', |
| 30 | '- 可以调整配色、字体、字号、间距、边框、背景、对齐和元素位置。', |
| 31 | '- 禁止沿用此前风格的配色、装饰和布局语言;视觉设计必须以当前现有风格规范为准。', |
| 32 | '- 必须使用当前会话中已经切换完成的现有风格规范。', |
| 33 | '', |
| 34 | '再次强调:禁止修改每页文字内容和数据,必须逐字逐项原样保留;页面布局与视觉结构可以按现有风格重新设计。' |
| 35 | ].join('\n') |
| 36 | } |
| 37 |