// 操作列宽度的经验公式:把该行「可见」按钮的字符数累加后换算成像素。
|
// 原实现在渲染期直接改写组件上的 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
|