// 操作列宽度的经验公式:把该行「可见」按钮的字符数累加后换算成像素。 // 原实现在渲染期直接改写组件上的 btnWidth,导致列宽取决于最后一次渲染的行; // 这里抽成纯函数,列宽取所有行的最大值,渲染期不再有副作用。 const BTN_UNIT = 15 const BTN_BASE = 60 export function actionWidth(operations, row) { let count = 0 operations.forEach(o => { if (o.showHide !== undefined && o.showHide(row)) { count += o.name.length } else if (!o.showHide) { count += o.name.length } }) return count * BTN_UNIT + BTN_BASE } export const DEFAULT_ACTION_COLUMN_WIDTH = 120