浏览代码

调整变更台账数据获取方式和展示判断

ellisran 1 月之前
父节点
当前提交
74b06f52ea
共有 1 个文件被更改,包括 93 次插入75 次删除
  1. 93 75
      app/public/js/change_information.js

+ 93 - 75
app/public/js/change_information.js

@@ -839,25 +839,23 @@ $(document).ready(() => {
         },
         makeNewChangeList: function(newOrder = changeOrder) {
             // 先加载台账数据
-            if (!newOrder) {
+            if (!newOrder && !readOnly) {
                 const newChangeList2 = [];
                 for (const gcl of changeListData) {
-                    if (!newOrder) {
-                        if (gcl.leafXmjs !== undefined && gcl.leafXmjs !== null) {
-                            const cl = _.filter(changeList, function (item) {
-                                return _.findIndex(gcl.leafXmjs, { gcl_id: item.gcl_id }) !== -1;
-                            });
-                            if (cl.length > 0) {
-                                for (const l of gcl.leafXmjs) {
-                                    const c = _.find(cl, { gcl_id: l.gcl_id, mx_id: l.mx_id || '' });
-                                    if (c) newChangeList2.push(c);
-                                }
+                    if (gcl.leafXmjs !== undefined && gcl.leafXmjs !== null) {
+                        const cl = _.filter(changeList, function (item) {
+                            return _.findIndex(gcl.leafXmjs, { gcl_id: item.gcl_id }) !== -1;
+                        });
+                        if (cl.length > 0) {
+                            for (const l of gcl.leafXmjs) {
+                                const c = _.find(cl, { gcl_id: l.gcl_id, mx_id: l.mx_id || '' });
+                                if (c) newChangeList2.push(c);
                             }
-                        } else {
-                            // 签约清单
-                            const c = _.find(changeList, { lid: gcl.id });
-                            if (c) newChangeList2.push(c);
                         }
+                    } else {
+                        // 签约清单
+                        const c = _.find(changeList, { lid: gcl.id });
+                        if (c) newChangeList2.push(c);
                     }
                 }
                 // 按台账去重新排序changeList,空白清单居后
@@ -990,51 +988,6 @@ $(document).ready(() => {
     const preUrl = window.location.pathname.split('/').slice(0, 4).join('/');
     let changeListData;
     let gclGatherData;
-    postData(preUrl + '/defaultBills', {}, function (result) {
-        ledgerList = result.bills;
-        posList = result.pos;
-
-        gclGatherModel.loadLedgerData(result.bills);
-        gclGatherModel.loadPosData(result.pos);
-        gclGatherData = gclGatherModel.gatherGclData();
-        gclGatherData = _.filter(gclGatherData, function (item) {
-            return item.leafXmjs && item.leafXmjs.length !== 0;
-        });
-        for (const ggd in gclGatherData) {
-            if (gclGatherData[ggd].leafXmjs && gclGatherData[ggd].leafXmjs.length === 0) {
-                gclGatherData.splice(ggd, 1);
-            }
-            gclGatherData[ggd].code = gclGatherData[ggd].b_code;
-            let hadcid = 0;
-            for (const xmj of gclGatherData[ggd].leafXmjs) {
-                const changeLedger = _.find(changeLedgerList, { id: xmj.gcl_id });
-                const changePos = _.find(changePosList, { id: xmj.mx_id, lid: xmj.gcl_id });
-                if (changeLedger || changePos) {
-                    xmj.cid = 1;
-                    xmj.ccid = changeLedger ? changeLedger.ccid : changePos.ccid;
-                    hadcid = 1;
-                }
-            }
-
-            if (hadcid !== 0) gclGatherData[ggd].cid = 1;
-        }
-        console.log(gclGatherData);
-        // 数组去重
-        const dealBillList = result.dealBills;
-        for (const db of gclGatherData) {
-            const exist_index = dealBillList.findIndex(function (item) {
-                return item.code === db.code && item.name === db.name && item.unit === db.unit && item.unit_price === db.unit_price;
-            });
-            if (exist_index !== -1) {
-                dealBillList.splice(exist_index, 1);
-            }
-        }
-        changeListData = gclGatherData.concat(dealBillList).sort(sortByCode);
-        if (!readOnly || shenpiPower) {
-            checkAndChange(changeListData);
-        }
-        showMode(changeMode);
-    });
 
     changeSpread.bind(spreadNS.Events.SelectionChanged, changeSpreadObj.selectionChanged);
     changeSpread.bind(spreadNS.Events.topRowChanged, changeSpreadObj.topRowChanged);
@@ -5530,24 +5483,89 @@ $(document).ready(() => {
                 }
                 firstLoad = false;
             }
-            const {changeLedgers, changePoss} = makeLedgerAndPosData();
-            ledgerTree.loadDatas(changeLedgers);
-            pos.loadDatas(changePoss);
-            treeCalc.calculateAll(ledgerTree);
-            console.log(ledgerTree);
-            SpreadJsObj.loadSheetData(ledgerSheet, SpreadJsObj.DataType.Tree, ledgerTree);
-            ledgerTree.expandByCustom(() => { return true; });
-            SpreadJsObj.refreshTreeRowVisible(ledgerSheet);
-            SpreadJsObj.loadTopAndSelect(ledgerSheet, ckBillsSpread);
-            ledgerTreeSpreadObj.showHideAudit($('#show-table-detail').is(':checked'));
-            posSpreadObj.loadCurPosData();
-            SpreadJsObj.resetTopAndSelect(posSheet);
-            ledgerTreeSpreadObj.loadExprToInput();
-            ledgerSpread.refresh();
-            posSpread.refresh();
+            if (readOnly) {
+                postData(preUrl + '/defaultBills', {}, function (result) {
+                    ledgerList = result.bills;
+                    posList = result.pos;
+                    showLedgerAndPos();
+                });
+            } else {
+                showLedgerAndPos();
+            }
         }
     }
 
+    function showLedgerAndPos() {
+        const {changeLedgers, changePoss} = makeLedgerAndPosData();
+        ledgerTree.loadDatas(changeLedgers);
+        pos.loadDatas(changePoss);
+        treeCalc.calculateAll(ledgerTree);
+        console.log(ledgerTree);
+        SpreadJsObj.loadSheetData(ledgerSheet, SpreadJsObj.DataType.Tree, ledgerTree);
+        ledgerTree.expandByCustom(() => { return true; });
+        SpreadJsObj.refreshTreeRowVisible(ledgerSheet);
+        SpreadJsObj.loadTopAndSelect(ledgerSheet, ckBillsSpread);
+        ledgerTreeSpreadObj.showHideAudit($('#show-table-detail').is(':checked'));
+        posSpreadObj.loadCurPosData();
+        SpreadJsObj.resetTopAndSelect(posSheet);
+        ledgerTreeSpreadObj.loadExprToInput();
+        ledgerSpread.refresh();
+        posSpread.refresh();
+    }
+
+    if (!readOnly) {
+        postData(preUrl + '/defaultBills', {}, function (result) {
+            ledgerList = result.bills;
+            posList = result.pos;
+            // if (!readOnly) {
+            console.time('hello');
+            gclGatherModel.loadLedgerData(result.bills);
+            gclGatherModel.loadPosData(result.pos);
+            gclGatherData = gclGatherModel.gatherGclData();
+            gclGatherData = _.filter(gclGatherData, function (item) {
+                return item.leafXmjs && item.leafXmjs.length !== 0;
+            });
+            for (const ggd in gclGatherData) {
+                if (gclGatherData[ggd].leafXmjs && gclGatherData[ggd].leafXmjs.length === 0) {
+                    gclGatherData.splice(ggd, 1);
+                }
+                gclGatherData[ggd].code = gclGatherData[ggd].b_code;
+                let hadcid = 0;
+                for (const xmj of gclGatherData[ggd].leafXmjs) {
+                    const changeLedger = _.find(changeLedgerList, { id: xmj.gcl_id });
+                    const changePos = _.find(changePosList, { id: xmj.mx_id, lid: xmj.gcl_id });
+                    if (changeLedger || changePos) {
+                        xmj.cid = 1;
+                        xmj.ccid = changeLedger ? changeLedger.ccid : changePos.ccid;
+                        hadcid = 1;
+                    }
+                }
+
+                if (hadcid !== 0) gclGatherData[ggd].cid = 1;
+            }
+            console.log(gclGatherData);
+            // 数组去重
+            const dealBillList = result.dealBills;
+            for (const db of gclGatherData) {
+                const exist_index = dealBillList.findIndex(function (item) {
+                    return item.code === db.code && item.name === db.name && item.unit === db.unit && item.unit_price === db.unit_price;
+                });
+                if (exist_index !== -1) {
+                    dealBillList.splice(exist_index, 1);
+                }
+            }
+            changeListData = gclGatherData.concat(dealBillList).sort(sortByCode);
+            if (!readOnly || shenpiPower) {
+                checkAndChange(changeListData);
+            }
+            console.timeEnd('hello');
+            // }
+            showMode(changeMode);
+        });
+    } else {
+        showMode(changeMode);
+    }
+
     // 显示层次
     (function (select, sheet) {
         $(select).click(function () {