浏览代码

修复反复选择订单时,bom需求量不正确的BUG

liling 2 周之前
父节点
当前提交
61c5e49fe6
共有 1 个文件被更改,包括 30 次插入19 次删除
  1. 30 19
      src/pages/bpb/index.vue

+ 30 - 19
src/pages/bpb/index.vue

@@ -135,6 +135,11 @@
             <el-table-column label="物料编码" align="center" prop="id" />
             <el-table-column label="规格型号" align="center" prop="bomSpec" />
             <el-table-column label="物料名称" align="center" prop="name" width="240px"/>
+            <el-table-column label="需求(T)" align="center" prop="need">
+                <template #default="scope">
+                      <span>{{ scope.row.need/1000 }} T</span>
+                    </template>
+            </el-table-column>
             <el-table-column label="产能(T)" align="center" prop="plc">
                 <template #default="scope">
                       <span>{{ scope.row.plc/1000 }} T</span>
@@ -348,34 +353,40 @@ export default {
             orderDateList2.value = datelist2;
         }
         var boms = {};
-        function selectedOrder(obj){
-            let tempLst = orderlistTop5.value;
+        function selectedOrder(obj){            
+            //let tempLst = orderlistTop5.value;
             bpb_order_resultlist_title.value.style.top='0%';
             storageQueryState.value = 0;
             plcPredictState.value = 0;
             bpb_mt_item_data.value = [];
             bpb_mt_item_data_Top6.value=[];
             order_result_data.value = [];
-            for(let i=0;i<tempLst.length;i++){
-                if(tempLst[i].id==obj.id){
-                    tempLst[i].checked = !tempLst[i].checked;                    
-                    break;
+            boms = {};
+            if(!obj.checked){
+                obj.checked=true;
+                selectPredictOrders.value.push(obj)
+            }else{
+                obj.checked=false;
+                var ind = -1;
+                for(let i=0;i<selectPredictOrders.value.length;i++){
+                    if(selectPredictOrders.value[i].orderCode==obj.orderCode){
+                        ind = i;
+                        break;
+                    }
                 }
+                selectPredictOrders.value.splice(ind,1);
             }
-            let tmpLst2=[];            
-            tempLst.forEach(ele=>{
-                if(ele.checked){
-                    tmpLst2.push(ele);
-                    for (let index = 0; index < ele.bomlist.length; index++) {
-                        const element = ele.bomlist[index];
+            for(var k in selectPredictOrders.value){
+                let ele = selectPredictOrders.value[k];
+                    for (let index = 0; index < (ele.bomList||ele.bomlist).length; index++) {
+                        const element = (ele.bomList||ele.bomlist)[index];
                         const xql = element.xql;
-                        if(boms[element.bomCode]==null) boms[element.bomCode] = element;
+                        if(boms[element.bomCode]==null) boms[element.bomCode] ={...element};
                         else boms[element.bomCode].xql = boms[element.bomCode].xql + xql;
                     }
-                }
-            })
-            selectPredictOrders.value=tmpLst2;
-            if(tmpLst2.length==0) storageQueryState.value=0;
+            }
+            console.log(boms)
+            if(selectPredictOrders.value.length==0) storageQueryState.value=0;
             else{
                  setTimeout(() => {
                     //物料清单信息
@@ -396,7 +407,7 @@ export default {
                     queryStorage();
                  }, 1000);                 
             }
-            orderlistTop5.value = tempLst;
+            //orderlistTop5.value = tempLst;
         }
         //库存检查
         function queryStorage(){
@@ -538,7 +549,7 @@ export default {
                 for (let index = 0; index < ele.bomList.length; index++) {
                         const element = ele.bomList[index];
                         const xql = element.xql;
-                        if(boms[element.bomCode]==null) boms[element.bomCode] = element;
+                        if(boms[element.bomCode]==null) boms[element.bomCode] = {...element};
                         else boms[element.bomCode].xql = boms[element.bomCode].xql + xql;
                 }
             }