feat(phone-image): 對齊持久化+防抖自動保存

- saveImages新增mergedConfig合併pageAlignments
- 新增debouncedSaveConfig(): 300ms防抖自動保存
- 對齊change handler調用refreshDomPage+debouncedSaveConfig
- 重置按鈕逐頁刷新DOM+防抖保存
- HTML新增phone-image:save-config事件監聽器
- currentConfig初始化正確同步pageAlignments
This commit is contained in:
augushong
2026-05-19 00:30:29 +08:00
parent 63459832a5
commit 94039d026e
2 changed files with 71 additions and 12 deletions

View File

@@ -330,6 +330,7 @@
currentConfig.watermark = initConfig.watermark;
currentConfig.fontScale = initConfig.fontScale;
currentConfig.tableFontScale = initConfig.tableFontScale;
currentConfig.pageAlignments = initConfig.pageAlignments || {};
// ========== wangeditor 初始化 ==========
var E = window.wangEditor;
@@ -694,8 +695,17 @@
currentConfig.pageAlignments = {};
if (typeof PhoneImageEngine !== 'undefined') {
PhoneImageEngine.updateConfig({ pageAlignments: {} });
// 逐页重置对齐并刷新DOM
var totalPages = $('.preview-thumb-item').length;
for (var i = 0; i < totalPages; i++) {
PhoneImageEngine.setPageAlignment(i + 1, 'top');
PhoneImageEngine.refreshDomPage(i);
}
// 重置所有select控件
$('.thumb-alignment-select').val('top');
// 防抖自动保存
PhoneImageEngine.debouncedSaveConfig();
}
doRender();
layer.msg('已重置所有页面对齐');
});
@@ -733,6 +743,28 @@
}
}
// ========== 引擎内部防抖保存事件监听 ==========
$(document).on('phone-image:save-config', function () {
// 同步pageAlignments到currentConfig
currentConfig.pageAlignments = PhoneImageEngine.updateConfig.call.length ? currentConfig.pageAlignments : currentConfig.pageAlignments;
updateSaveState('saving');
PhoneImageLogPanel.log('自动保存对齐配置...', 'info');
PhoneImageEngine.saveConfig(postData.postId, {
size: currentConfig.size,
watermark: currentConfig.watermark,
fontScale: currentConfig.fontScale || 1,
tableFontScale: currentConfig.tableFontScale || 1,
content_html: PhoneImageEngine.getContentHtml()
}, saveConfigUrl).then(function(data) {
if (data.output_id) lastOutputId = data.output_id;
PhoneImageLogPanel.log('对齐配置已保存', 'success');
updateSaveState('saved');
}).catch(function(err) {
PhoneImageLogPanel.log('对齐配置保存失败: ' + err, 'error');
updateSaveState('error');
});
});
// ========== 保存状态指示器 ==========
$('<span id="save-state" style="font-size:12px;color:#999;">已保存</span>').insertAfter('#btn-generate');