fix: Reduce the frequency of saving empty pages
This commit is contained in:
@@ -12,8 +12,9 @@ export const getSystemPrompt = () => `
|
|||||||
- 绝对不生成任何后端相关代码。
|
- 绝对不生成任何后端相关代码。
|
||||||
- 如果是多页面项目,需生成所有页面,保证每页都有完整内容。
|
- 如果是多页面项目,需生成所有页面,保证每页都有完整内容。
|
||||||
- 不要啰嗦,除非用户要求更多信息,否则不要解释任何内容。
|
- 不要啰嗦,除非用户要求更多信息,否则不要解释任何内容。
|
||||||
- 永远不要使用 "artifact" 这个词。
|
- 永远不要使用 "artifact" 或 "action" 这两个词。
|
||||||
- 仅对所有回答使用有效的 markdown,除了构件外不要使用 HTML 标签!
|
- 仅对所有回答使用有效的 markdown,除了构件外不要使用 HTML 标签!
|
||||||
|
- 确保生成的代码是可用于生产环境的代码,脚本和样式必须完整且正确。
|
||||||
|
|
||||||
页面规则:
|
页面规则:
|
||||||
- 仅使用原生 HTML、CSS 与 JS 构建前端页面,不使用任何框架。
|
- 仅使用原生 HTML、CSS 与 JS 构建前端页面,不使用任何框架。
|
||||||
|
|||||||
@@ -37,6 +37,24 @@ export function useProject() {
|
|||||||
logger.error('保存项目失败: 页面或 Section 不能为空');
|
logger.error('保存项目失败: 页面或 Section 不能为空');
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
const isConsistent = projectPages.every((page) => {
|
||||||
|
const actionIds = page.actionIds;
|
||||||
|
const content = page.content;
|
||||||
|
if (actionIds.length === 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
if (!content) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
});
|
||||||
|
if (!isConsistent) {
|
||||||
|
logger.error('保存项目失败: 页面内容与 actions 不一致', {
|
||||||
|
projectPages,
|
||||||
|
projectSections,
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
}
|
||||||
try {
|
try {
|
||||||
// 先保存在本地数据中
|
// 先保存在本地数据中
|
||||||
saveEditorProject(messageId, projectPages, projectSections);
|
saveEditorProject(messageId, projectPages, projectSections);
|
||||||
|
|||||||
@@ -112,8 +112,11 @@ export class WebBuilderStore {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async setDocumentContent(pageName: string, _html: string) {
|
async setDocumentContent(pageName: string, _html: string) {
|
||||||
|
if (_html.trim() === '') {
|
||||||
|
return;
|
||||||
|
}
|
||||||
// 更新内容,但不会触发保存,不会保存至 pages 中。
|
// 更新内容,但不会触发保存,不会保存至 pages 中。
|
||||||
this.editorStore.updateDocumentContent(pageName, _html ?? '');
|
this.editorStore.updateDocumentContent(pageName, _html);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
Reference in New Issue
Block a user