|
@@ -279,8 +279,6 @@ var Bills = {
|
|
|
}
|
|
|
$.bootstrapLoading.start();
|
|
|
CommonAjax.post("/bills/singleDelete", {updateData:updateData,projectID:node.data.projectID,user_id:userID,ID:node.data.ID}, function () {
|
|
|
- controller.singleDelete();//删除树节点
|
|
|
- me.tree.singleDelete(node);
|
|
|
//更新缓存
|
|
|
console.log(updateNode);
|
|
|
_.remove(me.datas,{'ID':node.data.ID});
|
|
@@ -291,6 +289,8 @@ var Bills = {
|
|
|
}
|
|
|
}
|
|
|
project.calcProgram.calcAndSave(newParent);
|
|
|
+ controller.singleDelete();//删除树节点
|
|
|
+ me.tree.singleDelete(node.source);
|
|
|
$.bootstrapLoading.end();
|
|
|
}, function () {
|
|
|
$.bootstrapLoading.end();
|
|
@@ -494,6 +494,14 @@ var Bills = {
|
|
|
}
|
|
|
}
|
|
|
};
|
|
|
+ bills.prototype.getEngineeringCostNode=function(controller){//取工程造价节点
|
|
|
+ let roots = controller.tree.roots;
|
|
|
+ for(let root of roots){
|
|
|
+ if(project.Bills.isEngineeringCost(root)==true){
|
|
|
+ return root;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
bills.prototype.deleteSelectedNode=function(){//删除选中单行时的节点
|
|
|
let controller = projectObj.mainController, project = projectObj.project;
|
|
|
let selected = controller.tree.selected, parent = selected.parent;
|
|
@@ -527,6 +535,8 @@ var Bills = {
|
|
|
let mainNodes = [];
|
|
|
let idTreeNodes=[];
|
|
|
let updateData={};
|
|
|
+ let includeRootNode=false;
|
|
|
+ let parentNodes = [];
|
|
|
let selection = projectObj.mainSpread.getActiveSheet().getSelections()[0];
|
|
|
for(let i =0;i<selection.rowCount;i++){
|
|
|
let tem_node = controller.tree.items[selection.row+i];
|
|
@@ -534,13 +544,13 @@ var Bills = {
|
|
|
mainTreeMap[tem_node.getID()] = tem_node;
|
|
|
mainNodes.push(tem_node);
|
|
|
if(tem_node.sourceType == project.Bills.getSourceType()){
|
|
|
- idTreeMap[tem_node.source.getID()] = tem_node;
|
|
|
- idTreeNodes.push(tem_node);
|
|
|
+ idTreeMap[tem_node.source.getID()] = tem_node.source;
|
|
|
+ idTreeNodes.push(tem_node.source);
|
|
|
}
|
|
|
}else {
|
|
|
this.setNodeToMapAndArray(tem_node,mainTreeMap,mainNodes);
|
|
|
if(tem_node.sourceType == project.Bills.getSourceType()){
|
|
|
- this.setNodeToMapAndArray(tem_node,idTreeMap,idTreeNodes,true);
|
|
|
+ this.setNodeToMapAndArray(tem_node.source,idTreeMap,idTreeNodes);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -558,6 +568,12 @@ var Bills = {
|
|
|
updateBill=true;
|
|
|
}
|
|
|
}
|
|
|
+ if(m_node.parent==null&&includeRootNode==false){//删除的节点中包含了根节点,要重新计算工程造价,并且工程造价节点只要加入一次就行了
|
|
|
+ parentNodes.push(me.getEngineeringCostNode(controller));
|
|
|
+ includeRootNode=true
|
|
|
+ }else {
|
|
|
+ parentNodes.push(m_node.parent);
|
|
|
+ }
|
|
|
updateNodes.push(m_node);
|
|
|
controller.tree.getAllSubNode(m_node,updateNodes);
|
|
|
}
|
|
@@ -577,39 +593,54 @@ var Bills = {
|
|
|
updateData.user_id = userID;
|
|
|
$.bootstrapLoading.start();
|
|
|
CommonAjax.post("/bills/multiDelete", updateData, function () {
|
|
|
- controller.m_delete(mainNodes);//删除树节点
|
|
|
- me.tree.m_delete(idTreeNodes);
|
|
|
-
|
|
|
- /* //更新缓存
|
|
|
- console.log(updateNode);
|
|
|
- _.remove(me.datas,{'ID':node.data.ID});
|
|
|
- for(let n_key in updateNode){
|
|
|
- let updateDoc = updateData[n_key];
|
|
|
- for(let u_key in updateDoc){
|
|
|
- updateNode[n_key].data[u_key] =updateDoc[u_key];
|
|
|
+ let quantity_detail_datas = project.quantity_detail.datas;
|
|
|
+ let ration_datas = project.Ration.datas;
|
|
|
+ let ration_glj_datas = project.ration_glj.datas;
|
|
|
+ let ration_coe_datas = project.ration_coe.datas;
|
|
|
+ let nodes = controller.tree.nodes;
|
|
|
+ let prefix = controller.tree.prefix;
|
|
|
+ //更新缓存
|
|
|
+ if(updateData['bills']){//更新bills
|
|
|
+ for(let b_key in updateData['bills']){
|
|
|
+ if(updateData['bills'][b_key]===true){//删除清单和工程量明细
|
|
|
+ _.remove(me.datas,{'ID':b_key});
|
|
|
+ _.remove(quantity_detail_datas,{'billID':b_key});
|
|
|
+ }else {//更新清单属性
|
|
|
+ for(let p_key in updateData['bills'][b_key]){
|
|
|
+ nodes[prefix+b_key].data[p_key] = updateData['bills'][b_key][p_key]
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(updateData['ration']){
|
|
|
+ for(let r_key in updateData['ration']){//定额只有删除,没有更新
|
|
|
+ _.remove(ration_datas,{'ID':r_key});
|
|
|
+ _.remove(quantity_detail_datas,{'rationID':r_key});
|
|
|
+ _.remove(ration_glj_datas,{'rationID':r_key});
|
|
|
+ _.remove(ration_coe_datas,{'rationID':r_key});
|
|
|
}
|
|
|
}
|
|
|
- project.calcProgram.calcAndSave(newParent);*/
|
|
|
+ controller.m_delete(mainNodes);//删除树节点
|
|
|
+ me.tree.m_delete(idTreeNodes);
|
|
|
+ //重新计算
|
|
|
+ project.calcProgram.calcBillsAndSave(parentNodes);
|
|
|
$.bootstrapLoading.end();
|
|
|
}, function () {
|
|
|
$.bootstrapLoading.end();
|
|
|
});
|
|
|
-
|
|
|
-
|
|
|
-
|
|
|
};
|
|
|
- bills.prototype.setNodeToMapAndArray=function (node,map,array,billType) {
|
|
|
- let nodeID = billType ==true?node.source.getID():node.getID();
|
|
|
+ bills.prototype.setNodeToMapAndArray=function (node,map,array) {
|
|
|
+ let nodeID = node.getID();
|
|
|
if(map[nodeID]==undefined||map[nodeID]==null){
|
|
|
newMap(node,node.parent,map,array)
|
|
|
}
|
|
|
function newMap(node,parent,map,array) {
|
|
|
- let nodeID = billType ==true?node.source.getID():node.getID();
|
|
|
+ let nodeID =node.getID();
|
|
|
if(parent==null){//说明已经是最顶层了
|
|
|
map[nodeID]=node;
|
|
|
array.push(node);
|
|
|
}else {
|
|
|
- let parentID = billType == true?parent.source.getID():parent.getID();
|
|
|
+ let parentID = parent.getID();
|
|
|
if(map[parentID]==undefined||map[parentID]==null){
|
|
|
newMap(node,parent.parent,map,array);
|
|
|
}
|