浏览代码

修复调差工料删除bug

laiguoran 2 年之前
父节点
当前提交
3761caaf7c
共有 1 个文件被更改,包括 18 次插入10 次删除
  1. 18 10
      app/public/js/material.js

+ 18 - 10
app/public/js/material.js

@@ -301,6 +301,11 @@ $(document).ready(() => {
             if (datas.pushStageBillsData && datas.pushStageBillsData.length > 0) {
                 materialStageBillsData = _.concat(materialStageBillsData, datas.pushStageBillsData);
             }
+            if (datas.removeStageBillsData && datas.removeStageBillsData.length > 0) {
+                materialStageBillsData = _.remove(materialStageBillsData, function (item) {
+                    return _.findIndex(datas.removeStageBillsData, { id: item.mb_id }) === -1
+                })
+            }
             if (datas.stageBillsData && datas.stageBillsData.length > 0) {
                 if (datas.stageBillsData.length === materialStageBillsData.length) {
                     // 全体替换
@@ -412,30 +417,32 @@ $(document).ready(() => {
         del: function () {
             const sheet = materialSpread.getActiveSheet();
             const select = SpreadJsObj.getSelectObject(sheet);
+            const sel = sheet.getSelections();
             postData(window.location.pathname + '/save', {type: 'del', id: select.id}, function (result) {
                 m_tp = result.m_tp;
                 if (materialTax) {
                     m_tax_tp = result.m_tax_tp;
                 }
 
-                const index = materialBillsData.indexOf(select);
+                const index = _.findIndex(materialBillsData, { id: select.id });
+                materialBillsData.splice(index, 1);
+                if (isStageSelf) {
+                    result.removeStageBillsData = [{ id: select.id }];
+                    materialSpreadObj.updateMaterialData(result);
+                    materialSpreadObj.getMaterialBillsData();
+                }
                 let newMaterialBillsData = materialBillsData;
                 let newIndex = index;
                 if($('#bills0_list').is(':checked')) {
                     newMaterialBillsData = _.filter(materialBillsData, function (item) {
                         return item.quantity !== null && item.quantity !== 0;
                     });
-                    newIndex = newMaterialBillsData.indexOf(select);
+                    newIndex = _.findIndex(newMaterialBillsData, { id: select.id });
                 }
-                materialBillsData.splice(index, 1);
                 sheet.deleteRows(newIndex, 1);
-                if (isStageSelf) {
-                    materialSpreadObj.updateMaterialData(result);
-                    materialSpreadObj.getMaterialBillsData();
-                }
+
                 resetTpTable();
                 // SpreadJsObj.reLoadSheetData(materialSpread.getActiveSheet());
-                const sel = sheet.getSelections();
                 sheet.setSelection(newIndex > 0 ? newIndex - 1 : 0, sel.length > 0 ? sel[0].col : 0, 1, 1);
                 materialSpreadObj.refreshActn();
                 // 月信息价需要同时删除
@@ -649,7 +656,7 @@ $(document).ready(() => {
                     SpreadJsObj.reLoadRowData(info.sheet, info.row);
                     // 判断如果是更改了编号,名称,单位,月信息价需要跟着改变值
                     if (months.length > 0 && (col.field === 'code' || col.field === 'name' || col.field === 'unit')) {
-                        const index = materialBillsData.indexOf(select);
+                        const index = _.findIndex(materialBillsData, { id: select.id });
                         monthsList[index][col.field] = validText;
                         monthFunGather.monthsListSet();
                     }
@@ -1370,7 +1377,8 @@ $(document).ready(() => {
                     const newMaterialBillsData = _.filter(materialBillsData, function (item) {
                         return item.quantity !== null && item.quantity !== 0;
                     });
-                    newIndex = newMaterialBillsData.indexOf(select);
+                    newIndex = _.findIndex(newMaterialBillsData, { id: select.id });
+                    // newIndex = newMaterialBillsData.indexOf(select);
                     newMaterialBillsData.splice(newIndex, 1, result.info);
                     sheet.zh_data[newIndex] = result.info;
                 }