|
@@ -1009,7 +1009,7 @@ class CalcProgram {
|
|
if (treeNode.changed && !changedArr.includes(treeNode)) changedArr.push(treeNode);
|
|
if (treeNode.changed && !changedArr.includes(treeNode)) changedArr.push(treeNode);
|
|
};
|
|
};
|
|
|
|
|
|
- // 计算本节点、所有父节点(默认,可选)、公式引用节点。
|
|
|
|
|
|
+ // 计算本节点、所有父节点(默认,可选)、公式引用节点(默认,可选)。
|
|
calculate(treeNode, calcParents = true, calcFormulas = true){
|
|
calculate(treeNode, calcParents = true, calcFormulas = true){
|
|
let me = this;
|
|
let me = this;
|
|
let changedNodes = [];
|
|
let changedNodes = [];
|
|
@@ -1120,6 +1120,17 @@ class CalcProgram {
|
|
me.saveNodes(allChangedNodes);
|
|
me.saveNodes(allChangedNodes);
|
|
};
|
|
};
|
|
|
|
|
|
|
|
+ // 计算多条零散的清单,并计算他们的父清单、引用清单,然后打包存储。如:花选删除树结点(如花选清单、定额等,不区分树结点类型)。
|
|
|
|
+ calcBillsAndSave(billNodes){
|
|
|
|
+ let me = this, allChangedNodes = [];
|
|
|
|
+ for (let node of billNodes) {
|
|
|
|
+ let curChangeds = me.calculate(node, true, false);
|
|
|
|
+ mergeArr(allChangedNodes, curChangeds);
|
|
|
|
+ };
|
|
|
|
+ me.calcFormulaNodes(allChangedNodes);
|
|
|
|
+ me.saveNodes(allChangedNodes);
|
|
|
|
+ };
|
|
|
|
+
|
|
// 计算并保存指定的一个树节点。修改一个树节点,实际上要计算和保存的是一批树结点:层层父结点、被其它结点(的公式)引用的公式结点。
|
|
// 计算并保存指定的一个树节点。修改一个树节点,实际上要计算和保存的是一批树结点:层层父结点、被其它结点(的公式)引用的公式结点。
|
|
// 这个方法实际上封装了calculate()和saveNodes()两个方法,主要目的是为了外部调用方便,少写一点累赘代码。
|
|
// 这个方法实际上封装了calculate()和saveNodes()两个方法,主要目的是为了外部调用方便,少写一点累赘代码。
|
|
calcAndSave(treeNode){
|
|
calcAndSave(treeNode){
|