|
@@ -190,6 +190,7 @@ let equipmentPurchaseObj = {
|
|
|
let me = this;
|
|
|
let temIDMap = {};
|
|
|
let temParentMap = {};
|
|
|
+ let deleteMap = {};
|
|
|
for(let d of updateData){
|
|
|
if(d.doc){
|
|
|
temIDMap[d.ID] = d;
|
|
@@ -197,6 +198,7 @@ let equipmentPurchaseObj = {
|
|
|
temParentMap[d.doc.ParentID]?temParentMap[d.doc.ParentID].push(d):temParentMap[d.doc.ParentID]=[d];
|
|
|
}
|
|
|
}
|
|
|
+ if(d.type === 'delete')deleteMap[d.ID] = true
|
|
|
}
|
|
|
for(let d of this.data){
|
|
|
let children = this.parentMap[d.ID];
|
|
@@ -217,6 +219,7 @@ let equipmentPurchaseObj = {
|
|
|
if(children&&children.length > 0){
|
|
|
for(let c of children){
|
|
|
let newChild = temIDMap[c.ID];
|
|
|
+ if(deleteMap[c.ID]) continue;//如果是删除操作,不用计算
|
|
|
if(newChild && newChild.doc){
|
|
|
if(newChild.doc.ParentID && newChild.doc.ParentID!=ID) continue;//升级操作时,子节点可能已经不是它的子节点了
|
|
|
}
|
|
@@ -333,6 +336,7 @@ let equipmentPurchaseObj = {
|
|
|
let dataMap = {};
|
|
|
let temParentMap = {};
|
|
|
let total = 0;
|
|
|
+ let deleteMap = {};
|
|
|
for(let d of updateData){
|
|
|
if(d.doc){
|
|
|
dataMap[d.ID] = d;
|
|
@@ -340,11 +344,13 @@ let equipmentPurchaseObj = {
|
|
|
temParentMap[d.doc.ParentID]?temParentMap[d.doc.ParentID].push(d):temParentMap[d.doc.ParentID]=[d];
|
|
|
}
|
|
|
}
|
|
|
+ if(d.type === 'delete')deleteMap[d.ID] = true
|
|
|
}
|
|
|
|
|
|
for(let d of this.data){
|
|
|
//累加所有底层节点就行
|
|
|
if(!this.parentMap[d.ID] && !temParentMap[d.ID] ){
|
|
|
+ if(deleteMap[d.ID]) continue;
|
|
|
let totalPrice = d.totalPrice?scMathUtil.roundForObj(d.totalPrice,getDecimal('glj.unitPrice')):0;
|
|
|
let data = dataMap[d.ID];
|
|
|
if(data && gljUtil.isDef(data.doc.totalPrice))totalPrice = data.doc.totalPrice;
|
|
@@ -373,7 +379,9 @@ let equipmentPurchaseObj = {
|
|
|
for(let data of updateData){
|
|
|
if(data.type === 'insert'){
|
|
|
this.sourceData.equipments.push(...data.documents);
|
|
|
- }else{
|
|
|
+ }else if (data.type === 'delete'){
|
|
|
+ _.remove( this.sourceData.equipments,{ID:data.ID});
|
|
|
+ } else{
|
|
|
let equipment = _.find(this.sourceData.equipments,{ID:data.ID});
|
|
|
if(equipment){
|
|
|
Object.assign(equipment,data.doc);
|
|
@@ -471,7 +479,7 @@ let equipmentPurchaseObj = {
|
|
|
},
|
|
|
callback: function (key, opt) {
|
|
|
let row = me.rightClickTarget.row;
|
|
|
- me.deleteEquipment(me.data[row].ID);
|
|
|
+ me.updateEquipments([{ID:me.data[row].ID,type:'delete'}]);
|
|
|
//me.preApplyInfoPrice(row);
|
|
|
}
|
|
|
}
|