fix(phone-image): 修复字号倍数影响编辑器+刷新后丢失

- CSS变量 --pi-font-scale 仅在渲染容器上设置,不再全局污染
- Slider松手后立即保存配置,确保fontScale持久化
This commit is contained in:
augushong
2026-05-15 20:44:16 +08:00
parent 5a81385448
commit 6fc164fe90
2 changed files with 20 additions and 2 deletions

View File

@@ -80,7 +80,10 @@ var PhoneImageEngine = (function () {
*/
function applyFontScale() {
var scale = config.fontScale || 1;
document.documentElement.style.setProperty('--pi-font-scale', scale);
var preview = document.getElementById('render-preview');
if (preview) preview.style.setProperty('--pi-font-scale', scale);
var staging = document.getElementById('render-staging');
if (staging) staging.style.setProperty('--pi-font-scale', scale);
}
/**

View File

@@ -351,7 +351,9 @@
var val = parseFloat($(this).val());
$scaleValue.text(val.toFixed(1) + 'x');
currentConfig.fontScale = val;
document.documentElement.style.setProperty('--pi-font-scale', val);
document.getElementById('render-preview').style.setProperty('--pi-font-scale', val);
var staging = document.getElementById('render-staging');
if (staging) staging.style.setProperty('--pi-font-scale', val);
PhoneImageEngine.updateConfig({ fontScale: val });
});
@@ -359,6 +361,19 @@
$slider.on('change', function() {
var val = parseFloat($(this).val());
doRender({ fontScale: val });
// 触发保存,确保字号倍数持久化
updateSaveState('saving');
PhoneImageEngine.saveConfig(postData.postId, {
size: currentConfig.size,
watermark: currentConfig.watermark,
fontScale: currentConfig.fontScale || 1,
content_html: PhoneImageEngine.getContentHtml()
}, saveConfigUrl).then(function(data) {
if (data.output_id) lastOutputId = data.output_id;
updateSaveState('saved');
}).catch(function(err) {
updateSaveState('error');
});
});
// 初始化时更新 Slider 显示值