1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 操作列宽度的经验公式:把该行「可见」按钮的字符数累加后换算成像素。
// 原实现在渲染期直接改写组件上的 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