Selaa lähdekoodia

期计量,计量台账外页面,检查错误相关

MaiXinRong 5 vuotta sitten
vanhempi
commit
cc26d80a96

+ 94 - 51
app/public/js/shares/cs_tools.js

@@ -54,7 +54,6 @@ const showSideTools = function (show) {
      * @returns {{spread: *}}
      */
     $.cs_errorList = function (setting) {
-        if (!setting.selector || !setting.relaSpread) return;
         if (!setting.spreadSetting) {
             setting.spreadSetting = {
                 cols: [
@@ -73,63 +72,107 @@ const showSideTools = function (show) {
             };
         }
 
-        const resultId = setting.id + '-spread';
-        const obj = $(setting.selector);
-        obj.html(
-            '                        <div id="' + resultId + '" class="sjs-sh">\n' +
-            '                        </div>'
-        );
-        autoFlashHeight();
+        const clearErrorData = function () {
+            if (setting.storeKey) removeLocalCache(setting.storeKey);
+        };
+
+        const autoShowHistory = function (show) {
+            if (setting.storeKey) {
+                setLocalCache(setting.storeKey + '-showHis', show.toString());
+            }
+        };
 
-        const spread = SpreadJsObj.createNewSpread($('#' + resultId)[0]);
-        const sheet = spread.getActiveSheet();
-        SpreadJsObj.initSheet(sheet, setting.spreadSetting);
-        SpreadJsObj.forbiddenSpreadContextMenu('#' + resultId, spread);
+        if (setting.selector && setting.relaSpread) {
+            const resultId = setting.id + '-spread';
+            const obj = $(setting.selector);
+            obj.html(
+                '                        <div id="' + resultId + '" class="sjs-sh">\n' +
+                '                        </div>'
+            );
+            autoFlashHeight();
 
-        spread.getActiveSheet().bind(spreadNS.Events.CellDoubleClick, function (e, info) {
-            const sheet = info.sheet;
-            const data = sheet.zh_data;
-            if (!data) { return }
+            const spread = SpreadJsObj.createNewSpread($('#' + resultId)[0]);
+            const sheet = spread.getActiveSheet();
+            SpreadJsObj.initSheet(sheet, setting.spreadSetting);
+            SpreadJsObj.forbiddenSpreadContextMenu('#' + resultId, spread);
 
-            const curBills = data[info.row];
-            if (!curBills) { return }
+            spread.getActiveSheet().bind(spreadNS.Events.CellDoubleClick, function (e, info) {
+                const sheet = info.sheet;
+                const data = sheet.zh_data;
+                if (!data) { return }
 
-            SpreadJsObj.locateTreeNode(setting.relaSpread.getActiveSheet(), curBills.ledger_id, true);
-            console.log(curBills);
-            if (setting.afterLocated) {
-                setting.afterLocated();
-            }
-        });
+                const curBills = data[info.row];
+                if (!curBills) { return }
 
-        const loadErrorData = function (data, his = false) {
-            data.sort(function (a, b) {
-                return a.serialNo - b.serialNo;
+                SpreadJsObj.locateTreeNode(setting.relaSpread.getActiveSheet(), curBills.ledger_id, true);
+                console.log(curBills);
+                if (setting.afterLocated) {
+                    setting.afterLocated();
+                }
             });
-            SpreadJsObj.loadSheetData(sheet, SpreadJsObj.DataType.Data, data);
-            if (!his && setting.storeKey) {
-                setLocalCache(setting.storeKey, JSON.stringify(data));
-            }
-            $(setting.tabSelector).show();
-        };
-        const clearErrorData = function () {
-            if (setting.storeKey) removeLocalCache(setting.storeKey);
-        };
-        if (setting.storeKey) {
-            const storeStr = getLocalCache(setting.storeKey);
-            const storeData = storeStr ? JSON.parse(storeStr) : [];
-            if (storeData.length > 0) loadErrorData(storeData, true);
+
+            const loadErrorData = function (data, his = false) {
+                const sourceTree = setting.relaSpread.getActiveSheet().zh_tree;
+                if (!sourceTree) return;
+
+                for (const d of data) {
+                    d.serialNo = sourceTree.getNodeIndex(sourceTree.getItems(d.ledger_id)) + 1;
+                }
+                data.sort(function (a, b) {
+                    return a.serialNo - b.serialNo;
+                });
+
+                SpreadJsObj.loadSheetData(sheet, SpreadJsObj.DataType.Data, data);
+                if (!his && setting.storeKey) {
+                    setLocalCache(setting.storeKey, JSON.stringify(data));
+                }
+                $(setting.tabSelector).show();
+            };
+            const showErrorList = function () {
+                const tab = $(setting.tabSelector), tabPanel = $(tab.attr('content'));
+                $('a', '#side-menu').removeClass('active');
+                tab.addClass('active');
+                $('.tab-content .tab-pane').removeClass('active');
+                tabPanel.addClass('active');
+                showSideTools(true);
+                spread.refresh();
+                if (setting.afterShow) setting.afterShow();
+            };
+            const loadHisErrorData = function () {
+                if (setting.storeKey) {
+                    const storeStr = getLocalCache(setting.storeKey);
+
+                    const storeData = storeStr ? JSON.parse(storeStr) : [];
+                    if (storeData.length > 0) {
+                        loadErrorData(storeData, true);
+                        const showHis = getLocalCache(setting.storeKey + '-showHis');
+                        if (showHis === 'true') {
+                            showErrorList();
+                            removeLocalCache(setting.storeKey + '-showHis');
+                        }
+                    }
+                }
+            };
+            return {
+                spread: spread,
+                loadErrorData: loadErrorData,
+                clearErrorData: clearErrorData,
+                loadHisErrorData: loadHisErrorData,
+                show: showErrorList,
+                autoShowHistory: autoShowHistory,
+            };
+        } else {
+            const loadErrorData = function (data) {
+                if (setting.storeKey) {
+                    setLocalCache(setting.storeKey, JSON.stringify(data));
+                }
+            };
+            return {
+                loadErrorData: loadErrorData,
+                clearErrorData: clearErrorData,
+                autoShowHistory: autoShowHistory,
+            };
         }
-        const showErrorList = function () {
-            const tab = $(setting.tabSelector), tabPanel = $(tab.attr('content'));
-            $('a', '#side-menu').removeClass('active');
-            tab.addClass('active');
-            $('.tab-content .tab-pane').removeClass('active');
-            tabPanel.addClass('active');
-            showSideTools(true);
-            spread.refresh();
-            if (setting.afterShow) setting.afterShow();
-        };
-        return {spread: spread, loadErrorData: loadErrorData, clearErrorData: clearErrorData, show: showErrorList};
     };
 
     $.posSearch = function (setting) {

+ 2 - 29
app/public/js/stage.js

@@ -1393,6 +1393,7 @@ $(document).ready(() => {
         // 加载中间计量
         stageIm.init(stage, imType);
         stageIm.loadData(result.ledgerData, result.posData, result.detailData, result.changeData);
+        errorList.loadHisErrorData();
     }, null, true);
     spSpread.bind(spreadNS.Events.EditEnded, stagePosSpreadObj.editEnded);
     spSpread.bind(spreadNS.Events.ClipboardPasting, stagePosSpreadObj.clipboardPasting);
@@ -2939,22 +2940,8 @@ $(document).ready(() => {
         }
         return false;
     });
-    $('#audit-check1').submit(function (e) {
-        if (auditCheck(1)) {
-            $(this).parent().parent().modal('hide');
-            const data = {
-                opinion: $('[name=opinion]', this).val(),
-                checkType: parseInt($('[name=checkType]:checked', this).val()),
-            };
-            postData(this.action, data, function () {
-                window.location.reload();
-            });
-            $('#hide-all').hide();
-        }
-        return false;
-    });
     $('#audit-check2').submit(function (e) {
-        if (auditCheck(0)) {
+        if (auditCheck(2)) {
             $(this).parent().parent().modal('hide');
             const data = {
                 opinion: $('[name=opinion]', this).val(),
@@ -2965,18 +2952,4 @@ $(document).ready(() => {
         }
         return false;
     });
-    $('#audit-check3').submit(function (e) {
-        if (auditCheck(1)) {
-            $(this).parent().parent().modal('hide');
-            const data = {
-                opinion: $('[name=opinion]', this).val(),
-                checkType: parseInt($('[name=checkType]:checked', this).val()),
-            };
-            postData(this.action, data, function () {
-                window.location.reload();
-            });
-            $('#hide-all').hide();
-        }
-        return false;
-    });
 });

+ 6 - 1
app/view/shares/check_data_modal.ejs

@@ -46,8 +46,13 @@
     const DataChecker = function (setting) {
         let progressInterval;
         $('#show-error-list').click(function () {
+            <% if (ctx.url === '/tender/' + ctx.tender.id + '/measure/stage/' + ctx.stage.order) { %>
             $('#check').modal('hide');
             setting.errorList.show();
+            <% } else { %>
+            setting.errorList.autoShowHistory(true);
+            window.location.pathname = '/tender/<%- ctx.tender.id %>/measure/stage/<%- ctx.stage.order %>';
+            <% } %>
         });
         const progress = function (percent) {
             $('#check-progress').attr('aria-valuenow', percent).width(percent + '%').html(percent + '%');
@@ -84,7 +89,7 @@
             fakeProgress();
             postData(setting.checkUrl, setting.checkData ? setting.checkData : {}, function (result) {
                 if (result.error && result.error.length > 0) {
-                    setting.completeData(result);
+                    if (setting.completeData) setting.completeData(result);
                     setting.errorList.loadErrorData(result.error);
                     stopFakeProgess();
                     setTimeout(function () {

+ 72 - 0
app/view/stage/audit_modal.ejs

@@ -1490,3 +1490,75 @@
         </div>
     <% } %>
 <% } %>
+<% include ../shares/check_data_modal.ejs %>
+<script>
+    <% if (ctx.url !== '/tender/' + ctx.tender.id + '/measure/stage/' + ctx.stage.order) { %>
+    const dataChecker = DataChecker({
+        checkUrl: '/tender/<%- ctx.tender.id %>/measure/stage/<%- ctx.stage.order %>/check',
+        errorList: $.cs_errorList({
+            storeKey: 'stage-error-' + stage.id,
+        }),
+    });
+
+    $('[name=stage-start]').submit(function (e) {
+        if (checkAuditorFrom()) {
+            $(this).parent().parent().parent().modal('hide');
+            dataChecker.checkAndPost(this.action, {});
+            $('#hide-all').hide();
+        }
+        return false;
+    });
+    $('#audit-check0').submit(function (e) {
+        if (auditCheck(0)) {
+            $(this).parent().parent().modal('hide');
+            const data = {
+                opinion: $('[name=opinion]', this).val(),
+                checkType: parseInt($('[name=checkType]', this).val()),
+            };
+            dataChecker.checkAndPost(this.action, data);
+            $('#hide-all').hide();
+        }
+        return false;
+    });
+    $('#audit-check2').submit(function (e) {
+        if (auditCheck(2)) {
+            $(this).parent().parent().modal('hide');
+            const data = {
+                opinion: $('[name=opinion]', this).val(),
+                checkType: parseInt($('[name=checkType]', this).val()),
+            };
+            dataChecker.checkAndPost(this.action, data);
+            $('#hide-all').hide();
+        }
+        return false;
+    });
+    <% } %>
+    $('#audit-check1').submit(function (e) {
+        if (auditCheck(1)) {
+            $(this).parent().parent().modal('hide');
+            const data = {
+                opinion: $('[name=opinion]', this).val(),
+                checkType: parseInt($('[name=checkType]:checked', this).val()),
+            };
+            postData(this.action, data, function () {
+                window.location.reload();
+            });
+            $('#hide-all').hide();
+        }
+        return false;
+    });
+    $('#audit-check3').submit(function (e) {
+        if (auditCheck(3)) {
+            $(this).parent().parent().modal('hide');
+            const data = {
+                opinion: $('[name=opinion]', this).val(),
+                checkType: parseInt($('[name=checkType]:checked', this).val()),
+            };
+            postData(this.action, data, function () {
+                window.location.reload();
+            });
+            $('#hide-all').hide();
+        }
+        return false;
+    });
+</script>

+ 0 - 1
app/view/stage/modal.ejs

@@ -383,4 +383,3 @@
 </div>
 <% include ./audit_modal.ejs %>
 <% include ../shares/merge_peg_modal.ejs %>
-<% include ../shares/check_data_modal.ejs %>

+ 5 - 0
config/web.js

@@ -304,6 +304,7 @@ const JsFiles = {
                     "/public/js/spreadjs_rela/spreadjs_zh.js",
                     "/public/js/zh_calc.js",
                     "/public/js/path_tree.js",
+                    "/public/js/shares/cs_tools.js",
                     "/public/js/stage_im.js",
                     "/public/js/stage_detail.js",
                     "/public/js/stage_audit.js",
@@ -318,6 +319,7 @@ const JsFiles = {
                 mergeFiles: [
                     "/public/js/sub_menu.js",
                     "/public/js/spreadjs_rela/spreadjs_zh.js",
+                    "/public/js/shares/cs_tools.js",
                     "/public/js/stage_pay.js",
                     "/public/js/stage_audit.js",
                 ],
@@ -354,6 +356,7 @@ const JsFiles = {
                     "/public/js/sub_menu.js",
                     "/public/js/div_resizer.js",
                     "/public/js/spreadjs_rela/spreadjs_zh.js",
+                    "/public/js/shares/cs_tools.js",
                     "/public/js/zh_calc.js",
                     "/public/js/path_tree.js",
                     "/public/js/stage_change.js",
@@ -373,6 +376,7 @@ const JsFiles = {
                     "/public/js/sub_menu.js",
                     "/public/js/div_resizer.js",
                     "/public/js/spreadjs_rela/spreadjs_zh.js",
+                    "/public/js/shares/cs_tools.js",
                     "/public/js/zh_calc.js",
                     "/public/js/path_tree.js",
                     "/public/js/gcl_gather.js",
@@ -394,6 +398,7 @@ const JsFiles = {
                     "/public/js/div_resizer.js",
                     "/public/js/spreadjs_rela/spreadjs_zh.js",
                     "/public/js/shares/sjs_setting.js",
+                    "/public/js/shares/cs_tools.js",
                     "/public/js/zh_calc.js",
                     "/public/js/path_tree.js",
                     "/public/js/stage_compare.js",