|
@@ -230,7 +230,7 @@ ProjectController = {
|
|
|
}
|
|
|
|
|
|
},
|
|
|
- addFXParent:async function(node,ext){
|
|
|
+ addFBToBeParent:async function(node,ext,parentBrother= false){
|
|
|
let datas = [];
|
|
|
//let parent = node.parent.parent;
|
|
|
let newBills = {
|
|
@@ -241,15 +241,21 @@ ProjectController = {
|
|
|
}
|
|
|
if(ext) gljUtil.setProperty(newBills,ext);
|
|
|
|
|
|
- if(node.preSibling){//有前兄弟 在当前分项和前兄弟中间新增一行“分部”空行,空行作为分项的父项,原父项变为空行的前兄弟。
|
|
|
+ if(node.preSibling || parentBrother === true){//有前兄弟,或者强制插入为父项的兄弟 在当前分项和前兄弟中间新增一行“分部”空行,空行作为分项的父项,原父项变为空行的前兄弟。
|
|
|
let changeParent = false;
|
|
|
newBills.ParentID = node.parent.parent?node.parent.parent.getID():-1;
|
|
|
newBills.NextSiblingID = node.parent.data.NextSiblingID;
|
|
|
datas.push({type:ModuleNames.bills,data:newBills,action:"add",preSiblingID:node.parent.data.ID});
|
|
|
datas.push({type:ModuleNames.bills,data:{'ID':node.parent.getID(),'NextSiblingID':newBills.ID}})
|
|
|
for(let c of node.parent.children){
|
|
|
- if(c.data.ID == node.data.ID) changeParent = true
|
|
|
- if(changeParent) datas.push({type:ModuleNames.bills,data:{'ID':c.getID(),'ParentID':newBills.ID}})
|
|
|
+ if(c.data.ID == node.data.ID) changeParent = true;
|
|
|
+ let type = ModuleNames.bills;
|
|
|
+ let parentField = 'ParentID';
|
|
|
+ if(node.sourceType===projectObj.project.Ration.getSourceType()){
|
|
|
+ type = ModuleNames.ration;
|
|
|
+ parentField = 'billsItemID';
|
|
|
+ }
|
|
|
+ if(changeParent) datas.push({type,data:{'ID':c.getID(),[parentField]:newBills.ID}});
|
|
|
}
|
|
|
|
|
|
}else{//没有前兄弟,在当前分项和父项中间新增一行“分部”空行,空行作为分项的父项,原父项变为空行的父项。当前分项/补项的所有兄弟都跟着移动。
|
|
@@ -257,15 +263,26 @@ ProjectController = {
|
|
|
newBills.NextSiblingID = -1;
|
|
|
datas.push({type:ModuleNames.bills,data:newBills,action:"add"});
|
|
|
for(let c of node.parent.children){
|
|
|
- datas.push({type:ModuleNames.bills,data:{'ID':c.getID(),'ParentID':newBills.ID}})
|
|
|
+ let type = ModuleNames.bills;
|
|
|
+ let parentField = 'ParentID';
|
|
|
+ if(node.sourceType===projectObj.project.Ration.getSourceType()){
|
|
|
+ type = ModuleNames.ration;
|
|
|
+ parentField = 'billsItemID';
|
|
|
+ }
|
|
|
+ datas.push({type,data:{'ID':c.getID(),[parentField]:newBills.ID}})
|
|
|
}
|
|
|
}
|
|
|
if(datas.length > 0){
|
|
|
+
|
|
|
+ projectObj.project.mainTree.selected = null;
|
|
|
let nodes = await projectObj.project.syncUpdateNodesAndRefresh(datas);
|
|
|
//重新计算
|
|
|
cbTools.refreshFormulaNodes();
|
|
|
projectObj.project.calcProgram.calcNodesAndSave(nodes);
|
|
|
- projectObj.mainController.setTreeSelected(projectObj.project.mainTree.getNodeByID(newBills.ID));
|
|
|
+ const newSelected = projectObj.project.mainTree.getNodeByID(newBills.ID);
|
|
|
+ projectObj.mainController.setTreeSelected(newSelected);
|
|
|
+ projectObj.selectColAndFocus(newSelected);
|
|
|
+
|
|
|
}
|
|
|
|
|
|
},
|