feat(typesetting): Wave 2 - 流式渲染、表格字号独立控制、作者声明

- 缩略图改为流式渲染,截图一页即显示一页
- 新增tableFontScale独立控制表格字号,含后端持久化
- 内容页顶部添加作者声明(文/作者名),空值隐藏
This commit is contained in:
augushong
2026-05-16 00:35:03 +08:00
committed by Atlas
parent 2b9bfb179f
commit 3ea3a6dbe3
4 changed files with 130 additions and 44 deletions

View File

@@ -285,7 +285,8 @@
var currentConfig = {
size: 'xiaohongshu',
watermark: '',
fontScale: 1
fontScale: 1,
tableFontScale: 1
};
var postData = {
@@ -306,13 +307,15 @@
size: savedConfig.size || 'xiaohongshu',
watermark: savedConfig.watermark || '',
pageAlignments: savedConfig.pageAlignments || {},
fontScale: savedConfig.fontScale || 1
fontScale: savedConfig.fontScale || 1,
tableFontScale: savedConfig.tableFontScale || 1
};
// 同步当前配置
currentConfig.size = initConfig.size;
currentConfig.watermark = initConfig.watermark;
currentConfig.fontScale = initConfig.fontScale;
currentConfig.tableFontScale = initConfig.tableFontScale;
// ========== wangeditor 初始化 ==========
var E = window.wangEditor;
@@ -467,6 +470,7 @@
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;
@@ -533,13 +537,27 @@
settingsHtml += '<input type="text" name="s_watermark" value="' + (currentConfig.watermark || '') + '" placeholder="可选水印文字" class="layui-input">';
settingsHtml += '</div>';
settingsHtml += '</div>';
settingsHtml += '<div class="layui-form-item">';
settingsHtml += '<label class="layui-form-label">表格字号</label>';
settingsHtml += '<div class="layui-input-block">';
settingsHtml += '<select name="s_table_font_scale">';
var tblScaleVal = currentConfig.tableFontScale || 1;
var tblPresets = [0.5, 0.8, 1.0, 1.2, 1.5, 2.0];
var tblIsPreset = tblPresets.indexOf(tblScaleVal) !== -1;
for (var pi = 0; pi < tblPresets.length; pi++) {
settingsHtml += '<option value="' + tblPresets[pi] + '"' + (tblScaleVal === tblPresets[pi] ? ' selected' : '') + '>' + tblPresets[pi] + 'x</option>';
}
settingsHtml += '<option value="custom"' + (!tblIsPreset ? ' selected' : '') + '>自定义</option>';
settingsHtml += '</select>';
settingsHtml += '</div>';
settingsHtml += '</div>';
settingsHtml += '</form>';
settingsHtml += '</div>';
layer.open({
type: 1,
title: '排版设置',
area: ['400px', '220px'],
area: ['400px', '280px'],
content: settingsHtml,
btn: ['确定', '取消'],
success: function (layero) {
@@ -548,8 +566,10 @@
yes: function (index, layero) {
currentConfig.size = layero.find('[name="s_size"]').val();
currentConfig.watermark = layero.find('[name="s_watermark"]').val();
var tblScaleSel = layero.find('[name="s_table_font_scale"]').val();
currentConfig.tableFontScale = tblScaleSel === 'custom' ? (currentConfig.tableFontScale || 1) : parseFloat(tblScaleSel);
layer.close(index);
PhoneImageLogPanel.log('应用新设置: 尺寸=' + currentConfig.size, 'info');
PhoneImageLogPanel.log('应用新设置: 尺寸=' + currentConfig.size + ', 表格字号=' + (currentConfig.tableFontScale || 1) + 'x', 'info');
doRender();
}
});
@@ -562,7 +582,8 @@
renderTimer = setTimeout(function () {
var newConfig = {
size: currentConfig.size,
watermark: currentConfig.watermark
watermark: currentConfig.watermark,
tableFontScale: currentConfig.tableFontScale || 1
};
if (extraConfig) {
$.extend(newConfig, extraConfig);
@@ -634,6 +655,7 @@
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;
@@ -662,6 +684,7 @@
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;
@@ -688,6 +711,7 @@
size: currentConfig.size,
watermark: currentConfig.watermark,
fontScale: currentConfig.fontScale || 1,
tableFontScale: currentConfig.tableFontScale || 1,
content_html: PhoneImageEngine.getContentHtml()
}, function(current, total, canvas) {
if (total > 0) {
@@ -779,6 +803,7 @@
if (cfg.watermark !== undefined) historyConfig.watermark = cfg.watermark;
if (cfg.pageAlignments) historyConfig.pageAlignments = cfg.pageAlignments;
if (cfg.fontScale !== undefined) historyConfig.fontScale = cfg.fontScale;
if (cfg.tableFontScale !== undefined) historyConfig.tableFontScale = cfg.tableFontScale;
// 同步当前配置
if (cfg.size) currentConfig.size = cfg.size;
@@ -787,6 +812,9 @@
currentConfig.fontScale = cfg.fontScale;
setFontScaleUI(cfg.fontScale);
}
if (cfg.tableFontScale !== undefined) {
currentConfig.tableFontScale = cfg.tableFontScale;
}
lastOutputId = outputId;
PhoneImageLogPanel.log('历史配置已加载', 'success');