diff --git a/view/admin/post/phone_image.html b/view/admin/post/phone_image.html index 79ef971..e3b48b7 100644 --- a/view/admin/post/phone_image.html +++ b/view/admin/post/phone_image.html @@ -256,6 +256,19 @@ 1.0x + 代码字号 + + + 1.0x
@@ -298,7 +311,8 @@ size: 'xiaohongshu', watermark: '', fontScale: 1, - tableFontScale: 1 + tableFontScale: 1, + codeFontScale: 1 }; var postData = { @@ -322,7 +336,8 @@ watermark: savedConfig.watermark || '', pageAlignments: savedConfig.pageAlignments || {}, fontScale: savedConfig.fontScale || 1, - tableFontScale: savedConfig.tableFontScale || 1 + tableFontScale: savedConfig.tableFontScale || 1, + codeFontScale: savedConfig.codeFontScale || 1 }; // 同步当前配置 @@ -330,6 +345,7 @@ currentConfig.watermark = initConfig.watermark; currentConfig.fontScale = initConfig.fontScale; currentConfig.tableFontScale = initConfig.tableFontScale; + currentConfig.codeFontScale = initConfig.codeFontScale; currentConfig.pageAlignments = initConfig.pageAlignments || {}; // ========== wangeditor 初始化 ========== @@ -486,6 +502,7 @@ watermark: currentConfig.watermark, fontScale: currentConfig.fontScale || 1, tableFontScale: currentConfig.tableFontScale || 1, + codeFontScale: currentConfig.codeFontScale || 1, content_html: PhoneImageEngine.getContentHtml() }, saveConfigUrl).then(function(data) { if (data.output_id) lastOutputId = data.output_id; @@ -567,6 +584,7 @@ watermark: currentConfig.watermark, fontScale: currentConfig.fontScale || 1, tableFontScale: currentConfig.tableFontScale || 1, + codeFontScale: currentConfig.codeFontScale || 1, content_html: PhoneImageEngine.getContentHtml() }, saveConfigUrl).then(function(data) { if (data.output_id) lastOutputId = data.output_id; @@ -610,6 +628,67 @@ setTableFontScaleUI(initConfig.tableFontScale); } + // ========== 代码字号下拉 ========== + var $codeScaleSelect = $('#code-font-scale-select'); + var $codeScaleCustom = $('#code-font-scale-custom'); + var $codeScaleValue = $('#code-font-scale-value'); + var codeScalePresets = [0.5, 0.8, 1.0, 1.2, 1.5, 2.0]; + + function setCodeFontScaleUI(val) { + if (codeScalePresets.indexOf(val) >= 0) { + $codeScaleSelect.val(String(val)); + $codeScaleCustom.hide(); + } else { + $codeScaleSelect.val('custom'); + $codeScaleCustom.val(val).show(); + } + $codeScaleValue.text(parseFloat(val).toFixed(1) + 'x'); + } + + function applyCodeFontScaleValue(val) { + val = Math.max(0.5, Math.min(2.0, parseFloat(val) || 1.0)); + $codeScaleValue.text(val.toFixed(1) + 'x'); + currentConfig.codeFontScale = val; + PhoneImageEngine.updateConfig({ codeFontScale: val }); + PhoneImageEngine.applyFontScale(); + } + + $codeScaleSelect.on('change', function() { + var selected = $(this).val(); + if (selected === 'custom') { + $codeScaleCustom.show().focus(); + } else { + $codeScaleCustom.hide(); + var val = parseFloat(selected); + applyCodeFontScaleValue(val); + PhoneImageLogPanel.log('代码字号调整为 ' + val.toFixed(1) + 'x', 'info'); + updateSaveState('saving'); + PhoneImageEngine.debouncedSaveConfig(); + } + }); + + $codeScaleCustom.on('input', function() { + var val = parseFloat($(this).val()); + if (!isNaN(val) && val >= 0.5 && val <= 2.0) { + applyCodeFontScaleValue(val); + } + }); + + $codeScaleCustom.on('change', function() { + var val = parseFloat($(this).val()); + if (isNaN(val) || val < 0.5) val = 0.5; + if (val > 2.0) val = 2.0; + $(this).val(val); + applyCodeFontScaleValue(val); + PhoneImageLogPanel.log('代码字号调整为 ' + val.toFixed(1) + 'x', 'info'); + updateSaveState('saving'); + PhoneImageEngine.debouncedSaveConfig(); + }); + + if (initConfig.codeFontScale && initConfig.codeFontScale !== 1) { + setCodeFontScaleUI(initConfig.codeFontScale); + } + // ========== 设置弹框 ========== $('#btn-settings').click(function () { var settingsHtml = '