fix(phone-image): 修復5個UI問題

1. 中間預覽區工具欄折行: 縮小字號/間距(gap 8->4, font 12->11px)
2. 右側畫布缺少頁間距: 新增scaleWrapper裁切transform溢出
3. 右側對齊下拉框不可見: select改為正常文檔流,移除position:absolute
4. 正文水平居中: dom-page-content添加text-align:left
5. 列表不顯示序號/圓點: 顯式設置list-style-type + display:list-item
This commit is contained in:
augushong
2026-05-19 19:46:11 +08:00
parent a587a0c00a
commit 3867256519
3 changed files with 53 additions and 21 deletions

View File

@@ -603,9 +603,7 @@
}
.thumb-alignment-select {
position: absolute;
bottom: 4px;
right: 4px;
display: block;
height: 22px;
font-size: 11px;
border: 1px solid #d9d9d9;
@@ -613,7 +611,7 @@
padding: 0 2px;
background: #fff;
cursor: pointer;
z-index: 10;
margin: 4px auto 0;
opacity: 0;
transition: opacity 0.2s;
}
@@ -955,14 +953,39 @@ body > .page-header-right .layui-btn:not(.layui-btn-primary):not(.layui-btn-norm
}
/* 预览区列表 */
#render-preview ul,
#render-preview ul {
list-style-type: disc;
padding-left: 20px;
margin-bottom: 10px;
}
#render-preview ol {
list-style-type: decimal;
padding-left: 20px;
margin-bottom: 10px;
}
#render-preview li {
margin-bottom: 5px;
display: list-item;
}
/* DOM分页预览列表 */
.dom-page-content ul {
list-style-type: disc;
padding-left: 20px;
margin-bottom: 10px;
}
.dom-page-content ol {
list-style-type: decimal;
padding-left: 20px;
margin-bottom: 10px;
}
.dom-page-content li {
margin-bottom: 5px;
display: list-item;
}
/* ============================================
@@ -1152,6 +1175,7 @@ body > .page-header-right .layui-btn:not(.layui-btn-primary):not(.layui-btn-norm
font-size: calc(14px * var(--pi-font-scale, 1));
line-height: 1.8;
word-break: break-word;
text-align: left;
}
/* DOM分页内容区对齐支持 (复用valign模式) */
@@ -1159,12 +1183,14 @@ body > .page-header-right .layui-btn:not(.layui-btn-primary):not(.layui-btn-norm
display: flex;
flex-direction: column;
justify-content: center;
text-align: left;
}
.dom-page-content.valign-bottom {
display: flex;
flex-direction: column;
justify-content: flex-end;
text-align: left;
}
/* --- DOM分页页码 --- */

View File

@@ -1515,9 +1515,14 @@ var PhoneImageEngine = (function () {
var $thumbItem = $('<div class="preview-thumb-item" data-page-index="' + i + '"></div>').css({
'flex-shrink': '0',
'width': thumbWidth + 'px',
'position': 'relative'
'position': 'relative',
'margin-bottom': '8px'
});
// 创建overflow:hidden的缩放wrapper裁切transform:scale溢出
var scaledH = Math.round(sizeConfig.height * scaleRatio);
var $scaleWrapper = $('<div style="overflow:hidden;width:' + thumbWidth + 'px;height:' + scaledH + 'px;"></div>');
// 创建DOM分页容器实际尺寸通过transform缩放显示为缩略图
var $container = $('<div class="dom-page-container"></div>').css({
'transform': 'scale(' + scaleRatio + ')',
@@ -1535,13 +1540,14 @@ var PhoneImageEngine = (function () {
// pages[].html 是完整的 .phone-image-page 结构含品牌header、内容、页码、水印
$container.html(domPage.html);
$thumbItem.append($container);
$scaleWrapper.append($container);
$thumbItem.append($scaleWrapper);
// 页码标签N/M格式
var $pageNum = $('<span class="preview-thumb-page-num"></span>').text((i + 1) + '/' + totalPages);
$thumbItem.append($pageNum);
// 对齐select仅内容页显示
// 对齐select仅内容页显示,正常文档流放在页码下方
if (pageType === 'content') {
var pageNum = domPage.pageNum || (i + 1);
var currentAlign = (config.pageAlignments && config.pageAlignments[pageNum]) || 'top';