From 6fc164fe9037896968ff7c1fb9e2e65356970339 Mon Sep 17 00:00:00 2001 From: augushong Date: Fri, 15 May 2026 20:44:16 +0800 Subject: [PATCH] =?UTF-8?q?fix(phone-image):=20=E4=BF=AE=E5=A4=8D=E5=AD=97?= =?UTF-8?q?=E5=8F=B7=E5=80=8D=E6=95=B0=E5=BD=B1=E5=93=8D=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=99=A8+=E5=88=B7=E6=96=B0=E5=90=8E=E4=B8=A2=E5=A4=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - CSS变量 --pi-font-scale 仅在渲染容器上设置,不再全局污染 - Slider松手后立即保存配置,确保fontScale持久化 --- public/static/js/phone-image.js | 5 ++++- view/admin/post/phone_image.html | 17 ++++++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/public/static/js/phone-image.js b/public/static/js/phone-image.js index 5a78546..0a02833 100644 --- a/public/static/js/phone-image.js +++ b/public/static/js/phone-image.js @@ -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); } /** diff --git a/view/admin/post/phone_image.html b/view/admin/post/phone_image.html index 4f8b080..fca884b 100644 --- a/view/admin/post/phone_image.html +++ b/view/admin/post/phone_image.html @@ -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 显示值