Browse Source

台账清单调整导致变更数据bug修复

ellisran 1 tháng trước cách đây
mục cha
commit
29b9ad3052

+ 3 - 2
app/public/js/change_information.js

@@ -6269,12 +6269,12 @@ function checkAndChange(changeListData) {
         for (const [index,clinfo] of changeList.entries()) {
             if (clinfo.lid != 0) {
                 let listinfo = changeListData.find(function (item) {
-                    return (item.id !== undefined && item.id == clinfo.lid) || (item.id === undefined && item.leafXmjs !== undefined && item.leafXmjs.length !== 0 && item.leafXmjs[0].gcl_id == clinfo.lid);
+                    return (item.leafXmjs && item.leafXmjs.length > 0 && _.find(item.leafXmjs, {gcl_id: clinfo.lid })) || (item.id && item.id == clinfo.lid);
                 });
                 if (listinfo === undefined || (clinfo.lid && clinfo.gcl_id && clinfo.lid !== clinfo.gcl_id)) {
                     // 有可能这部分台账发生变化,此时要更新清单lid信息,防止数据丢失
                     const newlistinfo = changeListData.find(function (item) {
-                        return (item.id !== undefined && item.id == clinfo.gcl_id) || (item.id === undefined && item.leafXmjs !== undefined && item.leafXmjs.length !== 0 && _.find(item.leafXmjs, {gcl_id: clinfo.gcl_id }));
+                        return (item.leafXmjs && item.leafXmjs.length > 0 && _.find(item.leafXmjs, {gcl_id: clinfo.gcl_id })) || (item.id && item.id == clinfo.gcl_id);
                     });
                     if ((listinfo === undefined && newlistinfo) || (listinfo && newlistinfo && !isObjEqual(listinfo, newlistinfo))) {
                         listinfo = newlistinfo;
@@ -6335,6 +6335,7 @@ function checkAndChange(changeListData) {
             });
         }
         if(removeList.length > 0) {
+            console.log(removeList);
             _.pullAll(changeList, removeList);
             postData(window.location.pathname + '/save', { type:'remove_list', updateData: removeList }, function (result) {
             }, function () {

+ 47 - 47
app/public/js/change_information_add_list.js

@@ -114,20 +114,7 @@ $(document).ready(() => {
     const gclSpreadObj = {
         resetXmjSpread: function(data = null) {
             const xmjs = [];
-            if (data && data.id) {
-                xmjs.push({
-                    deal_id: data.id,
-                    cid: '',
-                    is_change: _.findIndex(changeList, { lid: data.id }) !== -1 ? 1 : 0,
-                    code: '',
-                    jldy: '',
-                    dwgc: '',
-                    fbgc: '',
-                    fxgc: '',
-                    bwmx: '',
-                    quantity: '',
-                })
-            } else if (data && data.leafXmjs) {
+            if (data && data.leafXmjs && data.leafXmjs.length > 0) {
                 for (const leaf of data.leafXmjs) {
                     xmjs.push({
                         gcl_id: leaf.gcl_id,
@@ -143,8 +130,21 @@ $(document).ready(() => {
                         quantity: leaf.quantity ? ZhCalc.round(leaf.quantity, findDecimal(data.unit)).toString() : '0',
                     });
                 }
+            } else if (data && data.id) {
+                xmjs.push({
+                    deal_id: data.id,
+                    cid: '',
+                    is_change: _.findIndex(changeList, { lid: data.id }) !== -1 ? 1 : 0,
+                    code: '',
+                    jldy: '',
+                    dwgc: '',
+                    fbgc: '',
+                    fxgc: '',
+                    bwmx: '',
+                    quantity: '',
+                })
             }
-            console.log(xmjs, changeList);
+            console.log(data, xmjs);
             SpreadJsObj.loadSheetData(xmjSpreadSheet, SpreadJsObj.DataType.Data, xmjs);
             checkSelectAll(data);
         },
@@ -414,14 +414,14 @@ $(document).ready(() => {
             gcl.quantity = gcl.quantity !== 0 && gcl.quantity !== null && gcl.quantity !== undefined ? (gcl.unit !== '' ? ZhCalc.round(gcl.quantity, findDecimal(gcl.unit)) : gcl.quantity).toString() : '0';
             gcl.unit_price = gcl.unit_price !== null && gcl.unit_price !== undefined ? ZhCalc.round(gcl.unit_price, unitPriceUnit) : 0;
             // 用id值区分签约清单和台账
-            if (gcl.id) {
-                const cInfo = gcl.id ? _.find(changeList, { lid: gcl.id }) : null;
-                gcl.is_change = cInfo ? 1 : 0;
-            } else {
-                const index = gcl.leafXmjs && gcl.leafXmjs.length !== 0 ? _.findIndex(gcl.leafXmjs, function (item) {
+            if (gcl.leafXmjs && gcl.leafXmjs.length > 0) {
+                const index = _.findIndex(gcl.leafXmjs, function (item) {
                     return _.findIndex(changeList, { gcl_id: item.gcl_id }) !== -1;
-                }) : -1;
+                });
                 gcl.is_change = index !== -1 ? 1 : 0;
+            } else if (gcl.id) {
+                const cInfo = gcl.id ? _.find(changeList, { lid: gcl.id }) : null;
+                gcl.is_change = cInfo ? 1 : 0;
             }
         }
         console.log(changeListData);
@@ -555,29 +555,7 @@ $(document).ready(() => {
         const data = SpreadJsObj.getSelectObject(gclSpreadSheet);
         if ($(this).is(':checked')){
             const addDatas = [];
-            if (data && data.id) {
-                if (_.findIndex(changeList, function (item) {
-                    return item.id && item.id === data.id;
-                }) === -1) {
-                    addDatas.push({
-                        lid: data.id,
-                        code: data.code,
-                        name: data.name || '',
-                        unit: data.unit || '',
-                        unit_price: data.unit_price,
-                        oamount: data.quantity ? parseFloat(data.quantity) : 0,
-                        oamount2: data.quantity ? parseFloat(data.quantity) : 0,
-                        bwmx: '',
-                        xmj_code: '',
-                        xmj_jldy: '',
-                        xmj_dwgc: '',
-                        xmj_fbgc: '',
-                        xmj_fxgc: '',
-                        gcl_id: '',
-                        mx_id: '',
-                    });
-                }
-            } else if (data && data.leafXmjs) {
+            if (data && data.leafXmjs && data.leafXmjs.length > 0) {
                 for (const leaf of data.leafXmjs) {
                     if (_.findIndex(changeList, function (item) {
                         return item.gcl_id === leaf.gcl_id && item.mx_id === (leaf.mx_id || '');
@@ -601,6 +579,28 @@ $(document).ready(() => {
                         });
                     }
                 }
+            } else if (data && data.id) {
+                if (_.findIndex(changeList, function (item) {
+                    return item.id && item.id === data.id;
+                }) === -1) {
+                    addDatas.push({
+                        lid: data.id,
+                        code: data.code,
+                        name: data.name || '',
+                        unit: data.unit || '',
+                        unit_price: data.unit_price,
+                        oamount: data.quantity ? parseFloat(data.quantity) : 0,
+                        oamount2: data.quantity ? parseFloat(data.quantity) : 0,
+                        bwmx: '',
+                        xmj_code: '',
+                        xmj_jldy: '',
+                        xmj_dwgc: '',
+                        xmj_fbgc: '',
+                        xmj_fxgc: '',
+                        gcl_id: '',
+                        mx_id: '',
+                    });
+                }
             }
             console.log(addDatas);
             if (addDatas.length > 0) {
@@ -728,9 +728,7 @@ $(document).ready(() => {
 });
 function checkSelectAll(data) {
     let check = false;
-    if (data && data.id && data.is_change) {
-        check = true;
-    } else if(data && data.leafXmjs) {
+    if(data && data.leafXmjs) {
         check = data.leafXmjs.length > 0 ? true : false;
         data.leafXmjs.forEach(function (item) {
             const is_change = _.findIndex(changeList, { gcl_id: item.gcl_id, mx_id: item.mx_id || '' }) !== -1
@@ -739,6 +737,8 @@ function checkSelectAll(data) {
                 return;
             }
         });
+    } else if (data && data.id && data.is_change) {
+        check = true;
     }
     $('#code-select-all').prop('checked', check);
 }