UNPKG

linkmore-design

Version:

๐ŸŒˆ ๐Ÿš€lm็ป„ไปถๅบ“ใ€‚๐Ÿš€

88 lines (87 loc) โ€ข 2.72 kB
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray"; function getSum(item, dataIndex) { var sum = 0; item.children.forEach(function (subItem) { var value; if (/\%/.test("".concat(subItem[dataIndex]))) { value = Number(subItem["".concat(dataIndex, "_sum")]); } else { value = Number(subItem[dataIndex]); } if (Number.isNaN(value)) { return; } sum += value; }); return sum; } // ๅˆ†็ป„ๆฑ‚ๅ’Œ่ฎก็ฎ— export default function calc(item, needCalcKeys, history) { var _item$children; if (item !== null && item !== void 0 && (_item$children = item.children) !== null && _item$children !== void 0 && _item$children.length) { needCalcKeys.forEach(function (dkey) { if (!item.children || !item.children.length) { return; } var _dkey = _slicedToArray(dkey, 2), dataIndex = _dkey[0], expression = _dkey[1]; item["".concat(dataIndex, "_exp")] = expression; if (expression === 'sum') { var sum = getSum(item, dataIndex); item[dataIndex] = Number(sum).toFixed(2); } else if (expression === 'average') { var _sum = getSum(item, dataIndex); item[dataIndex] = (_sum / item.children.length).toFixed(2); } else if (expression === 'max') { var max = -Number.MAX_VALUE; item.children.forEach(function (subItem) { var value = Number(subItem[dataIndex]); if (Number.isNaN(value)) { return; } if (value > max) { max = value; } }); if (max === -Number.MAX_VALUE) { max = 0; } item[dataIndex] = max; } else if (expression === 'min') { var min = Number.MAX_VALUE; item.children.forEach(function (subItem) { var value = Number(subItem[dataIndex]); if (Number.isNaN(value)) { return; } if (value < min) { min = value; } }); if (min === Number.MAX_VALUE) { min = 0; } item[dataIndex] = min; } else if (expression === 'percent') { var _sum2 = getSum(item, dataIndex); history.push({ item: item, dataIndex: dataIndex, sum: _sum2 }); } }); } } export var reset = function reset(arr, dataIndex) { arr === null || arr === void 0 ? void 0 : arr.forEach(function (item) { if (item !== null && item !== void 0 && item.children) { reset(item === null || item === void 0 ? void 0 : item.children, dataIndex); } if (item.children) { delete item[dataIndex]; delete item["".concat(dataIndex, "_exp")]; } }); };