日期:2026-10-29
范围:web-admin 的 TinyMceEditor(合同打印弹窗、合同详情、报价打印弹窗共用)
状态:已确认
合同打印富文本里的产品表需要能手调列宽和行高。上一版在整张表的每条竖线、横线上放绿色拖拽条,悬停就铺满表格,并且拖动时按当时被挤窄的视觉宽度写回像素,规格列会被压成一字一行。
该整表拖拽已经关闭(table_resize_bars: false,不再调用整表 setupExcelLikeTableResize)。
本次只恢复一种更小的拖拽:
打开编辑器时不改已有列宽。只有用户真正拖动,才把新的宽或高写入 HTML。保存仍走现有的「保存模板」。
句柄只画在第一行的右边界、第一列的下边界,是贴着格子边缘的短段,不贯穿整张表。
拖宽某一列时,整张表变宽,其余列的宽度保持不变。拖高某一行时,只改这一行,列宽不动。
不采用:
产品表第一行是 12 个独立表头,每个 colspan 为 1。拖「规格」表头的右边界,只增加规格列的像素宽度,表宽增加同样的像素,单价及后面的列不变。
规则:
colspan === 1 的单元格放右边界句柄table-layout: fixed、表格 width(像素)、对应 <col> 与该表头单元格的 width(像素)td 上max-width 使用本次像素总宽,避免编辑器样式里的 max-width: 100% 把刚拖宽的表再压回去每一行最左边、从第 1 列开始的那个单元格,在其下边界放句柄。合计行左边常是 colspan="2" 的「运费」「不含税金额合计」,拖它的下边界只增加这一行的高度,不改任何列宽。
规则:
normalizeContractProductTableWidths 保持不动)col 宽度与打开前一致